@devaloop/devalang 0.0.1-beta.1 → 0.0.1-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.devalang +9 -10
- package/Cargo.toml +84 -80
- package/README.md +10 -7
- package/docs/CHANGELOG.md +83 -0
- package/docs/ROADMAP.md +6 -2
- package/docs/TODO.md +3 -14
- package/examples/bus.deva +10 -0
- package/examples/chain.deva +19 -0
- package/examples/effect.deva +2 -0
- package/examples/filter.deva +11 -0
- package/examples/lfo.deva +9 -0
- package/examples/plugin.deva +10 -10
- package/examples/routing.deva +23 -0
- package/examples/synth.deva +11 -1
- package/examples/synth_types.deva +17 -0
- package/out-tsc/bin/project-version.json +6 -0
- package/out-tsc/core/functions/index.d.ts +5 -0
- package/out-tsc/core/functions/index.js +11 -0
- package/out-tsc/pkg/devalang_core.d.ts +2 -0
- package/out-tsc/pkg/devalang_core.js +17 -2
- package/out-tsc/pkg/devalang_core_bg.wasm.d.ts +1 -0
- package/out-tsc/scripts/version/copy-to-binary.d.ts +1 -0
- package/out-tsc/scripts/version/copy-to-binary.js +79 -0
- package/package.json +23 -10
- package/project-version.json +3 -3
- package/rust/bindings/Cargo.toml +9 -0
- package/rust/bindings/src/lib.rs +86 -0
- package/rust/cli/addon/commands.rs +35 -0
- package/rust/cli/addon/download.rs +234 -0
- package/rust/cli/addon/install.rs +33 -0
- package/rust/cli/addon/list.rs +224 -0
- package/rust/cli/addon/metadata.rs +124 -0
- package/rust/cli/addon/mod.rs +8 -0
- package/rust/cli/addon/remove.rs +271 -0
- package/rust/cli/addon/update.rs +305 -0
- package/rust/cli/{install/addon.rs → addon/utils.rs} +34 -43
- package/rust/cli/build/commands.rs +153 -103
- package/rust/cli/build/mod.rs +2 -2
- package/rust/cli/build/process.rs +165 -146
- package/rust/cli/check/mod.rs +208 -208
- package/rust/cli/discover/commands.rs +53 -31
- package/rust/cli/discover/config.rs +2 -4
- package/rust/cli/discover/install.rs +139 -28
- package/rust/cli/discover/metadata.rs +3 -3
- package/rust/cli/login/commands.rs +124 -124
- package/rust/cli/me/commands.rs +52 -0
- package/rust/cli/me/mod.rs +1 -0
- package/rust/cli/mod.rs +2 -2
- package/rust/cli/parser.rs +76 -70
- package/rust/cli/play/commands.rs +375 -324
- package/rust/cli/play/mod.rs +5 -5
- package/rust/cli/play/process.rs +159 -150
- package/rust/cli/play/realtime.rs +91 -91
- package/rust/cli/telemetry/commands.rs +22 -22
- package/rust/cli/telemetry/event_creator.rs +80 -80
- package/rust/cli/telemetry/mod.rs +3 -3
- package/rust/cli/telemetry/send.rs +51 -51
- package/rust/cli/template/commands.rs +69 -69
- package/rust/config/driver.rs +112 -103
- package/rust/config/mod.rs +3 -3
- package/rust/config/ops.rs +26 -26
- package/rust/config/settings.rs +101 -101
- package/rust/core/audio/engine/driver.rs +237 -0
- package/rust/core/audio/engine/export.rs +169 -0
- package/rust/core/audio/engine/helpers.rs +178 -170
- package/rust/core/audio/engine/mod.rs +56 -7
- package/rust/core/audio/engine/notes/dsp.rs +88 -0
- package/rust/core/audio/engine/notes/mod.rs +53 -0
- package/rust/core/audio/engine/notes/params.rs +294 -0
- package/rust/core/audio/engine/sample/insert.rs +300 -0
- package/rust/core/audio/engine/sample/mod.rs +40 -0
- package/rust/core/audio/engine/sample/padding.rs +170 -0
- package/rust/core/audio/evaluator/condition.rs +61 -0
- package/rust/core/audio/evaluator/mod.rs +9 -0
- package/rust/core/audio/{evaluator.rs → evaluator/numeric.rs} +152 -310
- package/rust/core/audio/evaluator/rhs.rs +16 -0
- package/rust/core/audio/evaluator/string_expr.rs +94 -0
- package/rust/core/audio/interpreter/driver.rs +574 -542
- package/rust/core/audio/interpreter/mod.rs +2 -14
- package/rust/core/audio/interpreter/statements/arrow_call/interprete.rs +179 -0
- package/rust/core/audio/interpreter/statements/arrow_call/methods/chord.rs +398 -0
- package/rust/core/audio/interpreter/statements/arrow_call/methods/effects.rs +323 -0
- package/rust/core/audio/interpreter/statements/arrow_call/methods/mod.rs +3 -0
- package/rust/core/audio/interpreter/statements/arrow_call/methods/note.rs +371 -0
- package/rust/core/audio/interpreter/statements/arrow_call/mod.rs +3 -0
- package/rust/core/audio/interpreter/statements/arrow_call/types/arp.rs +192 -0
- package/rust/core/audio/interpreter/statements/arrow_call/types/mod.rs +24 -0
- package/rust/core/audio/interpreter/statements/arrow_call/types/pad.rs +116 -0
- package/rust/core/audio/interpreter/statements/arrow_call/types/pluck.rs +97 -0
- package/rust/core/audio/interpreter/statements/arrow_call/types/sub.rs +100 -0
- package/rust/core/audio/interpreter/{automate.rs → statements/automate.rs} +2 -4
- package/rust/core/audio/interpreter/{call.rs → statements/call.rs} +36 -5
- package/rust/core/audio/interpreter/{condition.rs → statements/condition.rs} +72 -71
- package/rust/core/audio/interpreter/{function.rs → statements/function.rs} +24 -26
- package/rust/core/audio/interpreter/{let_.rs → statements/let_.rs} +36 -38
- package/rust/core/audio/interpreter/{load.rs → statements/load.rs} +17 -19
- package/rust/core/audio/interpreter/{loop_.rs → statements/loop_.rs} +115 -114
- package/rust/core/audio/interpreter/statements/mod.rs +12 -0
- package/rust/core/audio/interpreter/{sleep.rs → statements/sleep.rs} +28 -28
- package/rust/core/audio/interpreter/{spawn.rs → statements/spawn.rs} +54 -4
- package/rust/core/audio/interpreter/{tempo.rs → statements/tempo.rs} +40 -40
- package/rust/core/audio/interpreter/{trigger.rs → statements/trigger.rs} +242 -239
- package/rust/core/audio/loader/trigger.rs +98 -97
- package/rust/core/audio/mod.rs +6 -7
- package/rust/core/audio/special/easing.rs +189 -189
- package/rust/core/audio/special/env.rs +45 -45
- package/rust/core/audio/special/math.rs +134 -134
- package/rust/core/audio/special/modulator.rs +143 -143
- package/rust/core/builder/mod.rs +129 -86
- package/rust/core/debugger/{module.rs → logs.rs} +52 -55
- package/rust/core/debugger/mod.rs +30 -30
- package/rust/core/debugger/store.rs +38 -40
- package/rust/core/error/mod.rs +269 -269
- package/rust/core/lexer/driver.rs +2 -4
- package/rust/core/mod.rs +9 -10
- package/rust/core/parser/driver/block.rs +111 -0
- package/rust/core/parser/driver/cursor.rs +82 -0
- package/rust/core/parser/driver/driver_impl.rs +159 -0
- package/rust/core/parser/driver/mod.rs +6 -0
- package/rust/core/parser/driver/parse_array.rs +120 -0
- package/rust/core/parser/driver/parse_map.rs +247 -0
- package/rust/core/parser/driver/parser.rs +160 -0
- package/rust/core/parser/handler/arrow_call.rs +90 -15
- package/rust/core/parser/handler/at.rs +279 -279
- package/rust/core/parser/handler/bank.rs +104 -104
- package/rust/core/parser/handler/condition.rs +83 -83
- package/rust/core/parser/handler/dot.rs +148 -148
- package/rust/core/parser/handler/identifier/automate.rs +254 -254
- package/rust/core/parser/handler/identifier/call.rs +91 -91
- package/rust/core/parser/handler/identifier/emit.rs +70 -70
- package/rust/core/parser/handler/identifier/function.rs +113 -113
- package/rust/core/parser/handler/identifier/group.rs +89 -89
- package/rust/core/parser/handler/identifier/let_.rs +173 -173
- package/rust/core/parser/handler/identifier/mod.rs +55 -55
- package/rust/core/parser/handler/identifier/on.rs +107 -107
- package/rust/core/parser/handler/identifier/print.rs +49 -49
- package/rust/core/parser/handler/identifier/sleep.rs +96 -43
- package/rust/core/parser/handler/identifier/spawn.rs +91 -91
- package/rust/core/parser/handler/identifier/synth.rs +39 -3
- package/rust/core/parser/handler/loop_.rs +194 -194
- package/rust/core/parser/handler/pattern.rs +25 -2
- package/rust/core/parser/handler/tempo.rs +105 -57
- package/rust/core/parser/statement.rs +10 -11
- package/rust/core/plugin/loader.rs +137 -137
- package/rust/core/plugin/runner/mod.rs +11 -0
- package/rust/core/plugin/{runner.rs → runner/non_wasm.rs} +206 -72
- package/rust/core/plugin/runner/wasm32.rs +44 -0
- package/rust/core/preprocessor/loader/inject.rs +313 -0
- package/rust/core/preprocessor/loader/loader_helpers.rs +110 -0
- package/rust/core/preprocessor/loader/mod.rs +235 -0
- package/rust/core/preprocessor/module.rs +55 -60
- package/rust/core/preprocessor/{processor.rs → processor/handlers.rs} +107 -114
- package/rust/core/preprocessor/processor/mod.rs +1 -0
- package/rust/core/preprocessor/resolver/function.rs +69 -69
- package/rust/core/preprocessor/resolver/group.rs +122 -94
- package/rust/core/preprocessor/resolver/pattern.rs +14 -2
- package/rust/core/store/global.rs +57 -61
- package/rust/core/store/mod.rs +1 -5
- package/rust/lib.rs +323 -308
- package/rust/macros/Cargo.toml +14 -0
- package/rust/macros/src/lib.rs +52 -0
- package/rust/main.rs +336 -143
- package/rust/types/Cargo.toml +1 -1
- package/rust/types/src/addons.rs +57 -55
- package/rust/types/src/config.rs +82 -74
- package/rust/types/src/lib.rs +15 -12
- package/rust/types/src/plugin.rs +20 -0
- package/rust/types/src/store.rs +139 -0
- package/rust/types/src/telemetry.rs +85 -85
- package/rust/utils/Cargo.toml +5 -2
- package/rust/utils/src/file.rs +477 -94
- package/rust/utils/src/first_usage.rs +97 -97
- package/rust/utils/src/lib.rs +9 -9
- package/rust/utils/src/logger.rs +200 -200
- package/rust/utils/src/path.rs +158 -88
- package/rust/utils/src/signature.rs +41 -41
- package/rust/utils/src/spinner.rs +20 -20
- package/rust/utils/src/version.rs +58 -27
- package/rust/utils/src/watcher.rs +46 -46
- package/rust/web/api.rs +5 -5
- package/rust/web/auth.rs +5 -0
- package/rust/web/cdn.rs +34 -34
- package/rust/web/forge.rs +5 -0
- package/rust/web/mod.rs +2 -0
- package/tests/integration.rs +21 -21
- package/typescript/core/functions/index.ts +11 -0
- package/typescript/pkg/devalang_core.ts +20 -4
- package/typescript/scripts/version/copy-to-binary.ts +82 -0
- package/rust/cli/bank/api.rs +0 -122
- package/rust/cli/bank/commands.rs +0 -275
- package/rust/cli/bank/mod.rs +0 -29
- package/rust/cli/install/bank.rs +0 -53
- package/rust/cli/install/commands.rs +0 -35
- package/rust/cli/install/mod.rs +0 -4
- package/rust/cli/install/plugin.rs +0 -61
- package/rust/core/audio/engine/sample.rs +0 -366
- package/rust/core/audio/engine/synth.rs +0 -325
- package/rust/core/audio/interpreter/arrow_call.rs +0 -311
- package/rust/core/audio/renderer.rs +0 -54
- package/rust/core/parser/driver.rs +0 -584
- package/rust/core/preprocessor/loader.rs +0 -637
- package/rust/core/store/export.rs +0 -28
- package/rust/core/store/function.rs +0 -40
- package/rust/core/store/import.rs +0 -28
- package/rust/core/store/variable.rs +0 -51
- package/rust/core/utils/mod.rs +0 -1
- package/rust/core/utils/path.rs +0 -37
package/rust/cli/parser.rs
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
use clap::{Parser, Subcommand};
|
|
1
|
+
use clap::{Parser, Subcommand, ValueEnum};
|
|
2
|
+
|
|
3
|
+
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum, Debug)]
|
|
4
|
+
pub enum OutputFormat {
|
|
5
|
+
Wav,
|
|
6
|
+
Mid,
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum, Debug)]
|
|
10
|
+
pub enum AudioFormat {
|
|
11
|
+
Wav16,
|
|
12
|
+
Wav24,
|
|
13
|
+
Wav32,
|
|
14
|
+
}
|
|
2
15
|
|
|
3
16
|
#[derive(Parser)]
|
|
4
17
|
#[command(name = "devalang")]
|
|
@@ -21,18 +34,6 @@ pub enum TelemetryCommand {
|
|
|
21
34
|
Disable {},
|
|
22
35
|
}
|
|
23
36
|
|
|
24
|
-
#[derive(Subcommand)]
|
|
25
|
-
pub enum InstallCommand {
|
|
26
|
-
/// Installs a template.
|
|
27
|
-
Template { name: String },
|
|
28
|
-
/// Installs a bank.
|
|
29
|
-
Bank { name: String },
|
|
30
|
-
/// Installs a plugin.
|
|
31
|
-
Plugin { name: String },
|
|
32
|
-
/// Installs a preset.
|
|
33
|
-
Preset { name: String },
|
|
34
|
-
}
|
|
35
|
-
|
|
36
37
|
#[derive(Subcommand)]
|
|
37
38
|
pub enum TemplateCommand {
|
|
38
39
|
/// Lists all available templates for Devalang projects.
|
|
@@ -42,17 +43,22 @@ pub enum TemplateCommand {
|
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
#[derive(Subcommand)]
|
|
45
|
-
pub enum
|
|
46
|
-
///
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
pub enum AddonCommand {
|
|
47
|
+
/// Installs an addon.
|
|
48
|
+
Install {
|
|
49
|
+
name: String,
|
|
50
|
+
#[arg(long, default_value_t = false)]
|
|
51
|
+
no_clear_tmp: bool,
|
|
52
|
+
},
|
|
53
|
+
|
|
54
|
+
/// Updates an addon.
|
|
55
|
+
Update { name: String },
|
|
56
|
+
|
|
57
|
+
/// Lists installed addons.
|
|
58
|
+
List {},
|
|
59
|
+
|
|
60
|
+
/// Removes an addon.
|
|
53
61
|
Remove { name: String },
|
|
54
|
-
/// Updates a specific or all banks.
|
|
55
|
-
Update { name: Option<String> },
|
|
56
62
|
}
|
|
57
63
|
|
|
58
64
|
#[derive(Subcommand)]
|
|
@@ -124,6 +130,26 @@ pub enum Commands {
|
|
|
124
130
|
///
|
|
125
131
|
output: Option<String>,
|
|
126
132
|
|
|
133
|
+
#[arg(long, value_enum, value_delimiter = ',', default_value = "wav,mid")]
|
|
134
|
+
/// Which output formats to generate. Comma-separated list is accepted.
|
|
135
|
+
///
|
|
136
|
+
/// ### Default value
|
|
137
|
+
/// - `wav,mid`
|
|
138
|
+
///
|
|
139
|
+
output_format: Vec<OutputFormat>,
|
|
140
|
+
|
|
141
|
+
#[arg(long, default_value = "wav16")]
|
|
142
|
+
/// Audio format to use for file outputs (affects WAV export).
|
|
143
|
+
///
|
|
144
|
+
/// ### Default value
|
|
145
|
+
/// - `wav16`
|
|
146
|
+
///
|
|
147
|
+
audio_format: AudioFormat,
|
|
148
|
+
|
|
149
|
+
#[arg(long, default_value_t = 44100u32)]
|
|
150
|
+
/// Sample rate to use for audio export and playback (e.g. 44100, 48000)
|
|
151
|
+
sample_rate: u32,
|
|
152
|
+
|
|
127
153
|
#[arg(long, default_value_t = false)]
|
|
128
154
|
/// Whether to watch for changes and rebuild.
|
|
129
155
|
///
|
|
@@ -139,7 +165,6 @@ pub enum Commands {
|
|
|
139
165
|
/// - `false`
|
|
140
166
|
///
|
|
141
167
|
debug: bool,
|
|
142
|
-
|
|
143
168
|
#[arg(short, long, default_value_t = false)]
|
|
144
169
|
/// Whether to compress the output files.
|
|
145
170
|
///
|
|
@@ -213,6 +238,18 @@ pub enum Commands {
|
|
|
213
238
|
/// The directory where the output files will be generated.
|
|
214
239
|
output: Option<String>,
|
|
215
240
|
|
|
241
|
+
#[arg(long, default_value_t = 44100u32)]
|
|
242
|
+
/// Sample rate to use for playback (e.g. 44100, 48000)
|
|
243
|
+
sample_rate: u32,
|
|
244
|
+
|
|
245
|
+
#[arg(long, default_value = "wav16")]
|
|
246
|
+
/// Audio format to use for file outputs (affects WAV export).
|
|
247
|
+
///
|
|
248
|
+
/// ### Default value
|
|
249
|
+
/// - `wav16`
|
|
250
|
+
///
|
|
251
|
+
audio_format: AudioFormat,
|
|
252
|
+
|
|
216
253
|
#[arg(long, default_value_t = false)]
|
|
217
254
|
/// Whether to watch for changes and re-play.
|
|
218
255
|
///
|
|
@@ -238,47 +275,24 @@ pub enum Commands {
|
|
|
238
275
|
debug: bool,
|
|
239
276
|
},
|
|
240
277
|
|
|
241
|
-
/// Update the Devalang CLI to the latest version.
|
|
242
|
-
///
|
|
243
|
-
/// ### Arguments
|
|
244
|
-
/// - `only` - Selects what to update (separated by commas). Defaults to updating all components.
|
|
245
|
-
///
|
|
246
|
-
Update {
|
|
247
|
-
// #[arg(long, default_value_t = false)]
|
|
248
|
-
/// Whether to allow updates when the working directory is dirty.
|
|
249
|
-
// allow_dirty: bool,
|
|
250
|
-
|
|
251
|
-
#[arg(long, default_value = "")]
|
|
252
|
-
/// Selects what to update (separated by commas).
|
|
253
|
-
only: Option<String>,
|
|
254
|
-
},
|
|
255
|
-
|
|
256
|
-
/// Install templates, banks, or plugins.
|
|
257
|
-
///
|
|
258
|
-
/// ### Subcommands
|
|
259
|
-
/// - `template` - Installs a template.
|
|
260
|
-
/// - `bank` - Installs a bank.
|
|
261
|
-
/// - `plugin` - Installs a plugin.
|
|
262
|
-
/// - `preset` - Installs a preset.
|
|
263
|
-
///
|
|
264
|
-
Install {
|
|
265
|
-
#[command(subcommand)]
|
|
266
|
-
command: InstallCommand,
|
|
267
|
-
},
|
|
268
|
-
|
|
269
278
|
/// Discover available local addons for Devalang.
|
|
270
279
|
///
|
|
271
|
-
Discover {
|
|
280
|
+
Discover {
|
|
281
|
+
#[arg(long, default_value_t = false)]
|
|
282
|
+
/// Do not clear the temporary extraction folder after installation.
|
|
283
|
+
no_clear_tmp: bool,
|
|
284
|
+
},
|
|
272
285
|
|
|
273
|
-
/// Manage
|
|
286
|
+
/// Manage addons for Devalang projects.
|
|
274
287
|
///
|
|
275
288
|
/// ### Subcommands
|
|
276
|
-
/// - `
|
|
277
|
-
/// - `
|
|
289
|
+
/// - `install <publisher>.<name>` - Installs a new addon.
|
|
290
|
+
/// - `list` - Lists installed addons.
|
|
291
|
+
/// - `remove <publisher>.<name>` - Removes an existing addon.
|
|
278
292
|
///
|
|
279
|
-
|
|
293
|
+
Addon {
|
|
280
294
|
#[command(subcommand)]
|
|
281
|
-
command:
|
|
295
|
+
command: AddonCommand,
|
|
282
296
|
},
|
|
283
297
|
|
|
284
298
|
/// Telemetry settings for Devalang.
|
|
@@ -292,22 +306,14 @@ pub enum Commands {
|
|
|
292
306
|
command: TelemetryCommand,
|
|
293
307
|
},
|
|
294
308
|
|
|
295
|
-
/// Generate addon scaffolding for Devalang.
|
|
296
|
-
///
|
|
297
|
-
/// ### Subcommands
|
|
298
|
-
/// - `bank` - Generates a bank scaffold.
|
|
299
|
-
/// - `plugin` - Generates a plugin scaffold.
|
|
300
|
-
/// - `preset` - Generates a preset scaffold.
|
|
301
|
-
///
|
|
302
|
-
// Scaffold {
|
|
303
|
-
// #[command(subcommand)]
|
|
304
|
-
// command: ScaffoldCommand,
|
|
305
|
-
// },
|
|
306
|
-
|
|
307
309
|
/// Log in to your Devaloop account.
|
|
308
310
|
///
|
|
309
311
|
Login {},
|
|
310
312
|
|
|
313
|
+
/// Display information about the current Devalang user.
|
|
314
|
+
///
|
|
315
|
+
Me {},
|
|
316
|
+
|
|
311
317
|
/// Log out of your Devaloop account.
|
|
312
318
|
///
|
|
313
319
|
Logout {},
|