-
Notifications
You must be signed in to change notification settings - Fork 0
/
lsp-sampler.j2
163 lines (121 loc) · 3.93 KB
/
lsp-sampler.j2
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# Forced mute [boolean]: true/false
mute = false
# Mute on stop [boolean]: true/false
muting = true
# Note-off handling [boolean]: true/false
noff = false
# Note-off fadeout [ms]: 0.00000000..50.00000000
fout = 10.00000000
# Dry amount [G]: 0.00000000..10.00000000
dry = 1.00000000
# Wet amount [G]: 0.00000000..10.00000000
wet = 1.00000000
# Output gain [G]: 0.00000000..1000.00000000sf_5_
g_out = 1.00000000
# Apply gain to direct-out [boolean]: true/false
do_gain = true
# Apply panning to direct-out [boolean]: true/false
do_pan = true
# Area selector: 0..2
# 0: Instruments
msel = 0
# Instrument selector: 0..N
inst = 0
{%- for midi_note, data in notes %}
{% set note_loop = loop %}
# MIDI instrument: {{ data['i']['midi_name'] }}({{ data['i']['midi_note'] }}) LSP note:{{ data['i']['lsp_note'] }} inst:{{ note_loop.index-1 }}
chan_{{ note_loop.index-1 }} = {{ midi_channel }}
# Note: 0..11
# 0: C
# 1: C#
# 2: D
# 3: D#
# 4: E
# 5: F
# 6: F#
# 7: G
# 8: G#
# 9: A
# 10: A#
# 11: B
note_{{ note_loop.index-1 }} = {{ data['i']['lsp_note'] }}
# Octave: 0..10
# 0: -1
# 1: 0
# 2: 1
# 3: 2
# 4: 3
# 5: 4
# 6: 5
# 7: 6
# 8: 7
# 9: 8
# 10: 9
oct_{{ note_loop.index-1 }} = {{ data['i']['oct'] }}
# Mute Group: 0..26
# 0: None
# 1: A
mgrp_{{ note_loop.index-1 }} = 0
# Mute on stop [boolean]: true/false
mtg_{{ note_loop.index-1 }} = false
# Note-off handling [boolean]: true/false
nto_{{ note_loop.index-1 }} = false
# Instrument listen [boolean]: true/false
trg_{{ note_loop.index-1 }} = false
# Dynamics [%]: 0.00000000..100.00000000
dyna_{{ note_loop.index-1 }} = 0.00000000
# Time drifting [ms]: 0.00000000..100.00000000
drft_{{ note_loop.index-1 }} = 0.00000000
# Sample selector: 0..7
ssel_{{ note_loop.index-1 }} = 0
# Instrument listen [boolean]: true/false
trg_{{ note_loop.index-1 }} = false
# Dynamics [%]: 0.00000000..100.00000000
dyna_{{ note_loop.index-1 }} = 0.00000000
# Time drifting [ms]: 0.00000000..100.00000000
drft_{{ note_loop.index-1 }} = 0.00000000
# Sample selector: 0..7
ssel_{{ note_loop.index-1 }} = 0
{% for d in data['l'] %}
# sample : {{ loop.index-1 }}
# channels : {{ d['channels'] }}
# duration : {{ d['duration'] }}
# samples : {{ d['samples'] }}
# sample rate: {{ d['sampling_rate'] }}
# bit depth : {{ d['bit_depth'] }}
# Sample file [pathname]
sf_{{ note_loop.index-1 }}_{{ loop.index-1 }} = "{{ d['pathname'] }}"
# Sample head cut [ms]: 0.00000000..64000.00000000
hc_{{ note_loop.index-1 }}_{{ loop.index-1 }} = 0.00000000
# Sample tail cut [ms]: 0.00000000..64000.00000000
tc_{{ note_loop.index-1 }}_{{ loop.index-1 }} = 0.00000000
# Sample fade in [ms]: 0.00000000..64000.00000000
fi_{{ note_loop.index-1 }}_{{ loop.index-1 }} = 0.00000000
# Sample fade out [ms]: 0.00000000..64000.00000000
fo_{{ note_loop.index-1 }}_{{ loop.index-1 }} = 0.00000000
# Sample makeup gain [G]: 0.00000000..10.00000000
mk_{{ note_loop.index-1 }}_{{ loop.index-1 }} = 1.00000000
# Sample velocity max [%]: 0.00000000..100.00000000
vl_{{ note_loop.index-1 }}_{{ loop.index-1 }} = 100.00000000
# Sample pre-delay [ms]: 0.00000000..100.00000000
pd_{{ note_loop.index-1 }}_{{ loop.index-1 }} = 0.00000000
# Sample enabled [boolean]: true/false
on_{{ note_loop.index-1 }}_{{ loop.index-1 }} = {{ d['is_enabled'] }}
# Sample listen [boolean]: true/false
ls_{{ note_loop.index-1 }}_{{ loop.index-1 }} = false
# Sample reverse [boolean]: true/false
rs_{{ note_loop.index-1 }}_{{ loop.index-1 }} = false
# Sample left channel panorama [%]: -100.00000000..100.00000000
pl_{{ note_loop.index-1 }}_{{ loop.index-1 }} = {{ d['pan_l'] }}
# Mute Group: 0..26
# 0: None
# 1: A
mgrp_{{ note_loop.index-1 }} = 0
# Mute on stop [boolean]: true/false
mtg_{{ note_loop.index-1 }} = false
# Note-off handling [boolean]: true/false
nto_{{ note_loop.index-1 }} = false
# Sample right channel panorama [%]: -100.00000000..100.00000000
pr_{{ note_loop.index-1 }}_{{ loop.index-1 }} = 100.00000000
{% endfor %}
{% endfor %}