Felix Roos 89acc4870b Publish
- @strudel.cycles/core@0.3.2
 - @strudel.cycles/eval@0.3.2
 - @strudel.cycles/midi@0.3.2
 - @strudel.cycles/mini@0.3.2
 - @strudel.cycles/react@0.3.2
 - @strudel.cycles/soundfonts@0.3.2
 - @strudel.cycles/tonal@0.3.2
 - @strudel.cycles/tone@0.3.2
 - @strudel.cycles/transpiler@0.3.2
 - @strudel.cycles/webaudio@0.3.2
 - @strudel.cycles/webdirt@0.3.2
 - @strudel.cycles/xen@0.3.2
2022-11-08 22:45:44 +01:00
..
2022-11-08 21:04:41 +01:00
2022-11-08 22:45:44 +01:00
2022-11-08 22:32:42 +01:00
2022-11-08 21:04:41 +01:00

@strudel.cycles/transpiler

This package contains a JS code transpiler with the following features:

  • add locations of mini notation strings (double quoted or backticked) for highlighting
  • converts pseudo note variables to note strings
  • adds return statement to the last expression

The transpiler is written with acorn and aims to replace the @strudel.cycles/eval package, which uses shift-ast.

Install

npm i @strudel.cycles/transpiler

Use

import { transpiler } from '@strudel.cycles/core';
import { evaluate } from '@strudel.cycles/core';

transpiler('note("c3 [e3,g3]")', { wrapAsync: false, addReturn: false, simpleLocs: true });
/* mini('c3 [e3,g3]').withMiniLocation(7,17) */

evaluate(note('c3 [e3,g3]'), transpiler); // returns pattern of above code