@audiofab-io/fv1-core 0.2.3 → 0.4.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.
- package/blocks/ATL_DEVELOPER_REFERENCE.md +156 -0
- package/blocks/control/constant.atl +36 -0
- package/blocks/control/entropy_lfo.atl +74 -0
- package/blocks/control/envelope.atl +121 -0
- package/blocks/control/invert.atl +33 -0
- package/blocks/control/pot.atl +150 -0
- package/blocks/control/power.atl +77 -0
- package/blocks/control/ramp_lfo.atl +122 -0
- package/blocks/control/scale_offset.atl +84 -0
- package/blocks/control/sincos_lfo.atl +126 -0
- package/blocks/control/smoother.atl +48 -0
- package/blocks/control/tremolizer.atl +55 -0
- package/blocks/effects/delay/micro_stutter.atl +77 -0
- package/blocks/effects/delay/mn3011.atl +281 -0
- package/blocks/effects/delay/simple_delay.atl +96 -0
- package/blocks/effects/delay/triple_tap_delay.atl +176 -0
- package/blocks/effects/lo-fi/bit_mangler.atl +74 -0
- package/blocks/effects/lo-fi/chiptune.atl +311 -0
- package/blocks/effects/lo-fi/tape_degrade.atl +181 -0
- package/blocks/effects/modulation/chorus.atl +141 -0
- package/blocks/effects/modulation/chorus_4voice.atl +188 -0
- package/blocks/effects/modulation/flanger.atl +184 -0
- package/blocks/effects/modulation/guitar_synth.atl +350 -0
- package/blocks/effects/modulation/harmonic_trem.atl +129 -0
- package/blocks/effects/modulation/organ_synth.atl +326 -0
- package/blocks/effects/modulation/phaser.atl +300 -0
- package/blocks/effects/pitch/octave_up_down.atl +80 -0
- package/blocks/effects/pitch/pitch_offset.atl +149 -0
- package/blocks/effects/pitch/pitch_offset_dual.atl +197 -0
- package/blocks/effects/pitch/pitch_shift.atl +115 -0
- package/blocks/effects/pitch/sub_octave.atl +100 -0
- package/blocks/effects/reverb/ducking_reverb.atl +145 -0
- package/blocks/effects/reverb/min_reverb.atl +132 -0
- package/blocks/effects/reverb/plate_reverb.atl +344 -0
- package/blocks/effects/reverb/room_reverb.atl +293 -0
- package/blocks/effects/reverb/smear.atl +90 -0
- package/blocks/effects/reverb/spring_reverb.atl +353 -0
- package/blocks/filter/1p_high_pass.atl +63 -0
- package/blocks/filter/1p_low_pass.atl +59 -0
- package/blocks/filter/auto_wah.atl +207 -0
- package/blocks/filter/bbd_loss.atl +79 -0
- package/blocks/filter/shelving_high_pass.atl +76 -0
- package/blocks/filter/shelving_low_pass.atl +76 -0
- package/blocks/filter/svf_2p.atl +116 -0
- package/blocks/gain_mix/crossfade.atl +93 -0
- package/blocks/gain_mix/crossfade2.atl +86 -0
- package/blocks/gain_mix/crossfade3.atl +71 -0
- package/blocks/gain_mix/gainboost.atl +54 -0
- package/blocks/gain_mix/mixer2.atl +76 -0
- package/blocks/gain_mix/mixer3.atl +109 -0
- package/blocks/gain_mix/mixer4.atl +152 -0
- package/blocks/gain_mix/volume.atl +51 -0
- package/blocks/io/adc.atl +53 -0
- package/blocks/io/dac.atl +61 -0
- package/blocks/other/stickynote.atl +24 -0
- package/blocks/other/tone_gen_adjustable.atl +137 -0
- package/blocks/other/tone_gen_fixed.atl +109 -0
- package/dist/blockDiagram/blocks/BlockDirectoryLoader.d.ts +13 -0
- package/dist/blockDiagram/blocks/BlockDirectoryLoader.d.ts.map +1 -0
- package/dist/blockDiagram/blocks/BlockDirectoryLoader.js +44 -0
- package/dist/blockDiagram/blocks/BlockDirectoryLoader.js.map +1 -0
- package/dist/blockDiagram/blocks/BlockRegistry.d.ts +48 -0
- package/dist/blockDiagram/blocks/BlockRegistry.d.ts.map +1 -0
- package/dist/blockDiagram/blocks/BlockRegistry.js +109 -0
- package/dist/blockDiagram/blocks/BlockRegistry.js.map +1 -0
- package/dist/blockDiagram/blocks/TemplateBlock.d.ts +20 -0
- package/dist/blockDiagram/blocks/TemplateBlock.d.ts.map +1 -0
- package/dist/blockDiagram/blocks/TemplateBlock.js +82 -0
- package/dist/blockDiagram/blocks/TemplateBlock.js.map +1 -0
- package/dist/blockDiagram/blocks/base/BaseBlock.d.ts +248 -0
- package/dist/blockDiagram/blocks/base/BaseBlock.d.ts.map +1 -0
- package/dist/blockDiagram/blocks/base/BaseBlock.js +402 -0
- package/dist/blockDiagram/blocks/base/BaseBlock.js.map +1 -0
- package/dist/blockDiagram/builtinBlocks.d.ts +9 -0
- package/dist/blockDiagram/builtinBlocks.d.ts.map +1 -0
- package/dist/blockDiagram/builtinBlocks.js +4912 -0
- package/dist/blockDiagram/builtinBlocks.js.map +1 -0
- package/dist/blockDiagram/compiler/BlockTemplate.d.ts +37 -0
- package/dist/blockDiagram/compiler/BlockTemplate.d.ts.map +1 -0
- package/dist/blockDiagram/compiler/BlockTemplate.js +860 -0
- package/dist/blockDiagram/compiler/BlockTemplate.js.map +1 -0
- package/dist/blockDiagram/compiler/CodeOptimizer.d.ts +75 -0
- package/dist/blockDiagram/compiler/CodeOptimizer.d.ts.map +1 -0
- package/dist/blockDiagram/compiler/CodeOptimizer.js +443 -0
- package/dist/blockDiagram/compiler/CodeOptimizer.js.map +1 -0
- package/dist/blockDiagram/compiler/GraphCompiler.d.ts +63 -0
- package/dist/blockDiagram/compiler/GraphCompiler.d.ts.map +1 -0
- package/dist/blockDiagram/compiler/GraphCompiler.js +656 -0
- package/dist/blockDiagram/compiler/GraphCompiler.js.map +1 -0
- package/dist/blockDiagram/compiler/TopologicalSort.d.ts +63 -0
- package/dist/blockDiagram/compiler/TopologicalSort.d.ts.map +1 -0
- package/dist/blockDiagram/compiler/TopologicalSort.js +268 -0
- package/dist/blockDiagram/compiler/TopologicalSort.js.map +1 -0
- package/dist/blockDiagram/index.d.ts +30 -0
- package/dist/blockDiagram/index.d.ts.map +1 -0
- package/dist/blockDiagram/index.js +29 -0
- package/dist/blockDiagram/index.js.map +1 -0
- package/dist/blockDiagram/types/Block.d.ts +178 -0
- package/dist/blockDiagram/types/Block.d.ts.map +1 -0
- package/dist/blockDiagram/types/Block.js +5 -0
- package/dist/blockDiagram/types/Block.js.map +1 -0
- package/dist/blockDiagram/types/CodeGenContext.d.ts +235 -0
- package/dist/blockDiagram/types/CodeGenContext.d.ts.map +1 -0
- package/dist/blockDiagram/types/CodeGenContext.js +554 -0
- package/dist/blockDiagram/types/CodeGenContext.js.map +1 -0
- package/dist/blockDiagram/types/Connection.d.ts +17 -0
- package/dist/blockDiagram/types/Connection.d.ts.map +1 -0
- package/dist/blockDiagram/types/Connection.js +5 -0
- package/dist/blockDiagram/types/Connection.js.map +1 -0
- package/dist/blockDiagram/types/Graph.d.ts +28 -0
- package/dist/blockDiagram/types/Graph.d.ts.map +1 -0
- package/dist/blockDiagram/types/Graph.js +24 -0
- package/dist/blockDiagram/types/Graph.js.map +1 -0
- package/dist/blockDiagram/types/IR.d.ts +79 -0
- package/dist/blockDiagram/types/IR.d.ts.map +1 -0
- package/dist/blockDiagram/types/IR.js +6 -0
- package/dist/blockDiagram/types/IR.js.map +1 -0
- package/dist/blockDiagram/utils/SpinCADConverter.d.ts +17 -0
- package/dist/blockDiagram/utils/SpinCADConverter.d.ts.map +1 -0
- package/dist/blockDiagram/utils/SpinCADConverter.js +307 -0
- package/dist/blockDiagram/utils/SpinCADConverter.js.map +1 -0
- package/dist/effect/compileEffect.d.ts +51 -0
- package/dist/effect/compileEffect.d.ts.map +1 -0
- package/dist/effect/compileEffect.js +133 -0
- package/dist/effect/compileEffect.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +17 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../src/blockDiagram/types/Block.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACjD,OAAO,EAAE,GAAG,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAE3B,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAG5D,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAGjE,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAG9D,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAG3D,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAGtC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAGpC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAG1D,kBAAkB,IAAI,MAAM,CAAC;IAG7B,qBAAqB,IAAI,IAAI,CAAC;IAI9B,iBAAiB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5C,YAAY,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvC,aAAa,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxC,YAAY,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvC,cAAc,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAGzC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAG/F,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAG1D,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAG3C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAG9B,kBAAkB,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAG7D,kBAAkB,IAAI,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAGjE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC;IAGxD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC;IAG/B,eAAe,IAAI,MAAM,GAAG,IAAI,CAAC;IAGjC,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IACxB,KAAK,IAAI,GAAG,EAAE,CAAC;IAGf,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAGpC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC9C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAG/C,oBAAoB,IAAI,MAAM,CAAC;IAC/B,iBAAiB,IAAI,MAAM,CAAC;IAC5B,eAAe,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAG1E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,IAAI,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAE9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAGnD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAGrC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAE7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAG7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAGxB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;IAG9B,QAAQ,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC;IAEtC;;;;;OAKG;IACH,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAAC;IAExC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;IAEnD;;OAEG;IACH,WAAW,IAAI,aAAa,CAAC;IAE7B;;;;;OAKG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhE;;;;;OAKG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhE;;;;OAIG;IACH,cAAc,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IAEhE;;;OAGG;IACH,cAAc,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC;CACzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Block.js","sourceRoot":"","sources":["../../../src/blockDiagram/types/Block.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code generation context implementation
|
|
3
|
+
*/
|
|
4
|
+
import { CodeGenContext } from '../types/Block.js';
|
|
5
|
+
import { BlockGraph } from '../types/Graph.js';
|
|
6
|
+
export declare class CodeGenerationContext implements CodeGenContext {
|
|
7
|
+
private graph;
|
|
8
|
+
private registerAllocations;
|
|
9
|
+
private memoryAllocations;
|
|
10
|
+
private equDeclarations;
|
|
11
|
+
private constantMap;
|
|
12
|
+
private nextRegister;
|
|
13
|
+
private nextScratchRegister;
|
|
14
|
+
private nextMemoryAddress;
|
|
15
|
+
private currentBlockId;
|
|
16
|
+
private blockShortIdMap;
|
|
17
|
+
private nextShortId;
|
|
18
|
+
private blockVariables;
|
|
19
|
+
private headerComments;
|
|
20
|
+
private initCode;
|
|
21
|
+
private inputCode;
|
|
22
|
+
private mainCode;
|
|
23
|
+
private outputCode;
|
|
24
|
+
private flattenedCode;
|
|
25
|
+
private irNodes;
|
|
26
|
+
private flattenMode;
|
|
27
|
+
private compilationErrors;
|
|
28
|
+
private headerEquSet;
|
|
29
|
+
private readonly maxMemory;
|
|
30
|
+
constructor(graph: BlockGraph, options?: {
|
|
31
|
+
delaySize?: number;
|
|
32
|
+
});
|
|
33
|
+
/**
|
|
34
|
+
* Get the current block ID being processed
|
|
35
|
+
*/
|
|
36
|
+
getCurrentBlock(): string | null;
|
|
37
|
+
/**
|
|
38
|
+
* Set the current block ID
|
|
39
|
+
being processed
|
|
40
|
+
*/
|
|
41
|
+
setCurrentBlock(blockId: string): void;
|
|
42
|
+
/**
|
|
43
|
+
* Push comments to the header section
|
|
44
|
+
* For documentation and notes from sticky note blocks
|
|
45
|
+
*/
|
|
46
|
+
pushHeaderComment(...lines: string[]): void;
|
|
47
|
+
/**
|
|
48
|
+
* Report an error that halts generation and alerts the user
|
|
49
|
+
*/
|
|
50
|
+
addError(message: string): void;
|
|
51
|
+
/**
|
|
52
|
+
* Return all collected errors during AST template evaluation
|
|
53
|
+
*/
|
|
54
|
+
getErrors(): string[];
|
|
55
|
+
/**
|
|
56
|
+
* Set flatten mode for aggressive optimization
|
|
57
|
+
*/
|
|
58
|
+
setFlattenMode(enabled: boolean): void;
|
|
59
|
+
/**
|
|
60
|
+
* Check if flatten mode is enabled
|
|
61
|
+
*/
|
|
62
|
+
isFlattenMode(): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Push code to the initialization section
|
|
65
|
+
* For EQU/MEM declarations and SKP logic
|
|
66
|
+
*/
|
|
67
|
+
pushInitCode(...lines: string[]): void;
|
|
68
|
+
/**
|
|
69
|
+
* Push code to the input section
|
|
70
|
+
* For ADC reads and POT reads
|
|
71
|
+
*/
|
|
72
|
+
pushInputCode(...lines: string[]): void;
|
|
73
|
+
/**
|
|
74
|
+
* Push code to the main code section
|
|
75
|
+
* For main processing logic
|
|
76
|
+
*/
|
|
77
|
+
pushMainCode(...lines: string[]): void;
|
|
78
|
+
/**
|
|
79
|
+
* Push code to the output section
|
|
80
|
+
* For DAC writes
|
|
81
|
+
*/
|
|
82
|
+
pushOutputCode(...lines: string[]): void;
|
|
83
|
+
/**
|
|
84
|
+
* Get header comments (from sticky notes)
|
|
85
|
+
*/
|
|
86
|
+
getHeaderComments(): string[];
|
|
87
|
+
/**
|
|
88
|
+
* Get all code sections
|
|
89
|
+
* Also generates EQU and MEM declarations at the beginning of init section
|
|
90
|
+
*/
|
|
91
|
+
getCodeSections(): {
|
|
92
|
+
init: string[];
|
|
93
|
+
input: string[];
|
|
94
|
+
main: string[];
|
|
95
|
+
output: string[];
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Check if an output port is connected to anything
|
|
99
|
+
* Used to skip generating code for unused outputs (optimization)
|
|
100
|
+
*/
|
|
101
|
+
isOutputConnected(blockIdOrType: string, portId: string): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Get the register that feeds a block's input port
|
|
104
|
+
* Returns null if input is not connected (for optional inputs like CV)
|
|
105
|
+
*/
|
|
106
|
+
getInputRegister(blockIdOrType: string, portId: string): string | null;
|
|
107
|
+
/**
|
|
108
|
+
* Check if an input port is connected to a zero-bypass pot
|
|
109
|
+
*/
|
|
110
|
+
isInputZeroBypassed(blockIdOrType: string, portId: string): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Get the zeroValue from a connected zero-bypass pot
|
|
113
|
+
* Returns 0 if not connected to a zero-bypass pot
|
|
114
|
+
*/
|
|
115
|
+
getInputZeroValue(blockIdOrType: string, portId: string): number;
|
|
116
|
+
/**
|
|
117
|
+
* Allocate a register for a block's output port
|
|
118
|
+
* These are permanent registers allocated from REG0 upward
|
|
119
|
+
*/
|
|
120
|
+
allocateRegister(blockIdOrType: string, portId: string): string;
|
|
121
|
+
/**
|
|
122
|
+
* Generate a meaningful alias for a register
|
|
123
|
+
*/
|
|
124
|
+
private generateRegisterAlias;
|
|
125
|
+
/**
|
|
126
|
+
* Sanitize an identifier to make it valid for assembly
|
|
127
|
+
*/
|
|
128
|
+
private sanitizeIdentifier;
|
|
129
|
+
/**
|
|
130
|
+
* Get a scratch/temporary register for intermediate calculations
|
|
131
|
+
* Scratch registers are allocated from REG31 downward and are automatically
|
|
132
|
+
* available again after the current block's code generation completes
|
|
133
|
+
*/
|
|
134
|
+
getScratchRegister(): string;
|
|
135
|
+
/**
|
|
136
|
+
* Reset scratch register allocation
|
|
137
|
+
* Called after each block's code generation to make scratch registers available again
|
|
138
|
+
*/
|
|
139
|
+
resetScratchRegisters(): void;
|
|
140
|
+
/**
|
|
141
|
+
* Register an EQU constant declaration
|
|
142
|
+
* For common values, use standardized names
|
|
143
|
+
*/
|
|
144
|
+
registerEqu(name: string, value: string | number): string;
|
|
145
|
+
/**
|
|
146
|
+
* Get or create a standard EQU name for a constant value
|
|
147
|
+
* Returns the EQU name to use in code
|
|
148
|
+
* Dynamically builds the constant map as values are encountered
|
|
149
|
+
*/
|
|
150
|
+
getStandardConstant(value: number): string;
|
|
151
|
+
/**
|
|
152
|
+
* Check if an EQU constant has been registered
|
|
153
|
+
*/
|
|
154
|
+
hasEqu(name: string): boolean;
|
|
155
|
+
/**
|
|
156
|
+
* Register an EQU that lives only in the IR header section (not in equDeclarations).
|
|
157
|
+
* Prevents the EQU from being duplicated in the init/Constants section.
|
|
158
|
+
*/
|
|
159
|
+
registerHeaderEqu(name: string): void;
|
|
160
|
+
/**
|
|
161
|
+
* Returns true if an EQU has been registered for the IR header section.
|
|
162
|
+
*/
|
|
163
|
+
hasHeaderEqu(name: string): boolean;
|
|
164
|
+
/**
|
|
165
|
+
* Get all registered EQU declarations
|
|
166
|
+
*/
|
|
167
|
+
getEquDeclarations(): Array<{
|
|
168
|
+
name: string;
|
|
169
|
+
value: string;
|
|
170
|
+
}>;
|
|
171
|
+
/**
|
|
172
|
+
* Get all register aliases for EQU declarations
|
|
173
|
+
*/
|
|
174
|
+
getRegisterAliases(): Array<{
|
|
175
|
+
alias: string;
|
|
176
|
+
register: string;
|
|
177
|
+
}>;
|
|
178
|
+
/**
|
|
179
|
+
* Allocate delay memory for a block
|
|
180
|
+
*/
|
|
181
|
+
allocateMemory(name: string, size: number): {
|
|
182
|
+
name: string;
|
|
183
|
+
address: number;
|
|
184
|
+
size: number;
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* Get a block instance
|
|
188
|
+
*/
|
|
189
|
+
getBlock(blockId: string): any;
|
|
190
|
+
/**
|
|
191
|
+
* Get a parameter value from a block
|
|
192
|
+
*/
|
|
193
|
+
getParameter(blockIdOrType: string, parameterId: string): any;
|
|
194
|
+
/**
|
|
195
|
+
* Push an IR node
|
|
196
|
+
*/
|
|
197
|
+
pushIR(node: any): void;
|
|
198
|
+
/**
|
|
199
|
+
* Get a short, unique identifier for a block (e.g. "b1", "b2") to avoid long UUIDs in assembly
|
|
200
|
+
*/
|
|
201
|
+
getShortId(blockId: string): string;
|
|
202
|
+
/**
|
|
203
|
+
* Get all IR nodes
|
|
204
|
+
*/
|
|
205
|
+
getIR(): any[];
|
|
206
|
+
/**
|
|
207
|
+
* Get count of used registers
|
|
208
|
+
*/
|
|
209
|
+
getUsedRegisterCount(): number;
|
|
210
|
+
/**
|
|
211
|
+
* Get total used memory size
|
|
212
|
+
*/
|
|
213
|
+
getUsedMemorySize(): number;
|
|
214
|
+
/**
|
|
215
|
+
* Get all memory allocations
|
|
216
|
+
*/
|
|
217
|
+
getMemoryBlocks(): Array<{
|
|
218
|
+
name: string;
|
|
219
|
+
address: number;
|
|
220
|
+
size: number;
|
|
221
|
+
}>;
|
|
222
|
+
/**
|
|
223
|
+
* Get a local variable value (used by macros)
|
|
224
|
+
*/
|
|
225
|
+
getVariable(name: string): string | undefined;
|
|
226
|
+
/**
|
|
227
|
+
* Set a local variable value (used by macros)
|
|
228
|
+
*/
|
|
229
|
+
setVariable(name: string, value: string): void;
|
|
230
|
+
/**
|
|
231
|
+
* Reset allocations (for re-compilation)
|
|
232
|
+
*/
|
|
233
|
+
reset(): void;
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=CodeGenContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeGenContext.d.ts","sourceRoot":"","sources":["../../../src/blockDiagram/types/CodeGenContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAsB/C,qBAAa,qBAAsB,YAAW,cAAc;IACxD,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,mBAAmB,CAAc;IACzC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,cAAc,CAAkC;IAGxD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,WAAW,CAAkB;IAGrC,OAAO,CAAC,iBAAiB,CAAgB;IAGzC,OAAO,CAAC,YAAY,CAA0B;IAG9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAK/D;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAItC;;;OAGG;IACH,iBAAiB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAI3C;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS/B;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAItC;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;;OAGG;IACH,YAAY,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAItC;;;OAGG;IACH,aAAa,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAQvC;;;OAGG;IACH,YAAY,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAQtC;;;OAGG;IACH,cAAc,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAQxC;;OAEG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAI7B;;;OAGG;IACH,eAAe,IAAI;QACf,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;KACpB;IA8CD;;;OAGG;IACH,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAUjE;;;OAGG;IACH,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA8BtE;;OAEG;IACH,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAqBnE;;;OAGG;IACH,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAmBhE;;;OAGG;IACH,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAiC/D;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyC7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;;;OAIG;IACH,kBAAkB,IAAI,MAAM;IAW5B;;;OAGG;IACH,qBAAqB,IAAI,IAAI;IAI7B;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAWzD;;;;OAIG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAmB1C;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI7B;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC;;OAEG;IACH,kBAAkB,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAI5D;;OAEG;IACH,kBAAkB,IAAI,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAOhE;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAqE3F;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG;IAI9B;;OAEG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,GAAG;IAY7D;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAIvB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAWnC;;OAEG;IACH,KAAK,IAAI,GAAG,EAAE;IAId;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,eAAe,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAQzE;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7C;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI9C;;OAEG;IACH,KAAK,IAAI,IAAI;CAehB"}
|