xenharmonic-devs / sonic-weave

The SonicWeave DSL for manipulating musical frequencies, ratios and equal temperaments
MIT License
4 stars 4 forks source link

MOS syntax #312

Closed frostburn closed 2 months ago

frostburn commented 2 months ago

MOS declaration

MOS = 3L 4s, 5|1, L = 9/8

The mode defaults to brightest. If the size of L or s is omitted the other is inferred based on stacking to an octave. The whole pattern may also be given. 2121211 gives everything assuming stacking to an octave. 21212<3> for other equaves. 10_7_10_7<3/2> for separating multi-digit edosteps. Abstract pattern LsLsLss needs declaration for L or s. If the pattern is not MOS lecture the user.

Absolute pitches:

J.4
J&4
K@4
K.4
Ke4
La4
L.4
M.4
^M.4 // Are you gonna temper that too?
...

Relative intervals:

P0ms
m1ms
M1ms
d2ms
P2ms
vP2ms // No change if untempered.
...
A5ms
P7ms
arseniiv commented 2 months ago

Will probably be useful to be able to specify not just L and/or s, but alternatively L:s (as a bonus, s:L if it seems more useful to the user). This would also need reserving grammar.