-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement retunable primes #63
base: main
Are you sure you want to change the base?
Conversation
…instead of wrapped
Tested & ready for review @dxinteractive |
Hey @euwbah - I'm so sorry I missed this for so long! Thank you for putting all this effort in, including basic housekeeping that I haven't got around to. I'll review and leave some comments, but for the most part it looks great! |
Install npm and yarn first. | ||
|
||
```bash | ||
yarn lerna init |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for including these! Apologies for not having build instructions - I didn't originally intend for this to be an open source project so I'm been slack on that front. My hidden intent is that yarn prep
should execute everything required to prepare the project - if you could wrap these build steps up inside of yarn prep
that would be fantastic.
yarn lerna run build | ||
|
||
# serve webapp | ||
serve -s packages/xenpaper-app/build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I might suggest cd packages/xenpaper-app && yarn start
, as it'll spin up a local dev environment with hot relaoding courtesy of create react app. Even better a "start": "yarn lerna run start",
would be even better - the developer-facing command would then become yarn start
.
|
||
export const Setter = Any(SetBpm, SetBms, SetSubdivision, SetOsc, SetEnv, SetRuler); | ||
export const Setter = Any(SetBpm, SetBms, SetSubdivision, SetOsc, SetEnv, SetRuler, SetPrimes); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be possible to add retunable primes to the grammar using {primes: }
rather than setters ()
? The reason being that syntaxes using {
are intended for scale modification, and (
is intended for all the non-scale settings. Everything else about this syntax looks great.
Implements #62 using the following syntax:
Where
a b c ...
are interval tunings of consecutive primes 2/1, 3/1, 5/1, 7/1, 11/1, etc...The example below will play
the
primes:
token is implemented as a Setter under the typeSetPrimes
, so it can be chained together with other setters in aSetterGroup
, e.g.(primes: 12\12 19\12 28\12 34\12; osc:square8) 4:5:6:7
More examples and details are written in the 'info' tab. A simple parsing test was added to
grammar.test.ts
under 'should parse sequence with primes tuning setter'.Additional fixes: