···
1
1
+
[alias]
2
2
+
xtask = "run --package xtask --release --"
···
1
1
+
# This file is automatically @generated by Cargo.
2
2
+
# It is not intended for manual editing.
3
3
+
version = 3
4
4
+
5
5
+
[[package]]
6
6
+
name = "addr2line"
7
7
+
version = "0.21.0"
8
8
+
source = "registry+https://github.com/rust-lang/crates.io-index"
9
9
+
checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
10
10
+
dependencies = [
11
11
+
"gimli",
12
12
+
]
13
13
+
14
14
+
[[package]]
15
15
+
name = "adler"
16
16
+
version = "1.0.2"
17
17
+
source = "registry+https://github.com/rust-lang/crates.io-index"
18
18
+
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
19
19
+
20
20
+
[[package]]
21
21
+
name = "anyhow"
22
22
+
version = "1.0.82"
23
23
+
source = "registry+https://github.com/rust-lang/crates.io-index"
24
24
+
checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
25
25
+
26
26
+
[[package]]
27
27
+
name = "anymap"
28
28
+
version = "1.0.0-beta.2"
29
29
+
source = "registry+https://github.com/rust-lang/crates.io-index"
30
30
+
checksum = "8f1f8f5a6f3d50d89e3797d7593a50f96bb2aaa20ca0cc7be1fb673232c91d72"
31
31
+
32
32
+
[[package]]
33
33
+
name = "assert_no_alloc"
34
34
+
version = "1.1.2"
35
35
+
source = "git+https://github.com/robbert-vdh/rust-assert-no-alloc.git?branch=feature/nested-permit-forbid#a6fb4f62b9624715291e320ea5f0f70e73b035cf"
36
36
+
dependencies = [
37
37
+
"backtrace",
38
38
+
"log",
39
39
+
]
40
40
+
41
41
+
[[package]]
42
42
+
name = "atomic_float"
43
43
+
version = "0.1.0"
44
44
+
source = "registry+https://github.com/rust-lang/crates.io-index"
45
45
+
checksum = "62af46d040ba9df09edc6528dae9d8e49f5f3e82f55b7d2ec31a733c38dbc49d"
46
46
+
47
47
+
[[package]]
48
48
+
name = "atomic_refcell"
49
49
+
version = "0.1.13"
50
50
+
source = "registry+https://github.com/rust-lang/crates.io-index"
51
51
+
checksum = "41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c"
52
52
+
53
53
+
[[package]]
54
54
+
name = "atty"
55
55
+
version = "0.2.14"
56
56
+
source = "registry+https://github.com/rust-lang/crates.io-index"
57
57
+
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
58
58
+
dependencies = [
59
59
+
"hermit-abi",
60
60
+
"libc",
61
61
+
"winapi",
62
62
+
]
63
63
+
64
64
+
[[package]]
65
65
+
name = "autocfg"
66
66
+
version = "1.3.0"
67
67
+
source = "registry+https://github.com/rust-lang/crates.io-index"
68
68
+
checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
69
69
+
70
70
+
[[package]]
71
71
+
name = "backtrace"
72
72
+
version = "0.3.71"
73
73
+
source = "registry+https://github.com/rust-lang/crates.io-index"
74
74
+
checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
75
75
+
dependencies = [
76
76
+
"addr2line",
77
77
+
"cc",
78
78
+
"cfg-if",
79
79
+
"libc",
80
80
+
"miniz_oxide",
81
81
+
"object",
82
82
+
"rustc-demangle",
83
83
+
]
84
84
+
85
85
+
[[package]]
86
86
+
name = "bitflags"
87
87
+
version = "1.3.2"
88
88
+
source = "registry+https://github.com/rust-lang/crates.io-index"
89
89
+
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
90
90
+
91
91
+
[[package]]
92
92
+
name = "bitflags"
93
93
+
version = "2.5.0"
94
94
+
source = "registry+https://github.com/rust-lang/crates.io-index"
95
95
+
checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
96
96
+
97
97
+
[[package]]
98
98
+
name = "camino"
99
99
+
version = "1.1.6"
100
100
+
source = "registry+https://github.com/rust-lang/crates.io-index"
101
101
+
checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
102
102
+
dependencies = [
103
103
+
"serde",
104
104
+
]
105
105
+
106
106
+
[[package]]
107
107
+
name = "cargo-platform"
108
108
+
version = "0.1.8"
109
109
+
source = "registry+https://github.com/rust-lang/crates.io-index"
110
110
+
checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc"
111
111
+
dependencies = [
112
112
+
"serde",
113
113
+
]
114
114
+
115
115
+
[[package]]
116
116
+
name = "cargo_metadata"
117
117
+
version = "0.18.1"
118
118
+
source = "registry+https://github.com/rust-lang/crates.io-index"
119
119
+
checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
120
120
+
dependencies = [
121
121
+
"camino",
122
122
+
"cargo-platform",
123
123
+
"semver",
124
124
+
"serde",
125
125
+
"serde_json",
126
126
+
"thiserror",
127
127
+
]
128
128
+
129
129
+
[[package]]
130
130
+
name = "cc"
131
131
+
version = "1.0.96"
132
132
+
source = "registry+https://github.com/rust-lang/crates.io-index"
133
133
+
checksum = "065a29261d53ba54260972629f9ca6bffa69bac13cd1fed61420f7fa68b9f8bd"
134
134
+
135
135
+
[[package]]
136
136
+
name = "cfg-if"
137
137
+
version = "1.0.0"
138
138
+
source = "registry+https://github.com/rust-lang/crates.io-index"
139
139
+
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
140
140
+
141
141
+
[[package]]
142
142
+
name = "clap-sys"
143
143
+
version = "0.3.0"
144
144
+
source = "git+https://github.com/robbert-vdh/clap-sys.git?branch=feature/cstr-macro#523a5f8a8dd021ec99e7d6e0c0ebe7741a3da9d4"
145
145
+
146
146
+
[[package]]
147
147
+
name = "core-foundation"
148
148
+
version = "0.9.4"
149
149
+
source = "registry+https://github.com/rust-lang/crates.io-index"
150
150
+
checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
151
151
+
dependencies = [
152
152
+
"core-foundation-sys",
153
153
+
"libc",
154
154
+
]
155
155
+
156
156
+
[[package]]
157
157
+
name = "core-foundation-sys"
158
158
+
version = "0.8.6"
159
159
+
source = "registry+https://github.com/rust-lang/crates.io-index"
160
160
+
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
161
161
+
162
162
+
[[package]]
163
163
+
name = "crossbeam"
164
164
+
version = "0.8.4"
165
165
+
source = "registry+https://github.com/rust-lang/crates.io-index"
166
166
+
checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
167
167
+
dependencies = [
168
168
+
"crossbeam-channel",
169
169
+
"crossbeam-deque",
170
170
+
"crossbeam-epoch",
171
171
+
"crossbeam-queue",
172
172
+
"crossbeam-utils",
173
173
+
]
174
174
+
175
175
+
[[package]]
176
176
+
name = "crossbeam-channel"
177
177
+
version = "0.5.12"
178
178
+
source = "registry+https://github.com/rust-lang/crates.io-index"
179
179
+
checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
180
180
+
dependencies = [
181
181
+
"crossbeam-utils",
182
182
+
]
183
183
+
184
184
+
[[package]]
185
185
+
name = "crossbeam-deque"
186
186
+
version = "0.8.5"
187
187
+
source = "registry+https://github.com/rust-lang/crates.io-index"
188
188
+
checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
189
189
+
dependencies = [
190
190
+
"crossbeam-epoch",
191
191
+
"crossbeam-utils",
192
192
+
]
193
193
+
194
194
+
[[package]]
195
195
+
name = "crossbeam-epoch"
196
196
+
version = "0.9.18"
197
197
+
source = "registry+https://github.com/rust-lang/crates.io-index"
198
198
+
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
199
199
+
dependencies = [
200
200
+
"crossbeam-utils",
201
201
+
]
202
202
+
203
203
+
[[package]]
204
204
+
name = "crossbeam-queue"
205
205
+
version = "0.3.11"
206
206
+
source = "registry+https://github.com/rust-lang/crates.io-index"
207
207
+
checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
208
208
+
dependencies = [
209
209
+
"crossbeam-utils",
210
210
+
]
211
211
+
212
212
+
[[package]]
213
213
+
name = "crossbeam-utils"
214
214
+
version = "0.8.19"
215
215
+
source = "registry+https://github.com/rust-lang/crates.io-index"
216
216
+
checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
217
217
+
218
218
+
[[package]]
219
219
+
name = "deranged"
220
220
+
version = "0.3.11"
221
221
+
source = "registry+https://github.com/rust-lang/crates.io-index"
222
222
+
checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
223
223
+
dependencies = [
224
224
+
"powerfmt",
225
225
+
]
226
226
+
227
227
+
[[package]]
228
228
+
name = "equivalent"
229
229
+
version = "1.0.1"
230
230
+
source = "registry+https://github.com/rust-lang/crates.io-index"
231
231
+
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
232
232
+
233
233
+
[[package]]
234
234
+
name = "gimli"
235
235
+
version = "0.28.1"
236
236
+
source = "registry+https://github.com/rust-lang/crates.io-index"
237
237
+
checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
238
238
+
239
239
+
[[package]]
240
240
+
name = "goblin"
241
241
+
version = "0.6.1"
242
242
+
source = "registry+https://github.com/rust-lang/crates.io-index"
243
243
+
checksum = "0d6b4de4a8eb6c46a8c77e1d3be942cb9a8bf073c22374578e5ba4b08ed0ff68"
244
244
+
dependencies = [
245
245
+
"log",
246
246
+
"plain",
247
247
+
"scroll",
248
248
+
]
249
249
+
250
250
+
[[package]]
251
251
+
name = "hashbrown"
252
252
+
version = "0.14.5"
253
253
+
source = "registry+https://github.com/rust-lang/crates.io-index"
254
254
+
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
255
255
+
256
256
+
[[package]]
257
257
+
name = "hermit-abi"
258
258
+
version = "0.1.19"
259
259
+
source = "registry+https://github.com/rust-lang/crates.io-index"
260
260
+
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
261
261
+
dependencies = [
262
262
+
"libc",
263
263
+
]
264
264
+
265
265
+
[[package]]
266
266
+
name = "indexmap"
267
267
+
version = "2.2.6"
268
268
+
source = "registry+https://github.com/rust-lang/crates.io-index"
269
269
+
checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
270
270
+
dependencies = [
271
271
+
"equivalent",
272
272
+
"hashbrown",
273
273
+
]
274
274
+
275
275
+
[[package]]
276
276
+
name = "itoa"
277
277
+
version = "1.0.11"
278
278
+
source = "registry+https://github.com/rust-lang/crates.io-index"
279
279
+
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
280
280
+
281
281
+
[[package]]
282
282
+
name = "lazy_static"
283
283
+
version = "1.4.0"
284
284
+
source = "registry+https://github.com/rust-lang/crates.io-index"
285
285
+
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
286
286
+
287
287
+
[[package]]
288
288
+
name = "libc"
289
289
+
version = "0.2.154"
290
290
+
source = "registry+https://github.com/rust-lang/crates.io-index"
291
291
+
checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
292
292
+
293
293
+
[[package]]
294
294
+
name = "lock_api"
295
295
+
version = "0.4.12"
296
296
+
source = "registry+https://github.com/rust-lang/crates.io-index"
297
297
+
checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
298
298
+
dependencies = [
299
299
+
"autocfg",
300
300
+
"scopeguard",
301
301
+
]
302
302
+
303
303
+
[[package]]
304
304
+
name = "log"
305
305
+
version = "0.4.21"
306
306
+
source = "registry+https://github.com/rust-lang/crates.io-index"
307
307
+
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
308
308
+
309
309
+
[[package]]
310
310
+
name = "malloc_buf"
311
311
+
version = "0.0.6"
312
312
+
source = "registry+https://github.com/rust-lang/crates.io-index"
313
313
+
checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
314
314
+
dependencies = [
315
315
+
"libc",
316
316
+
]
317
317
+
318
318
+
[[package]]
319
319
+
name = "memchr"
320
320
+
version = "2.7.2"
321
321
+
source = "registry+https://github.com/rust-lang/crates.io-index"
322
322
+
checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
323
323
+
324
324
+
[[package]]
325
325
+
name = "midi-consts"
326
326
+
version = "0.1.0"
327
327
+
source = "registry+https://github.com/rust-lang/crates.io-index"
328
328
+
checksum = "6f2dd5c7f8aaf48a76e389068ab25ed80bdbc226b887f9013844c415698c9952"
329
329
+
330
330
+
[[package]]
331
331
+
name = "miniz_oxide"
332
332
+
version = "0.7.2"
333
333
+
source = "registry+https://github.com/rust-lang/crates.io-index"
334
334
+
checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
335
335
+
dependencies = [
336
336
+
"adler",
337
337
+
]
338
338
+
339
339
+
[[package]]
340
340
+
name = "nih_log"
341
341
+
version = "0.3.1"
342
342
+
source = "registry+https://github.com/rust-lang/crates.io-index"
343
343
+
checksum = "d0cdb52ef79af48ae110401c883bdb9c15e0306a99ab6ecf18bc52068b668e54"
344
344
+
dependencies = [
345
345
+
"atty",
346
346
+
"log",
347
347
+
"once_cell",
348
348
+
"termcolor",
349
349
+
"time",
350
350
+
"windows",
351
351
+
]
352
352
+
353
353
+
[[package]]
354
354
+
name = "nih_plug"
355
355
+
version = "0.0.0"
356
356
+
source = "git+https://github.com/robbert-vdh/nih-plug.git#bb274976ca138289436b0bfa209b2c8c13244225"
357
357
+
dependencies = [
358
358
+
"anyhow",
359
359
+
"anymap",
360
360
+
"assert_no_alloc",
361
361
+
"atomic_float",
362
362
+
"atomic_refcell",
363
363
+
"backtrace",
364
364
+
"bitflags 1.3.2",
365
365
+
"cfg-if",
366
366
+
"clap-sys",
367
367
+
"core-foundation",
368
368
+
"crossbeam",
369
369
+
"lazy_static",
370
370
+
"libc",
371
371
+
"log",
372
372
+
"midi-consts",
373
373
+
"nih_log",
374
374
+
"nih_plug_derive",
375
375
+
"objc",
376
376
+
"parking_lot",
377
377
+
"raw-window-handle",
378
378
+
"serde",
379
379
+
"serde_json",
380
380
+
"vst3-sys",
381
381
+
"widestring",
382
382
+
"windows",
383
383
+
]
384
384
+
385
385
+
[[package]]
386
386
+
name = "nih_plug_derive"
387
387
+
version = "0.1.0"
388
388
+
source = "git+https://github.com/robbert-vdh/nih-plug.git#bb274976ca138289436b0bfa209b2c8c13244225"
389
389
+
dependencies = [
390
390
+
"proc-macro2",
391
391
+
"quote",
392
392
+
"syn 1.0.109",
393
393
+
]
394
394
+
395
395
+
[[package]]
396
396
+
name = "nih_plug_xtask"
397
397
+
version = "0.1.0"
398
398
+
source = "git+https://github.com/robbert-vdh/nih-plug.git#bb274976ca138289436b0bfa209b2c8c13244225"
399
399
+
dependencies = [
400
400
+
"anyhow",
401
401
+
"cargo_metadata",
402
402
+
"goblin",
403
403
+
"reflink",
404
404
+
"serde",
405
405
+
"toml",
406
406
+
]
407
407
+
408
408
+
[[package]]
409
409
+
name = "num-conv"
410
410
+
version = "0.1.0"
411
411
+
source = "registry+https://github.com/rust-lang/crates.io-index"
412
412
+
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
413
413
+
414
414
+
[[package]]
415
415
+
name = "num_threads"
416
416
+
version = "0.1.7"
417
417
+
source = "registry+https://github.com/rust-lang/crates.io-index"
418
418
+
checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
419
419
+
dependencies = [
420
420
+
"libc",
421
421
+
]
422
422
+
423
423
+
[[package]]
424
424
+
name = "objc"
425
425
+
version = "0.2.7"
426
426
+
source = "registry+https://github.com/rust-lang/crates.io-index"
427
427
+
checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
428
428
+
dependencies = [
429
429
+
"malloc_buf",
430
430
+
]
431
431
+
432
432
+
[[package]]
433
433
+
name = "object"
434
434
+
version = "0.32.2"
435
435
+
source = "registry+https://github.com/rust-lang/crates.io-index"
436
436
+
checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
437
437
+
dependencies = [
438
438
+
"memchr",
439
439
+
]
440
440
+
441
441
+
[[package]]
442
442
+
name = "once_cell"
443
443
+
version = "1.19.0"
444
444
+
source = "registry+https://github.com/rust-lang/crates.io-index"
445
445
+
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
446
446
+
447
447
+
[[package]]
448
448
+
name = "parking_lot"
449
449
+
version = "0.12.2"
450
450
+
source = "registry+https://github.com/rust-lang/crates.io-index"
451
451
+
checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb"
452
452
+
dependencies = [
453
453
+
"lock_api",
454
454
+
"parking_lot_core",
455
455
+
]
456
456
+
457
457
+
[[package]]
458
458
+
name = "parking_lot_core"
459
459
+
version = "0.9.10"
460
460
+
source = "registry+https://github.com/rust-lang/crates.io-index"
461
461
+
checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
462
462
+
dependencies = [
463
463
+
"cfg-if",
464
464
+
"libc",
465
465
+
"redox_syscall",
466
466
+
"smallvec",
467
467
+
"windows-targets 0.52.5",
468
468
+
]
469
469
+
470
470
+
[[package]]
471
471
+
name = "plain"
472
472
+
version = "0.2.3"
473
473
+
source = "registry+https://github.com/rust-lang/crates.io-index"
474
474
+
checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
475
475
+
476
476
+
[[package]]
477
477
+
name = "powerfmt"
478
478
+
version = "0.2.0"
479
479
+
source = "registry+https://github.com/rust-lang/crates.io-index"
480
480
+
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
481
481
+
482
482
+
[[package]]
483
483
+
name = "proc-macro2"
484
484
+
version = "1.0.81"
485
485
+
source = "registry+https://github.com/rust-lang/crates.io-index"
486
486
+
checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
487
487
+
dependencies = [
488
488
+
"unicode-ident",
489
489
+
]
490
490
+
491
491
+
[[package]]
492
492
+
name = "quote"
493
493
+
version = "1.0.36"
494
494
+
source = "registry+https://github.com/rust-lang/crates.io-index"
495
495
+
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
496
496
+
dependencies = [
497
497
+
"proc-macro2",
498
498
+
]
499
499
+
500
500
+
[[package]]
501
501
+
name = "raw-window-handle"
502
502
+
version = "0.5.2"
503
503
+
source = "registry+https://github.com/rust-lang/crates.io-index"
504
504
+
checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
505
505
+
506
506
+
[[package]]
507
507
+
name = "redox_syscall"
508
508
+
version = "0.5.1"
509
509
+
source = "registry+https://github.com/rust-lang/crates.io-index"
510
510
+
checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
511
511
+
dependencies = [
512
512
+
"bitflags 2.5.0",
513
513
+
]
514
514
+
515
515
+
[[package]]
516
516
+
name = "reflink"
517
517
+
version = "0.1.3"
518
518
+
source = "git+https://github.com/nicokoch/reflink.git?rev=e8d93b465f5d9ad340cd052b64bbc77b8ee107e2#e8d93b465f5d9ad340cd052b64bbc77b8ee107e2"
519
519
+
dependencies = [
520
520
+
"libc",
521
521
+
"winapi",
522
522
+
]
523
523
+
524
524
+
[[package]]
525
525
+
name = "rustc-demangle"
526
526
+
version = "0.1.23"
527
527
+
source = "registry+https://github.com/rust-lang/crates.io-index"
528
528
+
checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
529
529
+
530
530
+
[[package]]
531
531
+
name = "ryu"
532
532
+
version = "1.0.17"
533
533
+
source = "registry+https://github.com/rust-lang/crates.io-index"
534
534
+
checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
535
535
+
536
536
+
[[package]]
537
537
+
name = "scopeguard"
538
538
+
version = "1.2.0"
539
539
+
source = "registry+https://github.com/rust-lang/crates.io-index"
540
540
+
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
541
541
+
542
542
+
[[package]]
543
543
+
name = "scroll"
544
544
+
version = "0.11.0"
545
545
+
source = "registry+https://github.com/rust-lang/crates.io-index"
546
546
+
checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da"
547
547
+
dependencies = [
548
548
+
"scroll_derive",
549
549
+
]
550
550
+
551
551
+
[[package]]
552
552
+
name = "scroll_derive"
553
553
+
version = "0.11.1"
554
554
+
source = "registry+https://github.com/rust-lang/crates.io-index"
555
555
+
checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae"
556
556
+
dependencies = [
557
557
+
"proc-macro2",
558
558
+
"quote",
559
559
+
"syn 2.0.60",
560
560
+
]
561
561
+
562
562
+
[[package]]
563
563
+
name = "semver"
564
564
+
version = "1.0.22"
565
565
+
source = "registry+https://github.com/rust-lang/crates.io-index"
566
566
+
checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
567
567
+
dependencies = [
568
568
+
"serde",
569
569
+
]
570
570
+
571
571
+
[[package]]
572
572
+
name = "serde"
573
573
+
version = "1.0.200"
574
574
+
source = "registry+https://github.com/rust-lang/crates.io-index"
575
575
+
checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f"
576
576
+
dependencies = [
577
577
+
"serde_derive",
578
578
+
]
579
579
+
580
580
+
[[package]]
581
581
+
name = "serde_derive"
582
582
+
version = "1.0.200"
583
583
+
source = "registry+https://github.com/rust-lang/crates.io-index"
584
584
+
checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb"
585
585
+
dependencies = [
586
586
+
"proc-macro2",
587
587
+
"quote",
588
588
+
"syn 2.0.60",
589
589
+
]
590
590
+
591
591
+
[[package]]
592
592
+
name = "serde_json"
593
593
+
version = "1.0.116"
594
594
+
source = "registry+https://github.com/rust-lang/crates.io-index"
595
595
+
checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
596
596
+
dependencies = [
597
597
+
"itoa",
598
598
+
"ryu",
599
599
+
"serde",
600
600
+
]
601
601
+
602
602
+
[[package]]
603
603
+
name = "serde_spanned"
604
604
+
version = "0.6.5"
605
605
+
source = "registry+https://github.com/rust-lang/crates.io-index"
606
606
+
checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
607
607
+
dependencies = [
608
608
+
"serde",
609
609
+
]
610
610
+
611
611
+
[[package]]
612
612
+
name = "shapemaker_vst"
613
613
+
version = "0.1.0"
614
614
+
dependencies = [
615
615
+
"nih_plug",
616
616
+
]
617
617
+
618
618
+
[[package]]
619
619
+
name = "smallvec"
620
620
+
version = "1.13.2"
621
621
+
source = "registry+https://github.com/rust-lang/crates.io-index"
622
622
+
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
623
623
+
624
624
+
[[package]]
625
625
+
name = "syn"
626
626
+
version = "1.0.109"
627
627
+
source = "registry+https://github.com/rust-lang/crates.io-index"
628
628
+
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
629
629
+
dependencies = [
630
630
+
"proc-macro2",
631
631
+
"quote",
632
632
+
"unicode-ident",
633
633
+
]
634
634
+
635
635
+
[[package]]
636
636
+
name = "syn"
637
637
+
version = "2.0.60"
638
638
+
source = "registry+https://github.com/rust-lang/crates.io-index"
639
639
+
checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
640
640
+
dependencies = [
641
641
+
"proc-macro2",
642
642
+
"quote",
643
643
+
"unicode-ident",
644
644
+
]
645
645
+
646
646
+
[[package]]
647
647
+
name = "termcolor"
648
648
+
version = "1.4.1"
649
649
+
source = "registry+https://github.com/rust-lang/crates.io-index"
650
650
+
checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
651
651
+
dependencies = [
652
652
+
"winapi-util",
653
653
+
]
654
654
+
655
655
+
[[package]]
656
656
+
name = "thiserror"
657
657
+
version = "1.0.59"
658
658
+
source = "registry+https://github.com/rust-lang/crates.io-index"
659
659
+
checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa"
660
660
+
dependencies = [
661
661
+
"thiserror-impl",
662
662
+
]
663
663
+
664
664
+
[[package]]
665
665
+
name = "thiserror-impl"
666
666
+
version = "1.0.59"
667
667
+
source = "registry+https://github.com/rust-lang/crates.io-index"
668
668
+
checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66"
669
669
+
dependencies = [
670
670
+
"proc-macro2",
671
671
+
"quote",
672
672
+
"syn 2.0.60",
673
673
+
]
674
674
+
675
675
+
[[package]]
676
676
+
name = "time"
677
677
+
version = "0.3.36"
678
678
+
source = "registry+https://github.com/rust-lang/crates.io-index"
679
679
+
checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
680
680
+
dependencies = [
681
681
+
"deranged",
682
682
+
"itoa",
683
683
+
"libc",
684
684
+
"num-conv",
685
685
+
"num_threads",
686
686
+
"powerfmt",
687
687
+
"serde",
688
688
+
"time-core",
689
689
+
"time-macros",
690
690
+
]
691
691
+
692
692
+
[[package]]
693
693
+
name = "time-core"
694
694
+
version = "0.1.2"
695
695
+
source = "registry+https://github.com/rust-lang/crates.io-index"
696
696
+
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
697
697
+
698
698
+
[[package]]
699
699
+
name = "time-macros"
700
700
+
version = "0.2.18"
701
701
+
source = "registry+https://github.com/rust-lang/crates.io-index"
702
702
+
checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
703
703
+
dependencies = [
704
704
+
"num-conv",
705
705
+
"time-core",
706
706
+
]
707
707
+
708
708
+
[[package]]
709
709
+
name = "toml"
710
710
+
version = "0.7.8"
711
711
+
source = "registry+https://github.com/rust-lang/crates.io-index"
712
712
+
checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
713
713
+
dependencies = [
714
714
+
"serde",
715
715
+
"serde_spanned",
716
716
+
"toml_datetime",
717
717
+
"toml_edit",
718
718
+
]
719
719
+
720
720
+
[[package]]
721
721
+
name = "toml_datetime"
722
722
+
version = "0.6.5"
723
723
+
source = "registry+https://github.com/rust-lang/crates.io-index"
724
724
+
checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
725
725
+
dependencies = [
726
726
+
"serde",
727
727
+
]
728
728
+
729
729
+
[[package]]
730
730
+
name = "toml_edit"
731
731
+
version = "0.19.15"
732
732
+
source = "registry+https://github.com/rust-lang/crates.io-index"
733
733
+
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
734
734
+
dependencies = [
735
735
+
"indexmap",
736
736
+
"serde",
737
737
+
"serde_spanned",
738
738
+
"toml_datetime",
739
739
+
"winnow",
740
740
+
]
741
741
+
742
742
+
[[package]]
743
743
+
name = "unicode-ident"
744
744
+
version = "1.0.12"
745
745
+
source = "registry+https://github.com/rust-lang/crates.io-index"
746
746
+
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
747
747
+
748
748
+
[[package]]
749
749
+
name = "vst3-com"
750
750
+
version = "0.1.0"
751
751
+
source = "git+https://github.com/robbert-vdh/vst3-sys.git?branch=fix/drop-box-from-raw#b3ff4d775940f5b476b9d1cca02a90e07e1922a2"
752
752
+
dependencies = [
753
753
+
"vst3-com-macros",
754
754
+
]
755
755
+
756
756
+
[[package]]
757
757
+
name = "vst3-com-macros"
758
758
+
version = "0.2.0"
759
759
+
source = "git+https://github.com/robbert-vdh/vst3-sys.git?branch=fix/drop-box-from-raw#b3ff4d775940f5b476b9d1cca02a90e07e1922a2"
760
760
+
dependencies = [
761
761
+
"proc-macro2",
762
762
+
"quote",
763
763
+
"syn 1.0.109",
764
764
+
"vst3-com-macros-support",
765
765
+
]
766
766
+
767
767
+
[[package]]
768
768
+
name = "vst3-com-macros-support"
769
769
+
version = "0.2.0"
770
770
+
source = "git+https://github.com/robbert-vdh/vst3-sys.git?branch=fix/drop-box-from-raw#b3ff4d775940f5b476b9d1cca02a90e07e1922a2"
771
771
+
dependencies = [
772
772
+
"proc-macro2",
773
773
+
"quote",
774
774
+
"syn 1.0.109",
775
775
+
]
776
776
+
777
777
+
[[package]]
778
778
+
name = "vst3-sys"
779
779
+
version = "0.1.0"
780
780
+
source = "git+https://github.com/robbert-vdh/vst3-sys.git?branch=fix/drop-box-from-raw#b3ff4d775940f5b476b9d1cca02a90e07e1922a2"
781
781
+
dependencies = [
782
782
+
"vst3-com",
783
783
+
]
784
784
+
785
785
+
[[package]]
786
786
+
name = "widestring"
787
787
+
version = "1.1.0"
788
788
+
source = "registry+https://github.com/rust-lang/crates.io-index"
789
789
+
checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311"
790
790
+
791
791
+
[[package]]
792
792
+
name = "winapi"
793
793
+
version = "0.3.9"
794
794
+
source = "registry+https://github.com/rust-lang/crates.io-index"
795
795
+
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
796
796
+
dependencies = [
797
797
+
"winapi-i686-pc-windows-gnu",
798
798
+
"winapi-x86_64-pc-windows-gnu",
799
799
+
]
800
800
+
801
801
+
[[package]]
802
802
+
name = "winapi-i686-pc-windows-gnu"
803
803
+
version = "0.4.0"
804
804
+
source = "registry+https://github.com/rust-lang/crates.io-index"
805
805
+
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
806
806
+
807
807
+
[[package]]
808
808
+
name = "winapi-util"
809
809
+
version = "0.1.8"
810
810
+
source = "registry+https://github.com/rust-lang/crates.io-index"
811
811
+
checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
812
812
+
dependencies = [
813
813
+
"windows-sys",
814
814
+
]
815
815
+
816
816
+
[[package]]
817
817
+
name = "winapi-x86_64-pc-windows-gnu"
818
818
+
version = "0.4.0"
819
819
+
source = "registry+https://github.com/rust-lang/crates.io-index"
820
820
+
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
821
821
+
822
822
+
[[package]]
823
823
+
name = "windows"
824
824
+
version = "0.44.0"
825
825
+
source = "registry+https://github.com/rust-lang/crates.io-index"
826
826
+
checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b"
827
827
+
dependencies = [
828
828
+
"windows-targets 0.42.2",
829
829
+
]
830
830
+
831
831
+
[[package]]
832
832
+
name = "windows-sys"
833
833
+
version = "0.52.0"
834
834
+
source = "registry+https://github.com/rust-lang/crates.io-index"
835
835
+
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
836
836
+
dependencies = [
837
837
+
"windows-targets 0.52.5",
838
838
+
]
839
839
+
840
840
+
[[package]]
841
841
+
name = "windows-targets"
842
842
+
version = "0.42.2"
843
843
+
source = "registry+https://github.com/rust-lang/crates.io-index"
844
844
+
checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
845
845
+
dependencies = [
846
846
+
"windows_aarch64_gnullvm 0.42.2",
847
847
+
"windows_aarch64_msvc 0.42.2",
848
848
+
"windows_i686_gnu 0.42.2",
849
849
+
"windows_i686_msvc 0.42.2",
850
850
+
"windows_x86_64_gnu 0.42.2",
851
851
+
"windows_x86_64_gnullvm 0.42.2",
852
852
+
"windows_x86_64_msvc 0.42.2",
853
853
+
]
854
854
+
855
855
+
[[package]]
856
856
+
name = "windows-targets"
857
857
+
version = "0.52.5"
858
858
+
source = "registry+https://github.com/rust-lang/crates.io-index"
859
859
+
checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
860
860
+
dependencies = [
861
861
+
"windows_aarch64_gnullvm 0.52.5",
862
862
+
"windows_aarch64_msvc 0.52.5",
863
863
+
"windows_i686_gnu 0.52.5",
864
864
+
"windows_i686_gnullvm",
865
865
+
"windows_i686_msvc 0.52.5",
866
866
+
"windows_x86_64_gnu 0.52.5",
867
867
+
"windows_x86_64_gnullvm 0.52.5",
868
868
+
"windows_x86_64_msvc 0.52.5",
869
869
+
]
870
870
+
871
871
+
[[package]]
872
872
+
name = "windows_aarch64_gnullvm"
873
873
+
version = "0.42.2"
874
874
+
source = "registry+https://github.com/rust-lang/crates.io-index"
875
875
+
checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
876
876
+
877
877
+
[[package]]
878
878
+
name = "windows_aarch64_gnullvm"
879
879
+
version = "0.52.5"
880
880
+
source = "registry+https://github.com/rust-lang/crates.io-index"
881
881
+
checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
882
882
+
883
883
+
[[package]]
884
884
+
name = "windows_aarch64_msvc"
885
885
+
version = "0.42.2"
886
886
+
source = "registry+https://github.com/rust-lang/crates.io-index"
887
887
+
checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
888
888
+
889
889
+
[[package]]
890
890
+
name = "windows_aarch64_msvc"
891
891
+
version = "0.52.5"
892
892
+
source = "registry+https://github.com/rust-lang/crates.io-index"
893
893
+
checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
894
894
+
895
895
+
[[package]]
896
896
+
name = "windows_i686_gnu"
897
897
+
version = "0.42.2"
898
898
+
source = "registry+https://github.com/rust-lang/crates.io-index"
899
899
+
checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
900
900
+
901
901
+
[[package]]
902
902
+
name = "windows_i686_gnu"
903
903
+
version = "0.52.5"
904
904
+
source = "registry+https://github.com/rust-lang/crates.io-index"
905
905
+
checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
906
906
+
907
907
+
[[package]]
908
908
+
name = "windows_i686_gnullvm"
909
909
+
version = "0.52.5"
910
910
+
source = "registry+https://github.com/rust-lang/crates.io-index"
911
911
+
checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
912
912
+
913
913
+
[[package]]
914
914
+
name = "windows_i686_msvc"
915
915
+
version = "0.42.2"
916
916
+
source = "registry+https://github.com/rust-lang/crates.io-index"
917
917
+
checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
918
918
+
919
919
+
[[package]]
920
920
+
name = "windows_i686_msvc"
921
921
+
version = "0.52.5"
922
922
+
source = "registry+https://github.com/rust-lang/crates.io-index"
923
923
+
checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
924
924
+
925
925
+
[[package]]
926
926
+
name = "windows_x86_64_gnu"
927
927
+
version = "0.42.2"
928
928
+
source = "registry+https://github.com/rust-lang/crates.io-index"
929
929
+
checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
930
930
+
931
931
+
[[package]]
932
932
+
name = "windows_x86_64_gnu"
933
933
+
version = "0.52.5"
934
934
+
source = "registry+https://github.com/rust-lang/crates.io-index"
935
935
+
checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
936
936
+
937
937
+
[[package]]
938
938
+
name = "windows_x86_64_gnullvm"
939
939
+
version = "0.42.2"
940
940
+
source = "registry+https://github.com/rust-lang/crates.io-index"
941
941
+
checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
942
942
+
943
943
+
[[package]]
944
944
+
name = "windows_x86_64_gnullvm"
945
945
+
version = "0.52.5"
946
946
+
source = "registry+https://github.com/rust-lang/crates.io-index"
947
947
+
checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
948
948
+
949
949
+
[[package]]
950
950
+
name = "windows_x86_64_msvc"
951
951
+
version = "0.42.2"
952
952
+
source = "registry+https://github.com/rust-lang/crates.io-index"
953
953
+
checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
954
954
+
955
955
+
[[package]]
956
956
+
name = "windows_x86_64_msvc"
957
957
+
version = "0.52.5"
958
958
+
source = "registry+https://github.com/rust-lang/crates.io-index"
959
959
+
checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
960
960
+
961
961
+
[[package]]
962
962
+
name = "winnow"
963
963
+
version = "0.5.40"
964
964
+
source = "registry+https://github.com/rust-lang/crates.io-index"
965
965
+
checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
966
966
+
dependencies = [
967
967
+
"memchr",
968
968
+
]
969
969
+
970
970
+
[[package]]
971
971
+
name = "xtask"
972
972
+
version = "0.1.0"
973
973
+
dependencies = [
974
974
+
"nih_plug_xtask",
975
975
+
]
···
1
1
+
[package]
2
2
+
name = "shapemaker_vst"
3
3
+
version = "0.1.0"
4
4
+
edition = "2021"
5
5
+
authors = ["Ewen Le Bihan <hey@ewen.works>"]
6
6
+
license = "GPL-3.0-or-later"
7
7
+
homepage = "https://ewen.works/shapemaker"
8
8
+
description = "A VST plugin for Shapemaker, an experimental audiovisual SVG-based rendering engine"
9
9
+
10
10
+
[workspace]
11
11
+
members = ["xtask"]
12
12
+
13
13
+
[lib]
14
14
+
crate-type = ["cdylib"]
15
15
+
16
16
+
[dependencies]
17
17
+
# Remove the `assert_process_allocs` feature to allow allocations on the audio
18
18
+
# thread in debug builds.
19
19
+
nih_plug = { git = "https://github.com/robbert-vdh/nih-plug.git", features = ["assert_process_allocs"] }
20
20
+
# Uncomment the below line to disable the on-by-default VST3 feature to remove
21
21
+
# the GPL compatibility requirement
22
22
+
# nih_plug = { git = "https://github.com/robbert-vdh/nih-plug.git", default_features = false, features = ["assert_process_allocs"] }
23
23
+
24
24
+
[profile.release]
25
25
+
lto = "thin"
26
26
+
strip = "symbols"
27
27
+
28
28
+
[profile.profiling]
29
29
+
inherits = "release"
30
30
+
debug = true
31
31
+
strip = "none"
···
1
1
+
# Shapemaker VST
2
2
+
3
3
+
## Building
4
4
+
5
5
+
After installing [Rust](https://rustup.rs/), you can compile Shapemaker VST as follows:
6
6
+
7
7
+
```shell
8
8
+
cargo xtask bundle shapemaker_vst --release
9
9
+
```
···
1
1
+
# This provides metadata for NIH-plug's `cargo xtask bundle <foo>` plugin
2
2
+
# bundler. This file's syntax is as follows:
3
3
+
#
4
4
+
# [package_name]
5
5
+
# name = "Human Readable Plugin Name" # defaults to <package_name>
6
6
+
7
7
+
[shapemaker_vst]
8
8
+
name = "Shapemaker VST"
···
1
1
+
use nih_plug::prelude::*;
2
2
+
use std::sync::Arc;
3
3
+
4
4
+
// This is a shortened version of the gain example with most comments removed, check out
5
5
+
// https://github.com/robbert-vdh/nih-plug/blob/master/plugins/examples/gain/src/lib.rs to get
6
6
+
// started
7
7
+
8
8
+
struct ShapemakerVST {
9
9
+
params: Arc<ShapemakerVSTParams>,
10
10
+
}
11
11
+
12
12
+
#[derive(Params)]
13
13
+
struct ShapemakerVSTParams {
14
14
+
/// The parameter's ID is used to identify the parameter in the wrappred plugin API. As long as
15
15
+
/// these IDs remain constant, you can rename and reorder these fields as you wish. The
16
16
+
/// parameters are exposed to the host in the same order they were defined. In this case, this
17
17
+
/// gain parameter is stored as linear gain while the values are displayed in decibels.
18
18
+
#[id = "gain"]
19
19
+
pub gain: FloatParam,
20
20
+
}
21
21
+
22
22
+
impl Default for ShapemakerVST {
23
23
+
fn default() -> Self {
24
24
+
Self {
25
25
+
params: Arc::new(ShapemakerVSTParams::default()),
26
26
+
}
27
27
+
}
28
28
+
}
29
29
+
30
30
+
impl Default for ShapemakerVSTParams {
31
31
+
fn default() -> Self {
32
32
+
Self {
33
33
+
// This gain is stored as linear gain. NIH-plug comes with useful conversion functions
34
34
+
// to treat these kinds of parameters as if we were dealing with decibels. Storing this
35
35
+
// as decibels is easier to work with, but requires a conversion for every sample.
36
36
+
gain: FloatParam::new(
37
37
+
"Gain",
38
38
+
util::db_to_gain(0.0),
39
39
+
FloatRange::Skewed {
40
40
+
min: util::db_to_gain(-30.0),
41
41
+
max: util::db_to_gain(30.0),
42
42
+
// This makes the range appear as if it was linear when displaying the values as
43
43
+
// decibels
44
44
+
factor: FloatRange::gain_skew_factor(-30.0, 30.0),
45
45
+
},
46
46
+
)
47
47
+
// Because the gain parameter is stored as linear gain instead of storing the value as
48
48
+
// decibels, we need logarithmic smoothing
49
49
+
.with_smoother(SmoothingStyle::Logarithmic(50.0))
50
50
+
.with_unit(" dB")
51
51
+
// There are many predefined formatters we can use here. If the gain was stored as
52
52
+
// decibels instead of as a linear gain value, we could have also used the
53
53
+
// `.with_step_size(0.1)` function to get internal rounding.
54
54
+
.with_value_to_string(formatters::v2s_f32_gain_to_db(2))
55
55
+
.with_string_to_value(formatters::s2v_f32_gain_to_db()),
56
56
+
}
57
57
+
}
58
58
+
}
59
59
+
60
60
+
impl Plugin for ShapemakerVST {
61
61
+
const NAME: &'static str = "Shapemaker VST";
62
62
+
const VENDOR: &'static str = "Ewen Le Bihan";
63
63
+
const URL: &'static str = env!("CARGO_PKG_HOMEPAGE");
64
64
+
const EMAIL: &'static str = "hey@ewen.works";
65
65
+
66
66
+
const VERSION: &'static str = env!("CARGO_PKG_VERSION");
67
67
+
68
68
+
// The first audio IO layout is used as the default. The other layouts may be selected either
69
69
+
// explicitly or automatically by the host or the user depending on the plugin API/backend.
70
70
+
const AUDIO_IO_LAYOUTS: &'static [AudioIOLayout] = &[AudioIOLayout {
71
71
+
main_input_channels: NonZeroU32::new(2),
72
72
+
main_output_channels: NonZeroU32::new(2),
73
73
+
74
74
+
aux_input_ports: &[],
75
75
+
aux_output_ports: &[],
76
76
+
77
77
+
// Individual ports and the layout as a whole can be named here. By default these names
78
78
+
// are generated as needed. This layout will be called 'Stereo', while a layout with
79
79
+
// only one input and output channel would be called 'Mono'.
80
80
+
names: PortNames::const_default(),
81
81
+
}];
82
82
+
83
83
+
84
84
+
const MIDI_INPUT: MidiConfig = MidiConfig::None;
85
85
+
const MIDI_OUTPUT: MidiConfig = MidiConfig::None;
86
86
+
87
87
+
const SAMPLE_ACCURATE_AUTOMATION: bool = true;
88
88
+
89
89
+
// If the plugin can send or receive SysEx messages, it can define a type to wrap around those
90
90
+
// messages here. The type implements the `SysExMessage` trait, which allows conversion to and
91
91
+
// from plain byte buffers.
92
92
+
type SysExMessage = ();
93
93
+
// More advanced plugins can use this to run expensive background tasks. See the field's
94
94
+
// documentation for more information. `()` means that the plugin does not have any background
95
95
+
// tasks.
96
96
+
type BackgroundTask = ();
97
97
+
98
98
+
fn params(&self) -> Arc<dyn Params> {
99
99
+
self.params.clone()
100
100
+
}
101
101
+
102
102
+
fn initialize(
103
103
+
&mut self,
104
104
+
_audio_io_layout: &AudioIOLayout,
105
105
+
_buffer_config: &BufferConfig,
106
106
+
_context: &mut impl InitContext<Self>,
107
107
+
) -> bool {
108
108
+
// Resize buffers and perform other potentially expensive initialization operations here.
109
109
+
// The `reset()` function is always called right after this function. You can remove this
110
110
+
// function if you do not need it.
111
111
+
true
112
112
+
}
113
113
+
114
114
+
fn reset(&mut self) {
115
115
+
// Reset buffers and envelopes here. This can be called from the audio thread and may not
116
116
+
// allocate. You can remove this function if you do not need it.
117
117
+
}
118
118
+
119
119
+
fn process(
120
120
+
&mut self,
121
121
+
buffer: &mut Buffer,
122
122
+
_aux: &mut AuxiliaryBuffers,
123
123
+
_context: &mut impl ProcessContext<Self>,
124
124
+
) -> ProcessStatus {
125
125
+
for channel_samples in buffer.iter_samples() {
126
126
+
// Smoothing is optionally built into the parameters themselves
127
127
+
let gain = self.params.gain.smoothed.next();
128
128
+
129
129
+
for sample in channel_samples {
130
130
+
*sample *= gain;
131
131
+
}
132
132
+
}
133
133
+
134
134
+
ProcessStatus::Normal
135
135
+
}
136
136
+
}
137
137
+
138
138
+
impl ClapPlugin for ShapemakerVST {
139
139
+
const CLAP_ID: &'static str = "works.ewen.shapemaker";
140
140
+
const CLAP_DESCRIPTION: Option<&'static str> = Some("A VST plugin for Shapemaker, an experimental audiovisual SVG-based rendering engine");
141
141
+
const CLAP_MANUAL_URL: Option<&'static str> = Some(Self::URL);
142
142
+
const CLAP_SUPPORT_URL: Option<&'static str> = None;
143
143
+
144
144
+
// Don't forget to change these features
145
145
+
const CLAP_FEATURES: &'static [ClapFeature] = &[ClapFeature::AudioEffect, ClapFeature::Stereo];
146
146
+
}
147
147
+
148
148
+
impl Vst3Plugin for ShapemakerVST {
149
149
+
const VST3_CLASS_ID: [u8; 16] = *b"ewenlbhshapemake";
150
150
+
151
151
+
// And also don't forget to change these categories
152
152
+
const VST3_SUBCATEGORIES: &'static [Vst3SubCategory] =
153
153
+
&[Vst3SubCategory::Fx, Vst3SubCategory::Dynamics];
154
154
+
}
155
155
+
156
156
+
nih_export_clap!(ShapemakerVST);
157
157
+
nih_export_vst3!(ShapemakerVST);
···
1
1
+
[package]
2
2
+
name = "xtask"
3
3
+
version = "0.1.0"
4
4
+
edition = "2021"
5
5
+
6
6
+
[dependencies]
7
7
+
nih_plug_xtask = { git = "https://github.com/robbert-vdh/nih-plug.git" }
···
1
1
+
fn main() -> nih_plug_xtask::Result<()> {
2
2
+
nih_plug_xtask::main()
3
3
+
}