aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 4e73f28f9764f4917147f12a0495153b9ec742f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
## JIT

### a Just-in-Time C/Rust compiler embedded in an LV2 plugin

#### Build status

[![build status](https://gitlab.com/OpenMusicKontrollers/jit.lv2/badges/master/build.svg)](https://gitlab.com/OpenMusicKontrollers/jit.lv2/commits/master)

### Binaries

For GNU/Linux (64-bit, 32-bit, armv7, arm64).
(64/32-bit univeral).

To install the plugin bundle on your system, simply copy the __jit.lv2__
folder out of the platform folder of the downloaded package into your
[LV2 path](http://lv2plug.in/pages/filesystem-hierarchy-standard.html).

<!--
#### Stable release

* [jit.lv2-0.16.0.zip](https://dl.open-music-kontrollers.ch/jit.lv2/stable/jit.lv2-0.16.0.zip) ([sig](https://dl.open-music-kontrollers.ch/jit.lv2/stable/jit.lv2-0.16.0.zip.sig))
-->

#### Unstable (nightly) release

* [jit.lv2-latest-unstable.zip](https://dl.open-music-kontrollers.ch/jit.lv2/unstable/jit.lv2-latest-unstable.zip) ([sig](https://dl.open-music-kontrollers.ch/jit.lv2/unstable/jit.lv2-latest-unstable.zip.sig))

### Sources

<!--
#### Stable release

* [jit.lv2-0.16.0.tar.xz](https://git.open-music-kontrollers.ch/lv2/jit.lv2/snapshot/jit.lv2-0.16.0.tar.xz)
-->

#### Git repository

* <https://git.open-music-kontrollers.ch/lv2/jit.lv2>

<!--
### Packages

* [ArchLinux](https://www.archlinux.org/packages/community/x86_64/jit.lv2/)
-->

### Bugs and feature requests

* [Gitlab](https://gitlab.com/OpenMusicKontrollers/jit.lv2)
* [Github](https://github.com/OpenMusicKontrollers/jit.lv2)

### Plugins

![Screenshot](/screenshots/screenshot_1.png)

#### Mono

Mono version of the plugin.

Prototype new audio filters in C/Rust directly in
your favorite running host, without the need to restart the latter after
code changes.

#### Stereo

Stereo version of the plugin.

Prototype new audio filters in C/Rust directly in
your favorite running host, without the need to restart the latter after
code changes.

### Dependencies

* [LV2](http://lv2plug.in) (LV2 Plugin Standard)

You'll need to have a C and/or Rust compiler installed at runtime for this
plugin to work

* [GCC](https://gcc.gnu.org) (GNU Compiler Collection)
* [CLANG](https://clang.llvm.org) (Clang C Language Family Frontend for LLVM)
* [RUST](https://rust-lang.org) (Rust)

### Build / install

	git clone https://git.open-music-kontrollers.ch/lv2/jit.lv2
	cd jit.lv2
	meson build
	cd build
	ninja -j4
	sudo ninja install

#### UI

This plugin features a native LV2 plugin UI which embeds a terminal emulator
which can run your favorite terminal editor to edit the plugin's C/Rust source.

Currently, the editor has to be defined via the environment variable *EDITOR*:

    export EDITOR='vim'
    export EDITOR='emacs'

If no environment variable is defined, the default fallback editor is 'vi', as
it must be part of every POSIX system.

Whenever you save the C/Rust source, the plugin will try to just-in-time compile and
inject it. Potential warnings and errors are reported in the plugin host's log
and the UI itself.

On hi-DPI displays, the UI scales automatically if you have set the correct DPI
in your ~/.Xresources.

    Xft.dpi: 200

If not, you can manually set your DPI via environmental variable *D2TK_SCALE*:

    export D2TK_SCALE=200

### License

Copyright (c) 2019 Hanspeter Portner (dev@open-music-kontrollers.ch)

This is free software: you can redistribute it and/or modify
it under the terms of the Artistic License 2.0 as published by
The Perl Foundation.

This source is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Artistic License 2.0 for more details.

You should have received a copy of the Artistic License 2.0
along the source as a COPYING file. If not, obtain it from
<http://www.perlfoundation.org/artistic_license_2_0>.