takomusic 1.2.0

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.
Files changed (335) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +230 -0
  3. package/dist/__tests__/checker.test.d.ts +2 -0
  4. package/dist/__tests__/checker.test.d.ts.map +1 -0
  5. package/dist/__tests__/checker.test.js +316 -0
  6. package/dist/__tests__/checker.test.js.map +1 -0
  7. package/dist/__tests__/compiler.test.d.ts +2 -0
  8. package/dist/__tests__/compiler.test.d.ts.map +1 -0
  9. package/dist/__tests__/compiler.test.js +260 -0
  10. package/dist/__tests__/compiler.test.js.map +1 -0
  11. package/dist/__tests__/generators.test.d.ts +2 -0
  12. package/dist/__tests__/generators.test.d.ts.map +1 -0
  13. package/dist/__tests__/generators.test.js +283 -0
  14. package/dist/__tests__/generators.test.js.map +1 -0
  15. package/dist/__tests__/interpreter.test.d.ts +2 -0
  16. package/dist/__tests__/interpreter.test.d.ts.map +1 -0
  17. package/dist/__tests__/interpreter.test.js +298 -0
  18. package/dist/__tests__/interpreter.test.js.map +1 -0
  19. package/dist/__tests__/lexer.test.d.ts +2 -0
  20. package/dist/__tests__/lexer.test.d.ts.map +1 -0
  21. package/dist/__tests__/lexer.test.js +89 -0
  22. package/dist/__tests__/lexer.test.js.map +1 -0
  23. package/dist/__tests__/parser.test.d.ts +2 -0
  24. package/dist/__tests__/parser.test.d.ts.map +1 -0
  25. package/dist/__tests__/parser.test.js +116 -0
  26. package/dist/__tests__/parser.test.js.map +1 -0
  27. package/dist/checker/checker.d.ts +37 -0
  28. package/dist/checker/checker.d.ts.map +1 -0
  29. package/dist/checker/checker.js +428 -0
  30. package/dist/checker/checker.js.map +1 -0
  31. package/dist/checker/index.d.ts +3 -0
  32. package/dist/checker/index.d.ts.map +1 -0
  33. package/dist/checker/index.js +2 -0
  34. package/dist/checker/index.js.map +1 -0
  35. package/dist/cli/commands/build.d.ts +2 -0
  36. package/dist/cli/commands/build.d.ts.map +1 -0
  37. package/dist/cli/commands/build.js +173 -0
  38. package/dist/cli/commands/build.js.map +1 -0
  39. package/dist/cli/commands/check.d.ts +2 -0
  40. package/dist/cli/commands/check.d.ts.map +1 -0
  41. package/dist/cli/commands/check.js +79 -0
  42. package/dist/cli/commands/check.js.map +1 -0
  43. package/dist/cli/commands/doctor.d.ts +2 -0
  44. package/dist/cli/commands/doctor.d.ts.map +1 -0
  45. package/dist/cli/commands/doctor.js +187 -0
  46. package/dist/cli/commands/doctor.js.map +1 -0
  47. package/dist/cli/commands/fmt.d.ts +2 -0
  48. package/dist/cli/commands/fmt.d.ts.map +1 -0
  49. package/dist/cli/commands/fmt.js +73 -0
  50. package/dist/cli/commands/fmt.js.map +1 -0
  51. package/dist/cli/commands/import.d.ts +2 -0
  52. package/dist/cli/commands/import.d.ts.map +1 -0
  53. package/dist/cli/commands/import.js +99 -0
  54. package/dist/cli/commands/import.js.map +1 -0
  55. package/dist/cli/commands/init.d.ts +2 -0
  56. package/dist/cli/commands/init.d.ts.map +1 -0
  57. package/dist/cli/commands/init.js +514 -0
  58. package/dist/cli/commands/init.js.map +1 -0
  59. package/dist/cli/commands/play.d.ts +2 -0
  60. package/dist/cli/commands/play.d.ts.map +1 -0
  61. package/dist/cli/commands/play.js +216 -0
  62. package/dist/cli/commands/play.js.map +1 -0
  63. package/dist/cli/commands/record.d.ts +2 -0
  64. package/dist/cli/commands/record.d.ts.map +1 -0
  65. package/dist/cli/commands/record.js +393 -0
  66. package/dist/cli/commands/record.js.map +1 -0
  67. package/dist/cli/commands/render.d.ts +2 -0
  68. package/dist/cli/commands/render.d.ts.map +1 -0
  69. package/dist/cli/commands/render.js +278 -0
  70. package/dist/cli/commands/render.js.map +1 -0
  71. package/dist/cli/index.d.ts +3 -0
  72. package/dist/cli/index.d.ts.map +1 -0
  73. package/dist/cli/index.js +93 -0
  74. package/dist/cli/index.js.map +1 -0
  75. package/dist/compiler/compiler.d.ts +12 -0
  76. package/dist/compiler/compiler.d.ts.map +1 -0
  77. package/dist/compiler/compiler.js +146 -0
  78. package/dist/compiler/compiler.js.map +1 -0
  79. package/dist/compiler/index.d.ts +2 -0
  80. package/dist/compiler/index.d.ts.map +1 -0
  81. package/dist/compiler/index.js +2 -0
  82. package/dist/compiler/index.js.map +1 -0
  83. package/dist/config/config.d.ts +43 -0
  84. package/dist/config/config.d.ts.map +1 -0
  85. package/dist/config/config.js +200 -0
  86. package/dist/config/config.js.map +1 -0
  87. package/dist/config/index.d.ts +2 -0
  88. package/dist/config/index.d.ts.map +1 -0
  89. package/dist/config/index.js +2 -0
  90. package/dist/config/index.js.map +1 -0
  91. package/dist/errors.d.ts +49 -0
  92. package/dist/errors.d.ts.map +1 -0
  93. package/dist/errors.js +168 -0
  94. package/dist/errors.js.map +1 -0
  95. package/dist/formatter/formatter.d.ts +13 -0
  96. package/dist/formatter/formatter.d.ts.map +1 -0
  97. package/dist/formatter/formatter.js +242 -0
  98. package/dist/formatter/formatter.js.map +1 -0
  99. package/dist/formatter/index.d.ts +2 -0
  100. package/dist/formatter/index.d.ts.map +1 -0
  101. package/dist/formatter/index.js +2 -0
  102. package/dist/formatter/index.js.map +1 -0
  103. package/dist/generators/index.d.ts +5 -0
  104. package/dist/generators/index.d.ts.map +1 -0
  105. package/dist/generators/index.js +5 -0
  106. package/dist/generators/index.js.map +1 -0
  107. package/dist/generators/midi.d.ts +3 -0
  108. package/dist/generators/midi.d.ts.map +1 -0
  109. package/dist/generators/midi.js +360 -0
  110. package/dist/generators/midi.js.map +1 -0
  111. package/dist/generators/musicxml.d.ts +3 -0
  112. package/dist/generators/musicxml.d.ts.map +1 -0
  113. package/dist/generators/musicxml.js +332 -0
  114. package/dist/generators/musicxml.js.map +1 -0
  115. package/dist/generators/tempo-midi.d.ts +3 -0
  116. package/dist/generators/tempo-midi.d.ts.map +1 -0
  117. package/dist/generators/tempo-midi.js +123 -0
  118. package/dist/generators/tempo-midi.js.map +1 -0
  119. package/dist/generators/vsqx.d.ts +3 -0
  120. package/dist/generators/vsqx.d.ts.map +1 -0
  121. package/dist/generators/vsqx.js +354 -0
  122. package/dist/generators/vsqx.js.map +1 -0
  123. package/dist/importers/index.d.ts +2 -0
  124. package/dist/importers/index.d.ts.map +1 -0
  125. package/dist/importers/index.js +3 -0
  126. package/dist/importers/index.js.map +1 -0
  127. package/dist/importers/musicxml.d.ts +4 -0
  128. package/dist/importers/musicxml.d.ts.map +1 -0
  129. package/dist/importers/musicxml.js +392 -0
  130. package/dist/importers/musicxml.js.map +1 -0
  131. package/dist/index.d.ts +11 -0
  132. package/dist/index.d.ts.map +1 -0
  133. package/dist/index.js +12 -0
  134. package/dist/index.js.map +1 -0
  135. package/dist/interpreter/builtins/algorithmic.d.ts +12 -0
  136. package/dist/interpreter/builtins/algorithmic.d.ts.map +1 -0
  137. package/dist/interpreter/builtins/algorithmic.js +244 -0
  138. package/dist/interpreter/builtins/algorithmic.js.map +1 -0
  139. package/dist/interpreter/builtins/audio.d.ts +10 -0
  140. package/dist/interpreter/builtins/audio.d.ts.map +1 -0
  141. package/dist/interpreter/builtins/audio.js +169 -0
  142. package/dist/interpreter/builtins/audio.js.map +1 -0
  143. package/dist/interpreter/builtins/core.d.ts +15 -0
  144. package/dist/interpreter/builtins/core.d.ts.map +1 -0
  145. package/dist/interpreter/builtins/core.js +265 -0
  146. package/dist/interpreter/builtins/core.js.map +1 -0
  147. package/dist/interpreter/builtins/dynamics.d.ts +8 -0
  148. package/dist/interpreter/builtins/dynamics.d.ts.map +1 -0
  149. package/dist/interpreter/builtins/dynamics.js +86 -0
  150. package/dist/interpreter/builtins/dynamics.js.map +1 -0
  151. package/dist/interpreter/builtins/effects.d.ts +16 -0
  152. package/dist/interpreter/builtins/effects.d.ts.map +1 -0
  153. package/dist/interpreter/builtins/effects.js +220 -0
  154. package/dist/interpreter/builtins/effects.js.map +1 -0
  155. package/dist/interpreter/builtins/index.d.ts +16 -0
  156. package/dist/interpreter/builtins/index.d.ts.map +1 -0
  157. package/dist/interpreter/builtins/index.js +17 -0
  158. package/dist/interpreter/builtins/index.js.map +1 -0
  159. package/dist/interpreter/builtins/layout.d.ts +12 -0
  160. package/dist/interpreter/builtins/layout.d.ts.map +1 -0
  161. package/dist/interpreter/builtins/layout.js +175 -0
  162. package/dist/interpreter/builtins/layout.js.map +1 -0
  163. package/dist/interpreter/builtins/live.d.ts +11 -0
  164. package/dist/interpreter/builtins/live.d.ts.map +1 -0
  165. package/dist/interpreter/builtins/live.js +125 -0
  166. package/dist/interpreter/builtins/live.js.map +1 -0
  167. package/dist/interpreter/builtins/midi.d.ts +16 -0
  168. package/dist/interpreter/builtins/midi.d.ts.map +1 -0
  169. package/dist/interpreter/builtins/midi.js +320 -0
  170. package/dist/interpreter/builtins/midi.js.map +1 -0
  171. package/dist/interpreter/builtins/mixing.d.ts +6 -0
  172. package/dist/interpreter/builtins/mixing.d.ts.map +1 -0
  173. package/dist/interpreter/builtins/mixing.js +62 -0
  174. package/dist/interpreter/builtins/mixing.js.map +1 -0
  175. package/dist/interpreter/builtins/notation.d.ts +24 -0
  176. package/dist/interpreter/builtins/notation.d.ts.map +1 -0
  177. package/dist/interpreter/builtins/notation.js +251 -0
  178. package/dist/interpreter/builtins/notation.js.map +1 -0
  179. package/dist/interpreter/builtins/ornaments.d.ts +8 -0
  180. package/dist/interpreter/builtins/ornaments.d.ts.map +1 -0
  181. package/dist/interpreter/builtins/ornaments.js +155 -0
  182. package/dist/interpreter/builtins/ornaments.js.map +1 -0
  183. package/dist/interpreter/builtins/techniques.d.ts +11 -0
  184. package/dist/interpreter/builtins/techniques.d.ts.map +1 -0
  185. package/dist/interpreter/builtins/techniques.js +234 -0
  186. package/dist/interpreter/builtins/techniques.js.map +1 -0
  187. package/dist/interpreter/builtins/tuning.d.ts +7 -0
  188. package/dist/interpreter/builtins/tuning.d.ts.map +1 -0
  189. package/dist/interpreter/builtins/tuning.js +52 -0
  190. package/dist/interpreter/builtins/tuning.js.map +1 -0
  191. package/dist/interpreter/builtins/types.d.ts +27 -0
  192. package/dist/interpreter/builtins/types.d.ts.map +1 -0
  193. package/dist/interpreter/builtins/types.js +3 -0
  194. package/dist/interpreter/builtins/types.js.map +1 -0
  195. package/dist/interpreter/builtins/vocaloid.d.ts +10 -0
  196. package/dist/interpreter/builtins/vocaloid.d.ts.map +1 -0
  197. package/dist/interpreter/builtins/vocaloid.js +165 -0
  198. package/dist/interpreter/builtins/vocaloid.js.map +1 -0
  199. package/dist/interpreter/index.d.ts +4 -0
  200. package/dist/interpreter/index.d.ts.map +1 -0
  201. package/dist/interpreter/index.js +4 -0
  202. package/dist/interpreter/index.js.map +1 -0
  203. package/dist/interpreter/interpreter.d.ts +305 -0
  204. package/dist/interpreter/interpreter.d.ts.map +1 -0
  205. package/dist/interpreter/interpreter.js +8463 -0
  206. package/dist/interpreter/interpreter.js.map +1 -0
  207. package/dist/interpreter/runtime.d.ts +67 -0
  208. package/dist/interpreter/runtime.d.ts.map +1 -0
  209. package/dist/interpreter/runtime.js +88 -0
  210. package/dist/interpreter/runtime.js.map +1 -0
  211. package/dist/interpreter/scope.d.ts +21 -0
  212. package/dist/interpreter/scope.d.ts.map +1 -0
  213. package/dist/interpreter/scope.js +60 -0
  214. package/dist/interpreter/scope.js.map +1 -0
  215. package/dist/interpreter/trackState.d.ts +205 -0
  216. package/dist/interpreter/trackState.d.ts.map +1 -0
  217. package/dist/interpreter/trackState.js +12 -0
  218. package/dist/interpreter/trackState.js.map +1 -0
  219. package/dist/lexer/index.d.ts +2 -0
  220. package/dist/lexer/index.d.ts.map +1 -0
  221. package/dist/lexer/index.js +2 -0
  222. package/dist/lexer/index.js.map +1 -0
  223. package/dist/lexer/lexer.d.ts +30 -0
  224. package/dist/lexer/lexer.d.ts.map +1 -0
  225. package/dist/lexer/lexer.js +385 -0
  226. package/dist/lexer/lexer.js.map +1 -0
  227. package/dist/parser/index.d.ts +2 -0
  228. package/dist/parser/index.d.ts.map +1 -0
  229. package/dist/parser/index.js +2 -0
  230. package/dist/parser/index.js.map +1 -0
  231. package/dist/parser/parser.d.ts +55 -0
  232. package/dist/parser/parser.d.ts.map +1 -0
  233. package/dist/parser/parser.js +896 -0
  234. package/dist/parser/parser.js.map +1 -0
  235. package/dist/types/ast.d.ts +220 -0
  236. package/dist/types/ast.d.ts.map +1 -0
  237. package/dist/types/ast.js +3 -0
  238. package/dist/types/ast.js.map +1 -0
  239. package/dist/types/index.d.ts +4 -0
  240. package/dist/types/index.d.ts.map +1 -0
  241. package/dist/types/index.js +4 -0
  242. package/dist/types/index.js.map +1 -0
  243. package/dist/types/ir/advanced.d.ts +491 -0
  244. package/dist/types/ir/advanced.d.ts.map +1 -0
  245. package/dist/types/ir/advanced.js +3 -0
  246. package/dist/types/ir/advanced.js.map +1 -0
  247. package/dist/types/ir/algorithmic.d.ts +48 -0
  248. package/dist/types/ir/algorithmic.d.ts.map +1 -0
  249. package/dist/types/ir/algorithmic.js +3 -0
  250. package/dist/types/ir/algorithmic.js.map +1 -0
  251. package/dist/types/ir/analysis.d.ts +34 -0
  252. package/dist/types/ir/analysis.d.ts.map +1 -0
  253. package/dist/types/ir/analysis.js +3 -0
  254. package/dist/types/ir/analysis.js.map +1 -0
  255. package/dist/types/ir/audio.d.ts +249 -0
  256. package/dist/types/ir/audio.d.ts.map +1 -0
  257. package/dist/types/ir/audio.js +3 -0
  258. package/dist/types/ir/audio.js.map +1 -0
  259. package/dist/types/ir/automation.d.ts +46 -0
  260. package/dist/types/ir/automation.d.ts.map +1 -0
  261. package/dist/types/ir/automation.js +3 -0
  262. package/dist/types/ir/automation.js.map +1 -0
  263. package/dist/types/ir/collaboration.d.ts +20 -0
  264. package/dist/types/ir/collaboration.d.ts.map +1 -0
  265. package/dist/types/ir/collaboration.js +3 -0
  266. package/dist/types/ir/collaboration.js.map +1 -0
  267. package/dist/types/ir/core.d.ts +153 -0
  268. package/dist/types/ir/core.d.ts.map +1 -0
  269. package/dist/types/ir/core.js +3 -0
  270. package/dist/types/ir/core.js.map +1 -0
  271. package/dist/types/ir/effects.d.ts +169 -0
  272. package/dist/types/ir/effects.d.ts.map +1 -0
  273. package/dist/types/ir/effects.js +3 -0
  274. package/dist/types/ir/effects.js.map +1 -0
  275. package/dist/types/ir/extended.d.ts +104 -0
  276. package/dist/types/ir/extended.d.ts.map +1 -0
  277. package/dist/types/ir/extended.js +3 -0
  278. package/dist/types/ir/extended.js.map +1 -0
  279. package/dist/types/ir/index.d.ts +16 -0
  280. package/dist/types/ir/index.d.ts.map +1 -0
  281. package/dist/types/ir/index.js +17 -0
  282. package/dist/types/ir/index.js.map +1 -0
  283. package/dist/types/ir/mastering.d.ts +86 -0
  284. package/dist/types/ir/mastering.d.ts.map +1 -0
  285. package/dist/types/ir/mastering.js +3 -0
  286. package/dist/types/ir/mastering.js.map +1 -0
  287. package/dist/types/ir/midi.d.ts +79 -0
  288. package/dist/types/ir/midi.d.ts.map +1 -0
  289. package/dist/types/ir/midi.js +3 -0
  290. package/dist/types/ir/midi.js.map +1 -0
  291. package/dist/types/ir/notation.d.ts +963 -0
  292. package/dist/types/ir/notation.d.ts.map +1 -0
  293. package/dist/types/ir/notation.js +3 -0
  294. package/dist/types/ir/notation.js.map +1 -0
  295. package/dist/types/ir/recording.d.ts +48 -0
  296. package/dist/types/ir/recording.d.ts.map +1 -0
  297. package/dist/types/ir/recording.js +3 -0
  298. package/dist/types/ir/recording.js.map +1 -0
  299. package/dist/types/ir/sampling.d.ts +59 -0
  300. package/dist/types/ir/sampling.d.ts.map +1 -0
  301. package/dist/types/ir/sampling.js +3 -0
  302. package/dist/types/ir/sampling.js.map +1 -0
  303. package/dist/types/ir/sequencing.d.ts +118 -0
  304. package/dist/types/ir/sequencing.d.ts.map +1 -0
  305. package/dist/types/ir/sequencing.js +3 -0
  306. package/dist/types/ir/sequencing.js.map +1 -0
  307. package/dist/types/ir/sync.d.ts +39 -0
  308. package/dist/types/ir/sync.d.ts.map +1 -0
  309. package/dist/types/ir/sync.js +3 -0
  310. package/dist/types/ir/sync.js.map +1 -0
  311. package/dist/types/ir.d.ts +2 -0
  312. package/dist/types/ir.d.ts.map +1 -0
  313. package/dist/types/ir.js +3 -0
  314. package/dist/types/ir.js.map +1 -0
  315. package/dist/types/token.d.ts +72 -0
  316. package/dist/types/token.d.ts.map +1 -0
  317. package/dist/types/token.js +90 -0
  318. package/dist/types/token.js.map +1 -0
  319. package/dist/utils/stdlib.d.ts +18 -0
  320. package/dist/utils/stdlib.d.ts.map +1 -0
  321. package/dist/utils/stdlib.js +51 -0
  322. package/dist/utils/stdlib.js.map +1 -0
  323. package/lib/articulation.mf +46 -0
  324. package/lib/composition.mf +299 -0
  325. package/lib/curves.mf +183 -0
  326. package/lib/dynamics.mf +141 -0
  327. package/lib/expression.mf +221 -0
  328. package/lib/genres.mf +348 -0
  329. package/lib/notation.mf +224 -0
  330. package/lib/ornaments.mf +98 -0
  331. package/lib/patterns.mf +170 -0
  332. package/lib/rhythm.mf +269 -0
  333. package/lib/theory.mf +257 -0
  334. package/lib/utils.mf +140 -0
  335. package/package.json +49 -0
@@ -0,0 +1,67 @@
1
+ import type { Parameter, Expression, Statement } from '../types/ast.js';
2
+ import type { Scope } from './scope.js';
3
+ export type RuntimeValue = IntValue | FloatValue | StringValue | BoolValue | PitchValue | DurValue | TimeValue | ArrayValue | ObjectValue | FunctionValue | NullValue;
4
+ export interface IntValue {
5
+ type: 'int';
6
+ value: number;
7
+ }
8
+ export interface FloatValue {
9
+ type: 'float';
10
+ value: number;
11
+ }
12
+ export interface StringValue {
13
+ type: 'string';
14
+ value: string;
15
+ }
16
+ export interface BoolValue {
17
+ type: 'bool';
18
+ value: boolean;
19
+ }
20
+ export interface PitchValue {
21
+ type: 'pitch';
22
+ midi: number;
23
+ }
24
+ export interface DurValue {
25
+ type: 'dur';
26
+ numerator: number;
27
+ denominator: number;
28
+ }
29
+ export interface TimeValue {
30
+ type: 'time';
31
+ bar: number;
32
+ beat: number;
33
+ sub: number;
34
+ }
35
+ export interface ArrayValue {
36
+ type: 'array';
37
+ elements: RuntimeValue[];
38
+ }
39
+ export interface ObjectValue {
40
+ type: 'object';
41
+ properties: Map<string, RuntimeValue>;
42
+ }
43
+ export interface FunctionValue {
44
+ type: 'function';
45
+ params: Parameter[];
46
+ body: Expression | Statement[];
47
+ closure: Scope;
48
+ }
49
+ export interface NullValue {
50
+ type: 'null';
51
+ }
52
+ export declare function makeInt(value: number): IntValue;
53
+ export declare function makeFloat(value: number): FloatValue;
54
+ export declare function makeString(value: string): StringValue;
55
+ export declare function makeBool(value: boolean): BoolValue;
56
+ export declare function makePitch(midi: number): PitchValue;
57
+ export declare function makeDur(numerator: number, denominator: number): DurValue;
58
+ export declare function makeTime(bar: number, beat: number, sub: number): TimeValue;
59
+ export declare function makeArray(elements: RuntimeValue[]): ArrayValue;
60
+ export declare function makeObject(properties?: Map<string, RuntimeValue>): ObjectValue;
61
+ export declare function makeFunction(params: Parameter[], body: Expression | Statement[], closure: Scope): FunctionValue;
62
+ export declare function makeNull(): NullValue;
63
+ export declare function toNumber(val: RuntimeValue): number;
64
+ export declare function isTruthy(val: RuntimeValue): boolean;
65
+ export declare function valueToString(val: RuntimeValue): string;
66
+ export declare const toString: typeof valueToString;
67
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/interpreter/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ // Runtime value types for MFS interpreter
2
+ export function makeInt(value) {
3
+ return { type: 'int', value };
4
+ }
5
+ export function makeFloat(value) {
6
+ return { type: 'float', value };
7
+ }
8
+ export function makeString(value) {
9
+ return { type: 'string', value };
10
+ }
11
+ export function makeBool(value) {
12
+ return { type: 'bool', value };
13
+ }
14
+ export function makePitch(midi) {
15
+ return { type: 'pitch', midi };
16
+ }
17
+ export function makeDur(numerator, denominator) {
18
+ return { type: 'dur', numerator, denominator };
19
+ }
20
+ export function makeTime(bar, beat, sub) {
21
+ return { type: 'time', bar, beat, sub };
22
+ }
23
+ export function makeArray(elements) {
24
+ return { type: 'array', elements };
25
+ }
26
+ export function makeObject(properties) {
27
+ return { type: 'object', properties: properties ?? new Map() };
28
+ }
29
+ export function makeFunction(params, body, closure) {
30
+ return { type: 'function', params, body, closure };
31
+ }
32
+ export function makeNull() {
33
+ return { type: 'null' };
34
+ }
35
+ export function toNumber(val) {
36
+ if (val.type === 'int' || val.type === 'float') {
37
+ return val.value;
38
+ }
39
+ if (val.type === 'pitch') {
40
+ return val.midi;
41
+ }
42
+ throw new Error(`Cannot convert ${val.type} to number`);
43
+ }
44
+ export function isTruthy(val) {
45
+ if (val.type === 'bool')
46
+ return val.value;
47
+ if (val.type === 'null')
48
+ return false;
49
+ if (val.type === 'int')
50
+ return val.value !== 0;
51
+ if (val.type === 'float')
52
+ return val.value !== 0;
53
+ if (val.type === 'string')
54
+ return val.value.length > 0;
55
+ return true;
56
+ }
57
+ export function valueToString(val) {
58
+ switch (val.type) {
59
+ case 'int':
60
+ case 'float':
61
+ return val.value.toString();
62
+ case 'string':
63
+ return val.value;
64
+ case 'bool':
65
+ return val.value ? 'true' : 'false';
66
+ case 'pitch':
67
+ return `Pitch(${val.midi})`;
68
+ case 'dur':
69
+ return `${val.numerator}/${val.denominator}`;
70
+ case 'time':
71
+ return `${val.bar}:${val.beat}:${val.sub}`;
72
+ case 'array':
73
+ return `[${val.elements.map(valueToString).join(', ')}]`;
74
+ case 'object': {
75
+ const entries = Array.from(val.properties.entries())
76
+ .map(([k, v]) => `${k}: ${valueToString(v)}`)
77
+ .join(', ');
78
+ return `{${entries}}`;
79
+ }
80
+ case 'function':
81
+ return `[Function(${val.params.length} params)]`;
82
+ case 'null':
83
+ return 'null';
84
+ }
85
+ }
86
+ // Alias for use in string concatenation
87
+ export const toString = valueToString;
88
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/interpreter/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { RuntimeValue } from './runtime.js';
2
+ import type { ProcDeclaration } from '../types/ast.js';
3
+ export interface Variable {
4
+ value: RuntimeValue;
5
+ mutable: boolean;
6
+ }
7
+ export declare class Scope {
8
+ private variables;
9
+ private procs;
10
+ private parent;
11
+ constructor(parent?: Scope | null);
12
+ defineConst(name: string, value: RuntimeValue): void;
13
+ defineLet(name: string, value: RuntimeValue): void;
14
+ assign(name: string, value: RuntimeValue): void;
15
+ lookup(name: string): RuntimeValue | undefined;
16
+ private resolveVariable;
17
+ defineProc(proc: ProcDeclaration): void;
18
+ lookupProc(name: string): ProcDeclaration | undefined;
19
+ createChild(): Scope;
20
+ }
21
+ //# sourceMappingURL=scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/interpreter/scope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,GAAE,KAAK,GAAG,IAAW;IAIvC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAOpD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAOlD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAW/C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAK9C,OAAO,CAAC,eAAe;IAUvB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAIvC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAUrD,WAAW,IAAI,KAAK;CAGrB"}
@@ -0,0 +1,60 @@
1
+ // Scope management for MFS interpreter
2
+ export class Scope {
3
+ variables = new Map();
4
+ procs = new Map();
5
+ parent;
6
+ constructor(parent = null) {
7
+ this.parent = parent;
8
+ }
9
+ defineConst(name, value) {
10
+ if (this.variables.has(name)) {
11
+ throw new Error(`Variable '${name}' is already defined`);
12
+ }
13
+ this.variables.set(name, { value, mutable: false });
14
+ }
15
+ defineLet(name, value) {
16
+ if (this.variables.has(name)) {
17
+ throw new Error(`Variable '${name}' is already defined`);
18
+ }
19
+ this.variables.set(name, { value, mutable: true });
20
+ }
21
+ assign(name, value) {
22
+ const variable = this.resolveVariable(name);
23
+ if (!variable) {
24
+ throw new Error(`Undefined variable '${name}'`);
25
+ }
26
+ if (!variable.mutable) {
27
+ throw new Error(`Cannot reassign constant '${name}'`);
28
+ }
29
+ variable.value = value;
30
+ }
31
+ lookup(name) {
32
+ const variable = this.resolveVariable(name);
33
+ return variable?.value;
34
+ }
35
+ resolveVariable(name) {
36
+ if (this.variables.has(name)) {
37
+ return this.variables.get(name);
38
+ }
39
+ if (this.parent) {
40
+ return this.parent.resolveVariable(name);
41
+ }
42
+ return undefined;
43
+ }
44
+ defineProc(proc) {
45
+ this.procs.set(proc.name, proc);
46
+ }
47
+ lookupProc(name) {
48
+ if (this.procs.has(name)) {
49
+ return this.procs.get(name);
50
+ }
51
+ if (this.parent) {
52
+ return this.parent.lookupProc(name);
53
+ }
54
+ return undefined;
55
+ }
56
+ createChild() {
57
+ return new Scope(this);
58
+ }
59
+ }
60
+ //# sourceMappingURL=scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/interpreter/scope.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAUvC,MAAM,OAAO,KAAK;IACR,SAAS,GAA0B,IAAI,GAAG,EAAE,CAAC;IAC7C,KAAK,GAAiC,IAAI,GAAG,EAAE,CAAC;IAChD,MAAM,CAAe;IAE7B,YAAY,SAAuB,IAAI;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,KAAmB;QAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,sBAAsB,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,KAAmB;QACzC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,sBAAsB,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,KAAmB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAC;QACxD,CAAC;QACD,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,QAAQ,EAAE,KAAK,CAAC;IACzB,CAAC;IAEO,eAAe,CAAC,IAAY;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,IAAqB;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,205 @@
1
+ import type { TrackEvent, VocaloidParamEvent, NotationEvents, TupletInfo, GraceNoteEvent, RepeatEvent, FermataEvent, OttavaEvent, GrandStaffInfo, TablatureInfo, ChordSymbolEvent, FiguredBassEvent, MarkerEvent, PatternInstance, AudioClipEvent, AudioEffect, TuningEvent, GenerativePattern, ConstraintRule, MultiVerseLyricEvent, OssiaEvent, CueNoteEvent, StringTechniqueEvent, WindTechniqueEvent, GuitarBendEvent, HarpPedalEvent, PercussionNotehead, Scene, MIDIMapping, PageBreakEvent, SystemBreakEvent, StaffSpacingEvent, TextAnnotation, RehearsalMark, DirectionText, TimeStretchEvent, PitchShiftEvent, SampleSlicerEvent, GranularSynthEvent, AutomationLane, LFOModulation, EnvelopeFollower, ModulationMatrix, BusTrack, SendEffect, StereoWidthEvent, SpatialAudioEvent, SurroundPanEvent, MPEConfig, ArpeggiatorPattern, ChordMemory, ChordTrigger, AdditiveTimeSig, PolymetricSection, ProportionalNotation, GraphicNotationEvent, AleatoricBox, CutawayScore, TransposingInstrument, SamplerInstrument, MultiSampleInstrument, SpectrumAnalyzerConfig, LoudnessMeter, PhaseCorrelationMeter, AnalyzerSnapshot, SpectralEdit, StepSequencer, FollowAction, ScaleLock, ChordLock, Divisi, ExpressionMap, OSCConfig, OSCMapping, NetworkMIDIConfig, MIDIClockConfig, TimecodeConfig, DitheringConfig, LoudnessMatching, ReferenceTrack, ID3Metadata, ISRCCode, SongStructureMarker, FreezeTrack, AudioWarp, WarpMarker, BeatSlice, SpectralRepair, AudioRestoration, VocalAlignment, MidSideProcessing, DynamicEQ, LinearPhaseEQ, ParallelProcessing, TakeLane, CompRegion, PunchPoint, LoopRecording, AutomationRecording, GrooveTemplate, HumanizeSettings, Randomization, MIDILearnMapping, MacroControl, StemExport, BatchProcessing, ExportPreset, AtmosObject, HeadphoneVirtualization, SurroundAutomation, ProjectNote, Collaborator, ClefChangeEvent, KeySignatureEvent, FingeringEvent, MultiRestEvent, SlashNotationEvent, BarlineEvent, TempoTextEvent, HideEmptyStavesEvent, VocalStyleEvent, NoteEnvelopeEvent, VocalTensionEvent, MelismaEvent, StackedArticulationEvent, TrillEvent, MordentEvent, TurnEvent, ArpeggioEvent, GlissandoEvent, TremoloEvent, HarmonicEvent, PedalEvent, SwingEvent, ProbabilityEvent, FeatheredBeamEvent, QuarterToneEvent, ClusterEvent, SprechstimmeEvent, CustomNoteheadEvent, BracketGroupEvent, CueStaffEvent, NoteColorEvent, VoltaEvent, CadenzaEvent, DivisiMarkEvent, MetricModulationEvent, ConductorCueEvent, EditorialEvent, BrassMuteEvent, StringPositionEvent, MultiphonicEvent, ElectronicsCueEvent, BendCurveEvent, SlideEvent, TapEvent, ArrangerSection, ChordTrackEvent, ScaleLockEvent, StepInputEvent, MeasureCommentEvent, VersionCheckpointEvent, ChordDiagramEvent, ScaleDiagramEvent, HarpPedalDiagramEvent, PartExtractionConfig, TranspositionDisplayEvent, MeasureNumberConfig, WavetableSynthEvent, FMSynthEvent, AdditiveSynthEvent, SubtractiveSynthEvent, PhysicalModelEvent, VocoderEvent, PitchCorrectionEvent, FormantShiftEvent, ConvolutionReverbEvent, AmpSimEvent, CabinetSimEvent, VideoSyncEvent, HitPointEvent, TimecodeDisplayConfig, ProjectTemplate, TrackFolderEvent, CollaboratorSession, VersionDiffEvent } from '../types/ir.js';
2
+ export interface TrackState {
3
+ id: string;
4
+ kind: 'vocal' | 'midi';
5
+ cursor: number;
6
+ events: TrackEvent[];
7
+ meta: Record<string, string | number>;
8
+ channel?: number;
9
+ program?: number;
10
+ defaultVel?: number;
11
+ vocaloidParams?: VocaloidParamEvent[];
12
+ notation?: NotationEvents;
13
+ currentSlurStart?: number;
14
+ currentTuplet?: TupletInfo;
15
+ tupletStack?: TupletInfo[];
16
+ currentVoice?: number;
17
+ currentOttava?: {
18
+ startTick: number;
19
+ shift: number;
20
+ };
21
+ graceNotes?: GraceNoteEvent[];
22
+ repeats?: RepeatEvent[];
23
+ fermatas?: FermataEvent[];
24
+ ottavas?: OttavaEvent[];
25
+ grandStaff?: GrandStaffInfo;
26
+ tablature?: TablatureInfo;
27
+ chordSymbols?: ChordSymbolEvent[];
28
+ figuredBass?: FiguredBassEvent[];
29
+ markers?: MarkerEvent[];
30
+ patterns?: PatternInstance[];
31
+ audioClips?: AudioClipEvent[];
32
+ effects?: AudioEffect[];
33
+ tuning?: TuningEvent;
34
+ centsDeviation?: number;
35
+ generativePatterns?: GenerativePattern[];
36
+ constraints?: ConstraintRule[];
37
+ randomSeed?: number;
38
+ multiVerseLyrics?: MultiVerseLyricEvent[];
39
+ ossias?: OssiaEvent[];
40
+ cueNotes?: CueNoteEvent[];
41
+ stringTechniques?: StringTechniqueEvent[];
42
+ windTechniques?: WindTechniqueEvent[];
43
+ guitarBends?: GuitarBendEvent[];
44
+ harpPedals?: HarpPedalEvent[];
45
+ percussionNoteheads?: Map<number, PercussionNotehead>;
46
+ scenes?: Scene[];
47
+ midiMappings?: MIDIMapping[];
48
+ layoutEvents?: (PageBreakEvent | SystemBreakEvent | StaffSpacingEvent)[];
49
+ textAnnotations?: TextAnnotation[];
50
+ rehearsalMarks?: RehearsalMark[];
51
+ directionTexts?: DirectionText[];
52
+ timeStretchEvents?: TimeStretchEvent[];
53
+ pitchShiftEvents?: PitchShiftEvent[];
54
+ sampleSlicers?: SampleSlicerEvent[];
55
+ granularSynths?: GranularSynthEvent[];
56
+ automationLanes?: AutomationLane[];
57
+ lfoModulations?: LFOModulation[];
58
+ envelopeFollowers?: EnvelopeFollower[];
59
+ modulationMatrix?: ModulationMatrix;
60
+ buses?: BusTrack[];
61
+ sends?: SendEffect[];
62
+ stereoWidthEvents?: StereoWidthEvent[];
63
+ spatialEvents?: SpatialAudioEvent[];
64
+ surroundPans?: SurroundPanEvent[];
65
+ mpeConfig?: MPEConfig;
66
+ arpeggiators?: ArpeggiatorPattern[];
67
+ chordMemories?: ChordMemory[];
68
+ chordTriggers?: ChordTrigger[];
69
+ additiveTimeSigs?: AdditiveTimeSig[];
70
+ polymetricSections?: PolymetricSection[];
71
+ proportionalNotation?: ProportionalNotation[];
72
+ graphicNotation?: GraphicNotationEvent[];
73
+ aleatoricBoxes?: AleatoricBox[];
74
+ cutawayScores?: CutawayScore[];
75
+ transposingInstrument?: TransposingInstrument;
76
+ samplerInstruments?: SamplerInstrument[];
77
+ multiSampleInstruments?: MultiSampleInstrument[];
78
+ spectrumAnalyzer?: SpectrumAnalyzerConfig;
79
+ loudnessMeter?: LoudnessMeter;
80
+ phaseCorrelationMeter?: PhaseCorrelationMeter;
81
+ analyzerSnapshots?: AnalyzerSnapshot[];
82
+ spectralEdits?: SpectralEdit[];
83
+ stepSequencers?: StepSequencer[];
84
+ followActions?: FollowAction[];
85
+ scaleLocks?: ScaleLock[];
86
+ chordLocks?: ChordLock[];
87
+ divisiSections?: Divisi[];
88
+ expressionMaps?: ExpressionMap[];
89
+ oscConfig?: OSCConfig;
90
+ oscMappings?: OSCMapping[];
91
+ networkMidiConfig?: NetworkMIDIConfig;
92
+ midiClockConfig?: MIDIClockConfig;
93
+ timecodeConfig?: TimecodeConfig;
94
+ ditheringConfig?: DitheringConfig;
95
+ loudnessMatchingConfig?: LoudnessMatching;
96
+ referenceTracks?: ReferenceTrack[];
97
+ id3Metadata?: ID3Metadata;
98
+ isrcCodes?: ISRCCode[];
99
+ songStructureMarkers?: SongStructureMarker[];
100
+ freezeTracks?: FreezeTrack[];
101
+ audioWarps?: AudioWarp[];
102
+ warpMarkers?: WarpMarker[];
103
+ beatSlices?: BeatSlice[];
104
+ spectralRepairs?: SpectralRepair[];
105
+ audioRestorations?: AudioRestoration[];
106
+ vocalAlignments?: VocalAlignment[];
107
+ midSideProcessing?: MidSideProcessing[];
108
+ dynamicEQs?: DynamicEQ[];
109
+ linearPhaseEQs?: LinearPhaseEQ[];
110
+ parallelProcessing?: ParallelProcessing[];
111
+ takeLanes?: TakeLane[];
112
+ compRegions?: CompRegion[];
113
+ punchPoints?: PunchPoint[];
114
+ loopRecordings?: LoopRecording[];
115
+ automationRecordings?: AutomationRecording[];
116
+ grooveTemplates?: GrooveTemplate[];
117
+ humanizeSettings?: HumanizeSettings[];
118
+ randomizations?: Randomization[];
119
+ midiLearnMappings?: MIDILearnMapping[];
120
+ macroControls?: MacroControl[];
121
+ stemExports?: StemExport[];
122
+ batchProcessings?: BatchProcessing[];
123
+ exportPresets?: ExportPreset[];
124
+ atmosObjects?: AtmosObject[];
125
+ headphoneVirtualization?: HeadphoneVirtualization;
126
+ surroundAutomation?: SurroundAutomation[];
127
+ projectNotes?: ProjectNote[];
128
+ collaborators?: Collaborator[];
129
+ clefChanges?: ClefChangeEvent[];
130
+ keySignatures?: KeySignatureEvent[];
131
+ fingerings?: FingeringEvent[];
132
+ multiRests?: MultiRestEvent[];
133
+ slashNotations?: SlashNotationEvent[];
134
+ barlines?: BarlineEvent[];
135
+ tempoTexts?: TempoTextEvent[];
136
+ hideEmptyStaves?: HideEmptyStavesEvent;
137
+ vocalStyles?: VocalStyleEvent[];
138
+ noteEnvelopes?: NoteEnvelopeEvent[];
139
+ vocalTensions?: VocalTensionEvent[];
140
+ melismas?: MelismaEvent[];
141
+ stackedArticulations?: StackedArticulationEvent[];
142
+ trills?: TrillEvent[];
143
+ mordents?: MordentEvent[];
144
+ turns?: TurnEvent[];
145
+ arpeggios?: ArpeggioEvent[];
146
+ glissandos?: GlissandoEvent[];
147
+ tremolos?: TremoloEvent[];
148
+ harmonics?: HarmonicEvent[];
149
+ pedals?: PedalEvent[];
150
+ swingSettings?: SwingEvent[];
151
+ probabilities?: ProbabilityEvent[];
152
+ featheredBeams?: FeatheredBeamEvent[];
153
+ quarterTones?: QuarterToneEvent[];
154
+ clusters?: ClusterEvent[];
155
+ sprechstimmes?: SprechstimmeEvent[];
156
+ customNoteheads?: CustomNoteheadEvent[];
157
+ bracketGroups?: BracketGroupEvent[];
158
+ cueStaffs?: CueStaffEvent[];
159
+ noteColors?: NoteColorEvent[];
160
+ voltas?: VoltaEvent[];
161
+ cadenzas?: CadenzaEvent[];
162
+ divisiMarks?: DivisiMarkEvent[];
163
+ metricModulations?: MetricModulationEvent[];
164
+ conductorCues?: ConductorCueEvent[];
165
+ editorials?: EditorialEvent[];
166
+ brassMutes?: BrassMuteEvent[];
167
+ stringPositions?: StringPositionEvent[];
168
+ multiphonics?: MultiphonicEvent[];
169
+ electronicsCues?: ElectronicsCueEvent[];
170
+ bendCurves?: BendCurveEvent[];
171
+ slides?: SlideEvent[];
172
+ taps?: TapEvent[];
173
+ arrangerSections?: ArrangerSection[];
174
+ chordTrack?: ChordTrackEvent;
175
+ scaleLockSettings?: ScaleLockEvent[];
176
+ stepInputSettings?: StepInputEvent[];
177
+ measureComments?: MeasureCommentEvent[];
178
+ versionCheckpoints?: VersionCheckpointEvent[];
179
+ chordDiagrams?: ChordDiagramEvent[];
180
+ scaleDiagrams?: ScaleDiagramEvent[];
181
+ harpPedalDiagrams?: HarpPedalDiagramEvent[];
182
+ partExtractions?: PartExtractionConfig[];
183
+ transpositionDisplay?: TranspositionDisplayEvent;
184
+ measureNumberConfig?: MeasureNumberConfig;
185
+ wavetableSynths?: WavetableSynthEvent[];
186
+ fmSynths?: FMSynthEvent[];
187
+ additiveSynths?: AdditiveSynthEvent[];
188
+ subtractiveSynths?: SubtractiveSynthEvent[];
189
+ physicalModels?: PhysicalModelEvent[];
190
+ vocoders?: VocoderEvent[];
191
+ pitchCorrections?: PitchCorrectionEvent[];
192
+ formantShifts?: FormantShiftEvent[];
193
+ convolutionReverbs?: ConvolutionReverbEvent[];
194
+ ampSims?: AmpSimEvent[];
195
+ cabinetSims?: CabinetSimEvent[];
196
+ videoSyncs?: VideoSyncEvent[];
197
+ hitPoints?: HitPointEvent[];
198
+ timecodeDisplay?: TimecodeDisplayConfig;
199
+ projectTemplate?: ProjectTemplate;
200
+ trackFolders?: TrackFolderEvent[];
201
+ collaboratorSession?: CollaboratorSession;
202
+ versionDiffs?: VersionDiffEvent[];
203
+ }
204
+ export declare const DRUM_MAP: Record<string, number>;
205
+ //# sourceMappingURL=trackState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackState.d.ts","sourceRoot":"","sources":["../../src/interpreter/trackState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ // Track state interface for interpreter
2
+ // Drum name to MIDI note mapping
3
+ export const DRUM_MAP = {
4
+ kick: 36,
5
+ snare: 38,
6
+ hhc: 42,
7
+ hho: 46,
8
+ tom1: 50,
9
+ crash: 49,
10
+ ride: 51,
11
+ };
12
+ //# sourceMappingURL=trackState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackState.js","sourceRoot":"","sources":["../../src/interpreter/trackState.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAybxC,iCAAiC;AACjC,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC9C,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;CACT,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Lexer } from './lexer.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lexer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Lexer } from './lexer.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lexer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { Token } from '../types/token.js';
2
+ export declare class Lexer {
3
+ private source;
4
+ private position;
5
+ private line;
6
+ private column;
7
+ private filePath?;
8
+ constructor(source: string, filePath?: string);
9
+ tokenize(): Token[];
10
+ private nextToken;
11
+ private readString;
12
+ private readNumberOrTimeLiteral;
13
+ private readTimeLiteral;
14
+ private readDurLiteral;
15
+ private isPitchStart;
16
+ private tryReadPitch;
17
+ private readIdentifier;
18
+ private readOperator;
19
+ private skipWhitespaceAndComments;
20
+ private peek;
21
+ private peekNext;
22
+ private advance;
23
+ private isAtEnd;
24
+ private isDigit;
25
+ private isAlpha;
26
+ private isAlphaNumeric;
27
+ private currentPosition;
28
+ private makeToken;
29
+ }
30
+ //# sourceMappingURL=lexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../src/lexer/lexer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAiC,MAAM,mBAAmB,CAAC;AAGzE,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK7C,QAAQ,IAAI,KAAK,EAAE;IAiBnB,OAAO,CAAC,SAAS;IA6BjB,OAAO,CAAC,UAAU;IAoClB,OAAO,CAAC,uBAAuB;IAsC/B,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;IAsDpB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,YAAY;IA0GpB,OAAO,CAAC,yBAAyB;IAqCjC,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,SAAS;CAGlB"}