@devaloop/devalang 0.0.1-alpha.16 → 0.0.1-alpha.16-hotfix.1
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/Cargo.toml +1 -1
- package/README.md +25 -29
- package/docs/CHANGELOG.md +7 -0
- package/docs/ROADMAP.md +2 -1
- package/docs/TODO.md +15 -3
- package/out-tsc/index.js +1 -1
- package/package.json +6 -6
- package/tsconfig.json +11 -9
- package/typescript/index.ts +1 -1
- package/out-tsc/scripts/postbuild.js +0 -10
- package/typescript/scripts/postbuild.ts +0 -12
package/Cargo.toml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "devalang"
|
|
3
|
-
version = "0.0.1-alpha.16"
|
|
3
|
+
version = "0.0.1-alpha.16-hotfix.1"
|
|
4
4
|
authors = ["Devaloop <contact@devaloop.com>"]
|
|
5
5
|
description = "Write music like code. Devalang is a domain-specific language (DSL) for sound designers and music hackers. Compose, automate, and control sound — in plain text."
|
|
6
6
|
license = "MIT"
|
package/README.md
CHANGED
|
@@ -9,12 +9,15 @@
|
|
|
9
9
|

|
|
10
10
|

|
|
11
11
|

|
|
12
|
-
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+

|
|
15
|
+

|
|
13
16
|
|
|
14
17
|

|
|
15
18
|

|
|
16
19
|
|
|
17
|
-
|
|
20
|
+

|
|
18
21
|
|
|
19
22
|
# 🦊 Devalang (CORE) — Compose music with code
|
|
20
23
|
|
|
@@ -29,8 +32,7 @@ From studio sketches to live sets, Devalang gives you rhythmic control — with
|
|
|
29
32
|
>
|
|
30
33
|
> Includes synthesis, playback, and rendering features, but is still in early development.
|
|
31
34
|
>
|
|
32
|
-
>
|
|
33
|
-
> Linux and macOS binaries will be added in future releases via cross-platform builds.
|
|
35
|
+
> NEW: Devalang is available for **Windows**, **Linux**, and **macOS**.
|
|
34
36
|
|
|
35
37
|
## 📚 Quick Access
|
|
36
38
|
|
|
@@ -53,7 +55,7 @@ From studio sketches to live sets, Devalang gives you rhythmic control — with
|
|
|
53
55
|
|
|
54
56
|
```bash
|
|
55
57
|
# Install Devalang CLI globally
|
|
56
|
-
npm install -g @devaloop/devalang
|
|
58
|
+
npm install -g @devaloop/devalang@latest
|
|
57
59
|
|
|
58
60
|
# Create a new Devalang project
|
|
59
61
|
devalang init --name my-project --template minimal
|
|
@@ -65,45 +67,40 @@ Create a new Devalang file `src/index.deva` in the project directory:
|
|
|
65
67
|
```deva
|
|
66
68
|
# src/index.deva
|
|
67
69
|
|
|
68
|
-
group
|
|
69
|
-
let
|
|
70
|
+
group myGroup:
|
|
71
|
+
let myLead = synth sine {
|
|
70
72
|
attack: 0,
|
|
71
73
|
decay: 100,
|
|
72
74
|
sustain: 100,
|
|
73
75
|
release: 100
|
|
74
76
|
}
|
|
75
77
|
|
|
76
|
-
|
|
77
|
-
automate lead:
|
|
78
|
-
param volume {
|
|
79
|
-
0% = 0.0
|
|
80
|
-
100% = 1.0
|
|
81
|
-
}
|
|
82
|
-
param pan {
|
|
83
|
-
0% = -1.0
|
|
84
|
-
100% = 1.0
|
|
85
|
-
}
|
|
78
|
+
automate myLead:
|
|
86
79
|
param pitch {
|
|
87
80
|
0% = -12.0
|
|
88
81
|
100% = 12.0
|
|
89
82
|
}
|
|
90
83
|
|
|
91
|
-
|
|
84
|
+
myLead -> note(C4, {
|
|
92
85
|
duration: 400,
|
|
93
86
|
velocity: 0.8,
|
|
94
|
-
automate: {
|
|
87
|
+
automate: {
|
|
88
|
+
pan: {
|
|
89
|
+
0%: -1.0,
|
|
90
|
+
100%: 0.0
|
|
91
|
+
}
|
|
92
|
+
}
|
|
95
93
|
})
|
|
96
94
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
myLead -> note(E4, { duration: 400 })
|
|
96
|
+
myLead -> note(G4, { duration: 600, glide: true, target_freq: 659.25 })
|
|
97
|
+
myLead -> note(B3, { duration: 400, slide: true, target_amp: 0.3 })
|
|
100
98
|
|
|
101
99
|
for i in [1, 2, 3]:
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
# Play the lead
|
|
100
|
+
myLead -> note(C5, { duration: 200 })
|
|
101
|
+
print "Playing note C5 for " + i
|
|
105
102
|
|
|
106
|
-
call
|
|
103
|
+
call myGroup
|
|
107
104
|
```
|
|
108
105
|
|
|
109
106
|
### And the best part ? You can play it directly from the command line:
|
|
@@ -156,9 +153,8 @@ devalang play --repeat
|
|
|
156
153
|
|
|
157
154
|
For more info, see [docs/ROADMAP.md](./docs/ROADMAP.md)
|
|
158
155
|
|
|
159
|
-
- ⏳ Other statements (e.g `
|
|
160
|
-
- ⏳
|
|
161
|
-
- ⏳ More built-in instruments (e.g. snare, hi-hat, etc.)
|
|
156
|
+
- ⏳ Other statements (e.g `pattern`, ...)
|
|
157
|
+
- ⏳ Addon generator
|
|
162
158
|
|
|
163
159
|
## 🛡️ License
|
|
164
160
|
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
# Changelog
|
|
6
6
|
|
|
7
|
+
## Version 0.0.1-alpha.16-hotfix.1 (2025-08-29)
|
|
8
|
+
|
|
9
|
+
### 🌎 Ecosystem
|
|
10
|
+
|
|
11
|
+
- Fixed Github Actions to build and release binaries for multiple platforms.
|
|
12
|
+
- Fixed `postinstall` script to launch properly postinstall.js when installing core package
|
|
13
|
+
|
|
7
14
|
## Version 0.0.1-alpha.16 (2025-08-28)
|
|
8
15
|
|
|
9
16
|
### 🌎 Ecosystem
|
package/docs/ROADMAP.md
CHANGED
|
@@ -25,6 +25,7 @@ Devalang is a work in progress. Here’s what we’re planning next:
|
|
|
25
25
|
|
|
26
26
|
## Upcoming
|
|
27
27
|
|
|
28
|
+
- ⏳ **Addon generator**: Implement addon generation for creating reusable plugins, banks and presets.
|
|
28
29
|
- ⏳ **Smart modules**: Let Devalang detect and use groups, samples, and variables without needing to import them manually.
|
|
29
|
-
- ⏳ **Other statements**: Implement `pattern`,
|
|
30
|
+
- ⏳ **Other statements**: Implement `pattern`, and other control structures.
|
|
30
31
|
- ⏳ **Testing**: Expand test coverage for all features.
|
package/docs/TODO.md
CHANGED
|
@@ -11,18 +11,15 @@ This is a list of tasks and features to be implemented in Devalang. Note that th
|
|
|
11
11
|
- [x] Init project
|
|
12
12
|
- [x] Implement init command
|
|
13
13
|
- [x] Implement template selector
|
|
14
|
-
- [ ] Implement project name validation
|
|
15
14
|
- [x] Template
|
|
16
15
|
- [x] Implement template list
|
|
17
16
|
- [x] Implement template info
|
|
18
17
|
- [x] Checking
|
|
19
18
|
- [x] Implement watch mode
|
|
20
19
|
- [x] Implement debug mode
|
|
21
|
-
- [ ] Implement compilation mode
|
|
22
20
|
- [x] Building
|
|
23
21
|
- [x] Implement watch mode
|
|
24
22
|
- [x] Implement debug mode
|
|
25
|
-
- [ ] Implement compilation mode
|
|
26
23
|
- [x] Implement compression mode
|
|
27
24
|
- [x] Play
|
|
28
25
|
- [x] Implement Audio Engine
|
|
@@ -64,6 +61,21 @@ This is a list of tasks and features to be implemented in Devalang. Note that th
|
|
|
64
61
|
- [x] Built-in triggers
|
|
65
62
|
- [x] Custom triggers
|
|
66
63
|
|
|
64
|
+
## Banks
|
|
65
|
+
|
|
66
|
+
- [x] Implement bank management (e.g. install, remove, list)
|
|
67
|
+
- [x] Create example banks
|
|
68
|
+
|
|
69
|
+
## Plugins
|
|
70
|
+
|
|
71
|
+
- [x] Implement plugin system (e.g. install, remove, list)
|
|
72
|
+
- [ ] Create example plugins
|
|
73
|
+
|
|
74
|
+
## Addon generator
|
|
75
|
+
|
|
76
|
+
- [ ] Implement addon generator
|
|
77
|
+
- [ ] Create example addons
|
|
78
|
+
|
|
67
79
|
## Other TODOs
|
|
68
80
|
|
|
69
81
|
- [ ] Comment all core components
|
package/out-tsc/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devaloop/devalang",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0.1-alpha.16",
|
|
4
|
+
"version": "0.0.1-alpha.16-hotfix.1",
|
|
5
5
|
"description": "Write music like code. Devalang is a domain-specific language (DSL) for sound designers and music hackers. Compose, automate, and control sound — in plain text.",
|
|
6
6
|
"main": "out-tsc/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
"rust:dev:play": "cargo run play --entry examples --output output --repeat --debug",
|
|
15
15
|
"rust:wasm:web": "wasm-pack build --target=web --no-default-features",
|
|
16
16
|
"rust:wasm:node": "wasm-pack build --target=nodejs --no-default-features",
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"postinstall": "
|
|
17
|
+
"rust:prepack": "cargo build --release",
|
|
18
|
+
"scripts:build": "tsc",
|
|
19
|
+
"scripts:postbuild": "tsc && node out-tsc/scripts/postbuild.js",
|
|
20
|
+
"scripts:version:bump": "tsc && node out-tsc/scripts/version/index.js",
|
|
21
|
+
"postinstall": "node out-tsc/scripts/postinstall.js"
|
|
22
22
|
},
|
|
23
23
|
"homepage": "https://devalang.com",
|
|
24
24
|
"keywords": [
|
package/tsconfig.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
|
|
12
12
|
|
|
13
13
|
/* Language and Environment */
|
|
14
|
-
"target": "es2016"
|
|
14
|
+
"target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
|
|
15
15
|
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
|
|
16
16
|
// "jsx": "preserve", /* Specify what JSX code is generated. */
|
|
17
17
|
// "libReplacement": true, /* Enable lib replacement. */
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
|
|
27
27
|
|
|
28
28
|
/* Modules */
|
|
29
|
-
"module": "commonjs"
|
|
30
|
-
"rootDir": "./typescript"
|
|
29
|
+
"module": "commonjs" /* Specify what module code is generated. */,
|
|
30
|
+
"rootDir": "./typescript" /* Specify the root folder within your source files. */,
|
|
31
31
|
// "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
|
|
32
32
|
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
|
|
33
33
|
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
|
|
60
60
|
// "noEmit": true, /* Disable emitting files from a compilation. */
|
|
61
61
|
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
|
|
62
|
-
"outDir": "./out-tsc"
|
|
62
|
+
"outDir": "./out-tsc" /* Specify an output folder for all emitted files. */,
|
|
63
63
|
// "removeComments": true, /* Disable emitting comments. */
|
|
64
64
|
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
|
|
65
65
|
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
|
|
@@ -80,12 +80,12 @@
|
|
|
80
80
|
// "isolatedDeclarations": true, /* Require sufficient annotation on exports so other tools can trivially generate declaration files. */
|
|
81
81
|
// "erasableSyntaxOnly": true, /* Do not allow runtime constructs that are not part of ECMAScript. */
|
|
82
82
|
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
|
|
83
|
-
"esModuleInterop": true
|
|
83
|
+
"esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,
|
|
84
84
|
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
|
|
85
|
-
"forceConsistentCasingInFileNames": true
|
|
85
|
+
"forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
|
|
86
86
|
|
|
87
87
|
/* Type Checking */
|
|
88
|
-
"strict": true
|
|
88
|
+
"strict": true /* Enable all strict type-checking options. */,
|
|
89
89
|
// "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
|
|
90
90
|
// "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
|
|
91
91
|
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
|
|
@@ -108,6 +108,8 @@
|
|
|
108
108
|
|
|
109
109
|
/* Completeness */
|
|
110
110
|
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
|
|
111
|
-
"skipLibCheck": true
|
|
112
|
-
}
|
|
111
|
+
"skipLibCheck": true /* Skip type checking all .d.ts files. */
|
|
112
|
+
},
|
|
113
|
+
"include": ["typescript/**/*.ts"],
|
|
114
|
+
"exclude": ["node_modules", "out-tsc", "target", "dist", "**/*.spec.ts"]
|
|
113
115
|
}
|
package/typescript/index.ts
CHANGED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* NOTE: This script is deprecated since we use Github Actions
|
|
4
|
-
*/
|
|
5
|
-
// import fs from "fs";
|
|
6
|
-
// import path from "path";
|
|
7
|
-
// const source = path.join(__dirname, "..", "..", "target", "release", "devalang.exe");
|
|
8
|
-
// const destination = path.join(__dirname, "..", "bin", "devalang.exe");
|
|
9
|
-
// fs.copyFileSync(source, destination);
|
|
10
|
-
// fs.chmodSync(destination, 0o755);
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NOTE: This script is deprecated since we use Github Actions
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
// import fs from "fs";
|
|
6
|
-
// import path from "path";
|
|
7
|
-
|
|
8
|
-
// const source = path.join(__dirname, "..", "..", "target", "release", "devalang.exe");
|
|
9
|
-
// const destination = path.join(__dirname, "..", "bin", "devalang.exe");
|
|
10
|
-
|
|
11
|
-
// fs.copyFileSync(source, destination);
|
|
12
|
-
// fs.chmodSync(destination, 0o755);
|