arg? — optional arg; arg* — zero or more args; arg+ — one or more args; argenv — looked up in the environ; arg = val — arg with default; :: type — argument type; [*-arg arg] — default from environ values name-arg followed by arg

word to include a tag containing the word, -word to exclude. Prefix with m: for modules, kind:(note|control|pitch|val) for call kinds, or type:(val|generator|transformer) for call types.
You can also search by %control, arg default (name-arg), and call kind (note, control, ...).
Search for calls with the browser's text search, "call --" to search by binding, "-- call" to search by name.
Common tags are documented at 'Derive.Call.Tags'.

x

Scales

pattern:alpha: [0-9][a-s] -- pitch
scale : scale val
pattern:beta: [0-9][a-s] -- pitch
pattern:gamma: [0-9][a-I] -- pitch
This is a family of scales invented by Wendy Carlos. They don't repeat at the octave, so they support diatonic transposition only within a single octave.
Since diatonic transposition won't get you up an octave, the t-oct control will transpose by octaves.
The a0-nn control sets the NoteNumber of a0. If it's not set, it defaults to 0, which is c-1.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:bp: [-1-9][abcdefghi](bb|b|n|#|x)? -- pitch
scale : scale val
Bohlen-Pierce is derived from 3 instead of 2, and thus has a "tritave" instead of an octave.
Scales in the "twelve" family use European style note naming. That is, note names look like octave-letter-accidentals like "4c#". They have a notion of a "layout", which is a pattern of half and whole steps, e.g. the piano layout, and a key, which is a subset of notes from the scale along with a preferred spelling for them. The rules of how enharmonic spelling works are complicated, and documented in 'Derive.Scale.Theory'. The key is read from the key env var, and each scale has a list of keys it will accept.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: -1a# to 8h#
- default key: a-lambda
- keys: (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-dur-1, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-dur-2, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-gamma, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-harmonic, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-lambda, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-moll-1, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-moll-2, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-walker-1, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-walker-2, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-walker-a, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-walker-b, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-x1, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-x2, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-x3, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-x4, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-x5, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-x6, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb|h#|h|hb|i#|i|ib)-x7
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:edo: [-1-9][abcdefghijklmnopqrstuvwxy](bb|b|n|#|x)? -- pitch
scale : scale val
Construct a scale from equal divisions of the octave. The number of divisions are given by edo-divisions. The intervals that correspond to diatonic notes are from edo-intervals, which defaults to all 1s. Because the diatonic intervals are given explicitly, there are no keys, and because the notes per octave is variable, diatonic notes start from A, rather than the conventional C.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:harmonic: [一二三四五六七八久十]-?[0-9]+ -- pitch
scale : scale val
The harmonic series. The NN frequency of 一1 is set by unity, and defaults to 0nn. This puts 五1 at middle C, which is where 四1 would normally be, but since the first degree is the octave, putting 四1 at middle C would get too high too quickly.
Negative numbers are the nth undertone, i.e. 1 / abs n.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:hex: [-1-9][abcdef](bb|b|n|#|x)? -- pitch
scale : scale val
pattern:hex-r: [-1-9]-[1-6](bb|b|n|#|x)? -- pitch
This is a family of 6 note just scales, based on Erv Wilson's hexanies. The keys look like a-159b-1. The a means that in absolute naming, unity is on a (in relative naming, unity is always 1). 159b means the hexany is built on 1, 5, 9, 11. The trailing 1 means unity is assigned to the first ratio produced. For example, if you modulate to the 5th scale degree, you would change the key to a-159b-6 and set %just-base accordingly.

Defaults: just-base: 261.625, key: (Key 0 [1, 7/6, 5/4, 35/24, 5/3, 7/4])

Just scales are tuned by ratios from a base frequency, taken from the just-base control, as hz. Typically the "key" will select the set of ratios used, dependent on the scale.
Just scales recognize accidentals as an offset by a fixed ratio, but are inherently diatonic, so chromatic transposition is the same as diatonic transposition.
If the scale has tuning variations, they are set with the tuning env var.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- (a|b|c|d|e|f)-1357-1: 1, 7/6, 5/4, 35/24, 5/3, 7/4
- (a|b|c|d|e|f)-1357-2: 1, 21/20, 6/5, 7/5, 3/2, 7/4
- (a|b|c|d|e|f)-1357-3: 1, 15/14, 5/4, 10/7, 3/2, 12/7
- (a|b|c|d|e|f)-1357-4: 1, 7/6, 4/3, 7/5, 8/5, 28/15
- (a|b|c|d|e|f)-1357-5: 1, 8/7, 4/3, 10/7, 5/3, 40/21
- (a|b|c|d|e|f)-1357-6: 1, 8/7, 6/5, 48/35, 8/5, 12/7
- (a|b|c|d|e|f)-1359-1: 1, 9/8, 5/4, 3/2, 5/3, 15/8
- (a|b|c|d|e|f)-1359-2: 1, 9/8, 6/5, 27/20, 3/2, 9/5
- (a|b|c|d|e|f)-1359-3: 1, 10/9, 5/4, 4/3, 3/2, 5/3
- (a|b|c|d|e|f)-1359-4: 1, 6/5, 4/3, 3/2, 8/5, 9/5
- (a|b|c|d|e|f)-1359-5: 1, 10/9, 4/3, 40/27, 5/3, 16/9
- (a|b|c|d|e|f)-1359-6: 1, 16/15, 6/5, 4/3, 8/5, 16/9
- (a|b|c|d|e|f)-135b-1: 1, 55/48, 5/4, 11/8, 5/3, 11/6
- (a|b|c|d|e|f)-135b-2: 1, 11/10, 6/5, 11/8, 3/2, 33/20
- (a|b|c|d|e|f)-135b-3: 1, 12/11, 5/4, 15/11, 3/2, 20/11
- (a|b|c|d|e|f)-135b-4: 1, 11/10, 4/3, 22/15, 8/5, 11/6
- (a|b|c|d|e|f)-135b-5: 1, 40/33, 4/3, 16/11, 5/3, 20/11
- (a|b|c|d|e|f)-135b-6: 1, 12/11, 6/5, 16/11, 8/5, 96/55
- (a|b|c|d|e|f)-135d-1: 1, 13/12, 5/4, 65/48, 13/8, 5/3
- (a|b|c|d|e|f)-135d-2: 1, 6/5, 13/10, 3/2, 13/8, 39/20
- (a|b|c|d|e|f)-135d-3: 1, 15/13, 5/4, 3/2, 20/13, 24/13
- (a|b|c|d|e|f)-135d-4: 1, 13/12, 13/10, 4/3, 8/5, 26/15
- (a|b|c|d|e|f)-135d-5: 1, 40/39, 16/13, 4/3, 20/13, 5/3
- (a|b|c|d|e|f)-135d-6: 1, 6/5, 16/13, 96/65, 8/5, 24/13
- (a|b|c|d|e|f)-1379-1: 1, 9/8, 7/6, 21/16, 3/2, 7/4
- (a|b|c|d|e|f)-1379-2: 1, 9/8, 9/7, 3/2, 12/7, 27/14
- (a|b|c|d|e|f)-1379-3: 1, 7/6, 4/3, 3/2, 14/9, 7/4
- (a|b|c|d|e|f)-1379-4: 1, 8/7, 9/7, 4/3, 3/2, 12/7
- (a|b|c|d|e|f)-1379-5: 1, 28/27, 7/6, 4/3, 14/9, 16/9
- (a|b|c|d|e|f)-1379-6: 1, 8/7, 4/3, 32/21, 12/7, 16/9
- (a|b|c|d|e|f)-137b-1: 1, 7/6, 11/8, 77/48, 7/4, 11/6
- (a|b|c|d|e|f)-137b-2: 1, 33/28, 11/8, 3/2, 11/7, 12/7
- (a|b|c|d|e|f)-137b-3: 1, 12/11, 14/11, 3/2, 7/4, 21/11
- (a|b|c|d|e|f)-137b-4: 1, 22/21, 8/7, 4/3, 11/7, 11/6
- (a|b|c|d|e|f)-137b-5: 1, 7/6, 14/11, 4/3, 16/11, 56/33
- (a|b|c|d|e|f)-137b-6: 1, 12/11, 8/7, 96/77, 16/11, 12/7
- (a|b|c|d|e|f)-137d-1: 1, 13/12, 7/6, 13/8, 7/4, 91/48
- (a|b|c|d|e|f)-137d-2: 1, 39/28, 3/2, 13/8, 12/7, 13/7
- (a|b|c|d|e|f)-137d-3: 1, 14/13, 3/2, 21/13, 7/4, 24/13
- (a|b|c|d|e|f)-137d-4: 1, 13/12, 8/7, 26/21, 4/3, 13/7
- (a|b|c|d|e|f)-137d-5: 1, 14/13, 7/6, 16/13, 4/3, 56/39
- (a|b|c|d|e|f)-137d-6: 1, 96/91, 8/7, 16/13, 12/7, 24/13
- (a|b|c|d|e|f)-139b-1: 1, 33/32, 9/8, 11/8, 3/2, 11/6
- (a|b|c|d|e|f)-139b-2: 1, 11/9, 4/3, 11/8, 3/2, 11/6
- (a|b|c|d|e|f)-139b-3: 1, 12/11, 9/8, 27/22, 3/2, 18/11
- (a|b|c|d|e|f)-139b-4: 1, 11/9, 4/3, 44/27, 16/9, 11/6
- (a|b|c|d|e|f)-139b-5: 1, 12/11, 4/3, 16/11, 3/2, 18/11
- (a|b|c|d|e|f)-139b-6: 1, 12/11, 4/3, 16/11, 16/9, 64/33
- (a|b|c|d|e|f)-139d-1: 1, 13/12, 9/8, 39/32, 3/2, 13/8
- (a|b|c|d|e|f)-139d-2: 1, 13/12, 4/3, 13/9, 3/2, 13/8
- (a|b|c|d|e|f)-139d-3: 1, 27/26, 9/8, 18/13, 3/2, 24/13
- (a|b|c|d|e|f)-139d-4: 1, 13/12, 4/3, 13/9, 16/9, 52/27
- (a|b|c|d|e|f)-139d-5: 1, 16/13, 4/3, 18/13, 3/2, 24/13
- (a|b|c|d|e|f)-139d-6: 1, 16/13, 4/3, 64/39, 16/9, 24/13
- (a|b|c|d|e|f)-13bd-1: 1, 13/12, 11/8, 143/96, 13/8, 11/6
- (a|b|c|d|e|f)-13bd-2: 1, 12/11, 13/11, 3/2, 13/8, 39/22
- (a|b|c|d|e|f)-13bd-3: 1, 33/26, 11/8, 3/2, 22/13, 24/13
- (a|b|c|d|e|f)-13bd-4: 1, 13/12, 13/11, 4/3, 16/11, 52/33
- (a|b|c|d|e|f)-13bd-5: 1, 44/39, 16/13, 4/3, 22/13, 11/6
- (a|b|c|d|e|f)-13bd-6: 1, 12/11, 16/13, 192/143, 16/11, 24/13
- (a|b|c|d|e|f)-1579-1: 1, 9/8, 7/5, 63/40, 7/4, 9/5
- (a|b|c|d|e|f)-1579-2: 1, 9/8, 5/4, 9/7, 10/7, 45/28
- (a|b|c|d|e|f)-1579-3: 1, 10/9, 5/4, 14/9, 7/4, 35/18
- (a|b|c|d|e|f)-1579-4: 1, 36/35, 8/7, 9/7, 8/5, 9/5
- (a|b|c|d|e|f)-1579-5: 1, 56/45, 7/5, 14/9, 8/5, 16/9
- (a|b|c|d|e|f)-1579-6: 1, 10/9, 8/7, 80/63, 10/7, 16/9
- (a|b|c|d|e|f)-157b-1: 1, 11/10, 11/8, 7/5, 7/4, 77/40
- (a|b|c|d|e|f)-157b-2: 1, 5/4, 11/8, 10/7, 11/7, 55/28
- (a|b|c|d|e|f)-157b-3: 1, 5/4, 14/11, 35/22, 7/4, 20/11
- (a|b|c|d|e|f)-157b-4: 1, 11/10, 8/7, 44/35, 11/7, 8/5
- (a|b|c|d|e|f)-157b-5: 1, 56/55, 14/11, 7/5, 16/11, 8/5
- (a|b|c|d|e|f)-157b-6: 1, 80/77, 8/7, 10/7, 16/11, 20/11
- (a|b|c|d|e|f)-157d-1: 1, 91/80, 13/10, 7/5, 13/8, 7/4
- (a|b|c|d|e|f)-157d-2: 1, 65/56, 5/4, 10/7, 13/8, 13/7
- (a|b|c|d|e|f)-157d-3: 1, 14/13, 5/4, 35/26, 20/13, 7/4
- (a|b|c|d|e|f)-157d-4: 1, 8/7, 13/10, 52/35, 8/5, 13/7
- (a|b|c|d|e|f)-157d-5: 1, 14/13, 16/13, 7/5, 8/5, 112/65
- (a|b|c|d|e|f)-157d-6: 1, 8/7, 16/13, 10/7, 20/13, 160/91
- (a|b|c|d|e|f)-159b-1: 1, 11/10, 9/8, 99/80, 11/8, 9/5
- (a|b|c|d|e|f)-159b-2: 1, 10/9, 11/9, 5/4, 11/8, 55/36
- (a|b|c|d|e|f)-159b-3: 1, 45/44, 9/8, 5/4, 18/11, 20/11
- (a|b|c|d|e|f)-159b-4: 1, 11/10, 11/9, 8/5, 16/9, 88/45
- (a|b|c|d|e|f)-159b-5: 1, 72/55, 16/11, 8/5, 18/11, 9/5
- (a|b|c|d|e|f)-159b-6: 1, 10/9, 16/11, 160/99, 16/9, 20/11
- (a|b|c|d|e|f)-159d-1: 1, 9/8, 13/10, 117/80, 13/8, 9/5
- (a|b|c|d|e|f)-159d-2: 1, 10/9, 5/4, 13/9, 13/8, 65/36
- (a|b|c|d|e|f)-159d-3: 1, 9/8, 5/4, 18/13, 20/13, 45/26
- (a|b|c|d|e|f)-159d-4: 1, 52/45, 13/10, 13/9, 8/5, 16/9
- (a|b|c|d|e|f)-159d-5: 1, 72/65, 16/13, 18/13, 8/5, 9/5
- (a|b|c|d|e|f)-159d-6: 1, 10/9, 16/13, 160/117, 20/13, 16/9
- (a|b|c|d|e|f)-15bd-1: 1, 11/10, 13/10, 11/8, 13/8, 143/80
- (a|b|c|d|e|f)-15bd-2: 1, 13/11, 5/4, 65/44, 13/8, 20/11
- (a|b|c|d|e|f)-15bd-3: 1, 55/52, 5/4, 11/8, 20/13, 22/13
- (a|b|c|d|e|f)-15bd-4: 1, 13/11, 13/10, 16/11, 8/5, 104/55
- (a|b|c|d|e|f)-15bd-5: 1, 11/10, 16/13, 88/65, 8/5, 22/13
- (a|b|c|d|e|f)-15bd-6: 1, 160/143, 16/13, 16/11, 20/13, 20/11
- (a|b|c|d|e|f)-179b-1: 1, 9/8, 9/7, 11/8, 11/7, 99/56
- (a|b|c|d|e|f)-179b-2: 1, 77/72, 11/9, 11/8, 14/9, 7/4
- (a|b|c|d|e|f)-179b-3: 1, 9/8, 14/11, 63/44, 18/11, 7/4
- (a|b|c|d|e|f)-179b-4: 1, 8/7, 11/9, 88/63, 11/7, 16/9
- (a|b|c|d|e|f)-179b-5: 1, 8/7, 9/7, 16/11, 18/11, 144/77
- (a|b|c|d|e|f)-179b-6: 1, 112/99, 14/11, 16/11, 14/9, 16/9
- (a|b|c|d|e|f)-179d-1: 1, 117/112, 9/8, 9/7, 13/8, 13/7
- (a|b|c|d|e|f)-179d-2: 1, 91/72, 13/9, 14/9, 13/8, 7/4
- (a|b|c|d|e|f)-179d-3: 1, 14/13, 9/8, 63/52, 18/13, 7/4
- (a|b|c|d|e|f)-179d-4: 1, 8/7, 13/9, 104/63, 16/9, 13/7
- (a|b|c|d|e|f)-179d-5: 1, 8/7, 16/13, 9/7, 18/13, 144/91
- (a|b|c|d|e|f)-179d-6: 1, 14/13, 16/13, 14/9, 16/9, 224/117
- (a|b|c|d|e|f)-17bd-1: 1, 143/112, 11/8, 11/7, 13/8, 13/7
- (a|b|c|d|e|f)-17bd-2: 1, 91/88, 13/11, 14/11, 13/8, 7/4
- (a|b|c|d|e|f)-17bd-3: 1, 14/13, 11/8, 77/52, 22/13, 7/4
- (a|b|c|d|e|f)-17bd-4: 1, 8/7, 13/11, 104/77, 16/11, 13/7
- (a|b|c|d|e|f)-17bd-5: 1, 8/7, 16/13, 11/7, 22/13, 176/91
- (a|b|c|d|e|f)-17bd-6: 1, 14/13, 16/13, 14/11, 16/11, 224/143
- (a|b|c|d|e|f)-19bd-1: 1, 11/9, 11/8, 13/9, 13/8, 143/72
- (a|b|c|d|e|f)-19bd-2: 1, 9/8, 13/11, 117/88, 13/8, 18/11
- (a|b|c|d|e|f)-19bd-3: 1, 9/8, 11/8, 18/13, 22/13, 99/52
- (a|b|c|d|e|f)-19bd-4: 1, 104/99, 13/11, 13/9, 16/11, 16/9
- (a|b|c|d|e|f)-19bd-5: 1, 11/9, 16/13, 176/117, 22/13, 16/9
- (a|b|c|d|e|f)-19bd-6: 1, 144/143, 16/13, 18/13, 16/11, 18/11
- (a|b|c|d|e|f)-3579-1: 1, 21/20, 7/6, 7/5, 3/2, 9/5
- (a|b|c|d|e|f)-3579-2: 1, 15/14, 9/7, 10/7, 3/2, 5/3
- (a|b|c|d|e|f)-3579-3: 1, 10/9, 7/6, 35/27, 14/9, 5/3
- (a|b|c|d|e|f)-3579-4: 1, 6/5, 9/7, 54/35, 12/7, 9/5
- (a|b|c|d|e|f)-3579-5: 1, 6/5, 4/3, 7/5, 14/9, 28/15
- (a|b|c|d|e|f)-3579-6: 1, 10/9, 4/3, 10/7, 12/7, 40/21
- (a|b|c|d|e|f)-357b-1: 1, 11/10, 7/6, 77/60, 7/5, 11/6
- (a|b|c|d|e|f)-357b-2: 1, 55/42, 10/7, 11/7, 5/3, 11/6
- (a|b|c|d|e|f)-357b-3: 1, 35/33, 7/6, 14/11, 5/3, 20/11
- (a|b|c|d|e|f)-357b-4: 1, 11/10, 6/5, 11/7, 12/7, 66/35
- (a|b|c|d|e|f)-357b-5: 1, 12/11, 6/5, 14/11, 7/5, 84/55
- (a|b|c|d|e|f)-357b-6: 1, 12/11, 10/7, 120/77, 12/7, 20/11
- (a|b|c|d|e|f)-357d-1: 1, 13/12, 7/6, 13/10, 7/5, 91/60
- (a|b|c|d|e|f)-357d-2: 1, 13/12, 10/7, 65/42, 5/3, 13/7
- (a|b|c|d|e|f)-357d-3: 1, 14/13, 7/6, 20/13, 5/3, 70/39
- (a|b|c|d|e|f)-357d-4: 1, 39/35, 6/5, 13/10, 12/7, 13/7
- (a|b|c|d|e|f)-357d-5: 1, 14/13, 6/5, 84/65, 7/5, 24/13
- (a|b|c|d|e|f)-357d-6: 1, 120/91, 10/7, 20/13, 12/7, 24/13
- (a|b|c|d|e|f)-359b-1: 1, 11/10, 3/2, 33/20, 9/5, 11/6
- (a|b|c|d|e|f)-359b-2: 1, 55/54, 10/9, 11/9, 5/3, 11/6
- (a|b|c|d|e|f)-359b-3: 1, 15/11, 3/2, 18/11, 5/3, 20/11
- (a|b|c|d|e|f)-359b-4: 1, 11/10, 6/5, 11/9, 4/3, 22/15
- (a|b|c|d|e|f)-359b-5: 1, 12/11, 6/5, 18/11, 9/5, 108/55
- (a|b|c|d|e|f)-359b-6: 1, 12/11, 10/9, 40/33, 4/3, 20/11
- (a|b|c|d|e|f)-359d-1: 1, 13/12, 13/10, 3/2, 9/5, 39/20
- (a|b|c|d|e|f)-359d-2: 1, 13/12, 10/9, 65/54, 13/9, 5/3
- (a|b|c|d|e|f)-359d-3: 1, 15/13, 18/13, 3/2, 20/13, 5/3
- (a|b|c|d|e|f)-359d-4: 1, 6/5, 13/10, 4/3, 13/9, 26/15
- (a|b|c|d|e|f)-359d-5: 1, 6/5, 18/13, 108/65, 9/5, 24/13
- (a|b|c|d|e|f)-359d-6: 1, 40/39, 10/9, 4/3, 20/13, 24/13
- (a|b|c|d|e|f)-35bd-1: 1, 13/12, 11/10, 143/120, 13/10, 11/6
- (a|b|c|d|e|f)-35bd-2: 1, 13/12, 13/11, 5/3, 20/11, 65/33
- (a|b|c|d|e|f)-35bd-3: 1, 55/39, 20/13, 5/3, 22/13, 11/6
- (a|b|c|d|e|f)-35bd-4: 1, 12/11, 13/11, 6/5, 13/10, 78/55
- (a|b|c|d|e|f)-35bd-5: 1, 66/65, 11/10, 6/5, 22/13, 24/13
- (a|b|c|d|e|f)-35bd-6: 1, 12/11, 20/13, 240/143, 20/11, 24/13
- (a|b|c|d|e|f)-379b-1: 1, 33/28, 9/7, 3/2, 11/7, 11/6
- (a|b|c|d|e|f)-379b-2: 1, 7/6, 11/9, 77/54, 14/9, 11/6
- (a|b|c|d|e|f)-379b-3: 1, 7/6, 14/11, 3/2, 18/11, 21/11
- (a|b|c|d|e|f)-379b-4: 1, 22/21, 11/9, 4/3, 11/7, 12/7
- (a|b|c|d|e|f)-379b-5: 1, 12/11, 9/7, 108/77, 18/11, 12/7
- (a|b|c|d|e|f)-379b-6: 1, 12/11, 14/11, 4/3, 14/9, 56/33
- (a|b|c|d|e|f)-379d-1: 1, 13/12, 9/7, 39/28, 3/2, 13/7
- (a|b|c|d|e|f)-379d-2: 1, 13/12, 7/6, 13/9, 14/9, 91/54
- (a|b|c|d|e|f)-379d-3: 1, 14/13, 7/6, 18/13, 3/2, 21/13
- (a|b|c|d|e|f)-379d-4: 1, 26/21, 4/3, 13/9, 12/7, 13/7
- (a|b|c|d|e|f)-379d-5: 1, 108/91, 9/7, 18/13, 12/7, 24/13
- (a|b|c|d|e|f)-379d-6: 1, 14/13, 4/3, 56/39, 14/9, 24/13
- (a|b|c|d|e|f)-37bd-1: 1, 13/12, 11/7, 143/84, 11/6, 13/7
- (a|b|c|d|e|f)-37bd-2: 1, 13/12, 7/6, 13/11, 14/11, 91/66
- (a|b|c|d|e|f)-37bd-3: 1, 14/13, 7/6, 22/13, 11/6, 77/39
- (a|b|c|d|e|f)-37bd-4: 1, 78/77, 12/11, 13/11, 12/7, 13/7
- (a|b|c|d|e|f)-37bd-5: 1, 132/91, 11/7, 22/13, 12/7, 24/13
- (a|b|c|d|e|f)-37bd-6: 1, 14/13, 12/11, 168/143, 14/11, 24/13
- (a|b|c|d|e|f)-39bd-1: 1, 13/12, 11/9, 143/108, 13/9, 11/6
- (a|b|c|d|e|f)-39bd-2: 1, 13/12, 13/11, 3/2, 18/11, 39/22
- (a|b|c|d|e|f)-39bd-3: 1, 33/26, 18/13, 3/2, 22/13, 11/6
- (a|b|c|d|e|f)-39bd-4: 1, 12/11, 13/11, 4/3, 13/9, 52/33
- (a|b|c|d|e|f)-39bd-5: 1, 44/39, 11/9, 4/3, 22/13, 24/13
- (a|b|c|d|e|f)-39bd-6: 1, 12/11, 18/13, 216/143, 18/11, 24/13
- (a|b|c|d|e|f)-579b-1: 1, 11/10, 9/7, 99/70, 11/7, 9/5
- (a|b|c|d|e|f)-579b-2: 1, 11/10, 11/9, 7/5, 14/9, 77/45
- (a|b|c|d|e|f)-579b-3: 1, 63/55, 14/11, 7/5, 18/11, 9/5
- (a|b|c|d|e|f)-579b-4: 1, 10/9, 11/9, 10/7, 11/7, 110/63
- (a|b|c|d|e|f)-579b-5: 1, 90/77, 9/7, 10/7, 18/11, 20/11
- (a|b|c|d|e|f)-579b-6: 1, 10/9, 14/11, 140/99, 14/9, 20/11
- (a|b|c|d|e|f)-579d-1: 1, 9/7, 13/10, 117/70, 9/5, 13/7
- (a|b|c|d|e|f)-579d-2: 1, 91/90, 13/10, 7/5, 13/9, 14/9
- (a|b|c|d|e|f)-579d-3: 1, 14/13, 18/13, 7/5, 9/5, 126/65
- (a|b|c|d|e|f)-579d-4: 1, 65/63, 10/9, 10/7, 13/9, 13/7
- (a|b|c|d|e|f)-579d-5: 1, 9/7, 18/13, 10/7, 20/13, 180/91
- (a|b|c|d|e|f)-579d-6: 1, 14/13, 10/9, 140/117, 20/13, 14/9
- (a|b|c|d|e|f)-57bd-1: 1, 143/140, 11/10, 13/10, 11/7, 13/7
- (a|b|c|d|e|f)-57bd-2: 1, 13/11, 14/11, 13/10, 7/5, 91/55
- (a|b|c|d|e|f)-57bd-3: 1, 14/13, 11/10, 77/65, 7/5, 22/13
- (a|b|c|d|e|f)-57bd-4: 1, 13/11, 10/7, 130/77, 20/11, 13/7
- (a|b|c|d|e|f)-57bd-5: 1, 110/91, 10/7, 20/13, 11/7, 22/13
- (a|b|c|d|e|f)-57bd-6: 1, 14/13, 14/11, 20/13, 20/11, 280/143
- (a|b|c|d|e|f)-59bd-1: 1, 11/10, 11/9, 13/10, 13/9, 143/90
- (a|b|c|d|e|f)-59bd-2: 1, 117/110, 13/11, 13/10, 18/11, 9/5
- (a|b|c|d|e|f)-59bd-3: 1, 11/10, 18/13, 99/65, 22/13, 9/5
- (a|b|c|d|e|f)-59bd-4: 1, 10/9, 13/11, 130/99, 13/9, 20/11
- (a|b|c|d|e|f)-59bd-5: 1, 10/9, 11/9, 20/13, 22/13, 220/117
- (a|b|c|d|e|f)-59bd-6: 1, 180/143, 18/13, 20/13, 18/11, 20/11
- (a|b|c|d|e|f)-79bd-1: 1, 143/126, 11/9, 13/9, 11/7, 13/7
- (a|b|c|d|e|f)-79bd-2: 1, 13/11, 9/7, 117/77, 18/11, 13/7
- (a|b|c|d|e|f)-79bd-3: 1, 99/91, 9/7, 18/13, 11/7, 22/13
- (a|b|c|d|e|f)-79bd-4: 1, 13/11, 14/11, 13/9, 14/9, 182/99
- (a|b|c|d|e|f)-79bd-5: 1, 14/13, 11/9, 154/117, 14/9, 22/13
- (a|b|c|d|e|f)-79bd-6: 1, 14/13, 14/11, 18/13, 18/11, 252/143
Emit the pitch of a scale degree.
  • interval* :: Signal or Str [] — Multiply this interval with the note's frequency. Negative numbers divide, so while 3/2 goes up a fifth, -3/2 goes down a fifth. Can be either a ratio or a symbol drawn from: M2, M2-, M3, M6, M7, P4, P5, m2, m2-, m3, m6, m7, tt, tt11, tt7+, tt7-, wolf
pattern:interpolate: same as from scale -- pitch
scale : scale val
Emit a pitch between two scales. The scales are in the scale-from and scale-to environ values, and keys are from key-from and key-to. If scale-to isn't set, it defaults to scale-from. The scale-at control ranges from 0 to 1 and controls the interpolation between the scales. For this to work, the scales must have the same degree names, since there's no way to manually specify a correspondence between scale degrees.
  • arg* :: Val [] — passed to from and to scales
pattern:just: [-1-9][cdefgab](bb|b|n|#|x)? -- pitch
scale : scale val
pattern:just-r: [-1-9][srgmpdn](bb|b|n|#|x)? -- pitch
7-note just scale.
7-note scales in just intonation.
They are fundamentally 7 note scales because they use a A-G or SRGMPDN. While they support sharps and flats and have a piano-style layout, accidentals are implemented as simple ratio offsets from base pitch. Extending to more flexible notions of just intonation would require generalizing the input mapping and pitch notation.
Keys look like c-maj, where c is the tonic and maj selects the ratios to use. For absolute notation, the tonic determines where the scale starts, while for relative notation, the tonic determines only which MIDI key maps to the first scale degree. So for the ASCII kbd where the input is also relative, the tonic is irrelevant.
Defaults: just-base: 261.625, key: (Key 0 [limit-5: 1, 9/8, 5/4, 4/3, 3/2, 5/3, 15/8; limit-7: 1, 8/7, 5/4, 4/3, 3/2, 5/3, 15/8]), tuning: limit-5

Just scales are tuned by ratios from a base frequency, taken from the just-base control, as hz. Typically the "key" will select the set of ratios used, dependent on the scale.
Just scales recognize accidentals as an offset by a fixed ratio, but are inherently diatonic, so chromatic transposition is the same as diatonic transposition.
If the scale has tuning variations, they are set with the tuning env var.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- (a|b|c|d|e|f|g)-dorian: limit-5: 1, 9/8, 6/5, 4/3, 3/2, 5/3, 9/5; limit-7: 1, 8/7, 6/5, 4/3, 3/2, 5/3, 7/4
- (a|b|c|d|e|f|g)-locrian: limit-5: 1, 16/15, 6/5, 4/3, 45/32, 8/5, 9/5; limit-7: 1, 15/14, 6/5, 4/3, 7/5, 8/5, 7/4
- (a|b|c|d|e|f|g)-lydian: limit-5: 1, 9/8, 5/4, 45/32, 3/2, 5/3, 15/8; limit-7: 1, 8/7, 5/4, 7/5, 3/2, 5/3, 15/8
- (a|b|c|d|e|f|g)-maj: limit-5: 1, 9/8, 5/4, 4/3, 3/2, 5/3, 15/8; limit-7: 1, 8/7, 5/4, 4/3, 3/2, 5/3, 15/8
- (a|b|c|d|e|f|g)-min: limit-5: 1, 9/8, 6/5, 4/3, 3/2, 8/5, 9/5; limit-7: 1, 8/7, 6/5, 4/3, 3/2, 8/5, 7/4
- (a|b|c|d|e|f|g)-mixolydian: limit-5: 1, 9/8, 5/4, 4/3, 3/2, 5/3, 9/5; limit-7: 1, 8/7, 5/4, 4/3, 3/2, 5/3, 7/4
- (a|b|c|d|e|f|g)-phrygian: limit-5: 1, 16/15, 6/5, 4/3, 3/2, 8/5, 9/5; limit-7: 1, 15/14, 6/5, 4/3, 3/2, 8/5, 7/4
Emit the pitch of a scale degree.
  • interval* :: Signal or Str [] — Multiply this interval with the note's frequency. Negative numbers divide, so while 3/2 goes up a fifth, -3/2 goes down a fifth. Can be either a ratio or a symbol drawn from: M2, M2-, M3, M6, M7, P4, P5, m2, m2-, m3, m6, m7, tt, tt11, tt7+, tt7-, wolf
pattern:legong-b: [-1-9][1-9][᭦᭡᭢᭣᭤]#?(bb|b|n|#|x)? -- pitch
scale : scale val
Saih pelegongan, from my instruments.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: 3᭦ to 7᭦
- default key: selisir
- keys: baro, pengenter, pengenter-alit, selisir, slendro-gede, sunaren, tembung
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:legong-c: [-1-9][12356]|`[12356][.^]*`(bb|b|n|#|x)? -- pitch
scale : scale val
Saih pelegongan, from my instruments.
Use Javanese-style cipher notation.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: 1.. to 1^^
- default key: selisir
- keys: baro, pengenter, pengenter-alit, selisir, slendro-gede, sunaren, tembung
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:legong-kantilan-b: [-1-9][᭦᭡᭢᭣᭤]#?[_^-](bb|b|n|#|x)? -- pitch
scale : scale val
Saih pelegongan, from my instruments.
This is centered around the kantilan range.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: ᭡᭬ to ᭦᭫
- default key: selisir
- keys: baro, pengenter, pengenter-alit, selisir, slendro-gede, sunaren, tembung
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:legong-kantilan: [-1-9][ioeua]#?[_^-](bb|b|n|#|x)? -- pitch
scale : scale val
Saih pelegongan, from my instruments.
This is centered around the kantilan range.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: o_ to i^
- default key: selisir
- keys: baro, pengenter, pengenter-alit, selisir, slendro-gede, sunaren, tembung
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:legong-pemade-b: [-1-9][᭦᭡᭢᭣᭤]#?[_^-](bb|b|n|#|x)? -- pitch
scale : scale val
Saih pelegongan, from my instruments.
This is centered around the pemade range.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: ᭡᭬ to ᭦᭫
- default key: selisir
- keys: baro, pengenter, pengenter-alit, selisir, slendro-gede, sunaren, tembung
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:legong-pemade: [-1-9][ioeua]#?[_^-](bb|b|n|#|x)? -- pitch
scale : scale val
Saih pelegongan, from my instruments.
This is centered around the pemade range.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: o_ to i^
- default key: selisir
- keys: baro, pengenter, pengenter-alit, selisir, slendro-gede, sunaren, tembung
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:legong: [-1-9][1-9][ioeua]#?(bb|b|n|#|x)? -- pitch
scale : scale val
Saih pelegongan, from my instruments.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: 3i to 7i
- default key: selisir
- keys: baro, pengenter, pengenter-alit, selisir, slendro-gede, sunaren, tembung
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:make-just7: [-1-9][cdefgab](bb|b|n|#|x)? -- pitch
scale : scale val
pattern:make-just7-r: [-1-9][srgmpdn](bb|b|n|#|x)? -- pitch
Set just-ratios to make a custom scale, and just-intervals to select from it. The intervals default to replicate 7 1, and the number of ratios should be sum intervals - 1 (the initial 1/1 is implicit). Ratios can be a list, or one of limit-5, limit-7, and intervals can be a list or one of maj, dorian, phrygian, lydian, mixolydian, min, locrian, kanakanki, ratnangi, ganamurti, vanaspati, manavati, tanarupi, senavati, hanumatodi, dhenuka, natakapriya, kokilapriya, rupavati, gayakapriya, vakulabharanam, mayamalavagoula, chakravaham, suryakantam, hatakambhari, jhankaradhwani, natabhairavi, kiravani, kharaharapriya, gourimanohari, varunapriya, mararanjani, charukesi, sarasangi, harikambhoji, dheerashankarabharanam, naganandini, yagapriya, ragavardhini, gangeyabhusani, vagadheeswari, sulini, chalanattai, salagam, jalarnavam, jhalavarali, navaneetam, pavani, raghupriya, gavambodhi, bhavapriya, subhapantuvarali, shadvigamargini, suvarnangi, divyamani, dhavalambari, namanarayani, kamavardhini, ramapriya, gamanasrama, viswambhari, syamalangi, shanmukhapriya, simhendramadhyamam, hemavati, dharamavai, nitimati, kantamani, rishabhapriya, latangi, vachaspati, mechakalyani, chitrambhari, sucharitra, jyotiswarupini, dhatuvardhini, nasikabhusani, kosalam, rasikapriya

7-note scales in just intonation.
They are fundamentally 7 note scales because they use a A-G or SRGMPDN. While they support sharps and flats and have a piano-style layout, accidentals are implemented as simple ratio offsets from base pitch. Extending to more flexible notions of just intonation would require generalizing the input mapping and pitch notation.
Keys look like c-maj, where c is the tonic and maj selects the ratios to use. For absolute notation, the tonic determines where the scale starts, while for relative notation, the tonic determines only which MIDI key maps to the first scale degree. So for the ASCII kbd where the input is also relative, the tonic is irrelevant.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
Emit the pitch of a scale degree.
  • interval* :: Signal or Str [] — Multiply this interval with the note's frequency. Negative numbers divide, so while 3/2 goes up a fifth, -3/2 goes down a fifth. Can be either a ratio or a symbol drawn from: M2, M2-, M3, M6, M7, P4, P5, m2, m2-, m3, m6, m7, tt, tt11, tt7+, tt7-, wolf
pattern:octa12-r: [-1-9][一二三四五六七八](bb|b|n|#|x)? -- pitch
scale : scale val
Octatonic scales as true 8 note scales, using notes from a-h. There are two variants: octa21 starts with a whole step, while octa12 starts with a half-step.
Scales in the "twelve" family use European style note naming. That is, note names look like octave-letter-accidentals like "4c#". They have a notion of a "layout", which is a pattern of half and whole steps, e.g. the piano layout, and a key, which is a subset of notes from the scale along with a preferred spelling for them. The rules of how enharmonic spelling works are complicated, and documented in 'Derive.Scale.Theory'. The key is read from the key env var, and each scale has a list of keys it will accept.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: -1一 to 9六
- default key: a
- keys: a, a#, ab, b, b#, bb, c, c#, cb, d, d#, db, e, e#, eb, f, f#, fb, g, g#, gb, h, h#, hb
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:octa12: [-1-9][abcdefgh](bb|b|n|#|x)? -- pitch
scale : scale val
Octatonic scales as true 8 note scales, using notes from a-h. There are two variants: octa21 starts with a whole step, while octa12 starts with a half-step.
Scales in the "twelve" family use European style note naming. That is, note names look like octave-letter-accidentals like "4c#". They have a notion of a "layout", which is a pattern of half and whole steps, e.g. the piano layout, and a key, which is a subset of notes from the scale along with a preferred spelling for them. The rules of how enharmonic spelling works are complicated, and documented in 'Derive.Scale.Theory'. The key is read from the key env var, and each scale has a list of keys it will accept.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: -1a to 9f
- default key: a
- keys: a, a#, ab, b, b#, bb, c, c#, cb, d, d#, db, e, e#, eb, f, f#, fb, g, g#, gb, h, h#, hb
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:octa21-r: [-1-9][一二三四五六七八](bb|b|n|#|x)? -- pitch
scale : scale val
Octatonic scales as true 8 note scales, using notes from a-h. There are two variants: octa21 starts with a whole step, while octa12 starts with a half-step.
Scales in the "twelve" family use European style note naming. That is, note names look like octave-letter-accidentals like "4c#". They have a notion of a "layout", which is a pattern of half and whole steps, e.g. the piano layout, and a key, which is a subset of notes from the scale along with a preferred spelling for them. The rules of how enharmonic spelling works are complicated, and documented in 'Derive.Scale.Theory'. The key is read from the key env var, and each scale has a list of keys it will accept.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: -1一 to 9五#
- default key: a
- keys: a, a#, ab, b, b#, bb, c, c#, cb, d, d#, db, e, e#, eb, f, f#, fb, g, g#, gb, h, h#, hb
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:octa21: [-1-9][abcdefgh](bb|b|n|#|x)? -- pitch
scale : scale val
Octatonic scales as true 8 note scales, using notes from a-h. There are two variants: octa21 starts with a whole step, while octa12 starts with a half-step.
Scales in the "twelve" family use European style note naming. That is, note names look like octave-letter-accidentals like "4c#". They have a notion of a "layout", which is a pattern of half and whole steps, e.g. the piano layout, and a key, which is a subset of notes from the scale along with a preferred spelling for them. The rules of how enharmonic spelling works are complicated, and documented in 'Derive.Scale.Theory'. The key is read from the key env var, and each scale has a list of keys it will accept.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: -1a to 9e#
- default key: a
- keys: a, a#, ab, b, b#, bb, c, c#, cb, d, d#, db, e, e#, eb, f, f#, fb, g, g#, gb, h, h#, hb
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:pelog-barang: [0-9][1-7] -- pitch
scale : scale val
pattern:pelog-barang-gender-barung: [1-7]|`[1-7][.^]+` -- pitch
pattern:pelog-barang-gender-panerus: [1-7]|`[1-7][.^]+` -- pitch
pattern:pelog-lima: [0-9][1-7] -- pitch
pattern:pelog-lima-gender-barung: [1-7]|`[1-7][.^]+` -- pitch
pattern:pelog-lima-gender-panerus: [1-7]|`[1-7][.^]+` -- pitch
pattern:pelog-nem: [0-9][1-7] -- pitch
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:raga: [-1-9][srgmpdn](bb|b|n|#|x)? -- pitch
scale : scale val
Carnatic ragas, from the melakarta system.
The "key" is actually the raga, e.g. key=shankarabharanam. Arohana and avarohana are not represented in the scale, so janya ragams look the same as their parent. The information is present, though, so it can be interpreted by various gamakam ornaments (not yet implemented though). TODO There is also currently no way to represent pitches which differ in arohana and avarohana.
Since latin orthography is inconsistent, they might be spelled slightly differently from how you expect.
Defaults: just-base: 261.625, key: (Key 0 [1, 9/8, 5/4, 4/3, 3/2, 5/3, 15/8])

Just scales are tuned by ratios from a base frequency, taken from the just-base control, as hz. Typically the "key" will select the set of ratios used, dependent on the scale.
Just scales recognize accidentals as an offset by a fixed ratio, but are inherently diatonic, so chromatic transposition is the same as diatonic transposition.
If the scale has tuning variations, they are set with the tuning env var.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- kanakanki: 1, 16/15, 9/8, 4/3, 3/2, 8/5, 5/3
- ratnangi: 1, 16/15, 9/8, 4/3, 3/2, 8/5, 9/5
- ganamurti: 1, 16/15, 9/8, 4/3, 3/2, 8/5, 15/8
- vanaspati: 1, 16/15, 9/8, 4/3, 3/2, 5/3, 9/5
- manavati: 1, 16/15, 9/8, 4/3, 3/2, 5/3, 15/8
- tanarupi: 1, 16/15, 9/8, 4/3, 3/2, 9/5, 15/8
- senavati: 1, 16/15, 6/5, 4/3, 3/2, 8/5, 5/3
- hanumatodi, todi: 1, 16/15, 6/5, 4/3, 3/2, 8/5, 9/5
- dhenuka: 1, 16/15, 6/5, 4/3, 3/2, 8/5, 15/8
- natakapriya: 1, 16/15, 6/5, 4/3, 3/2, 5/3, 9/5
- kokilapriya: 1, 16/15, 6/5, 4/3, 3/2, 5/3, 15/8
- rupavati: 1, 16/15, 6/5, 4/3, 3/2, 9/5, 15/8
- gayakapriya: 1, 16/15, 5/4, 4/3, 3/2, 8/5, 5/3
- vakulabharanam: 1, 16/15, 5/4, 4/3, 3/2, 8/5, 9/5
- mayamalavagoula: 1, 16/15, 5/4, 4/3, 3/2, 8/5, 15/8
- chakravaham: 1, 16/15, 5/4, 4/3, 3/2, 5/3, 9/5
- suryakantam: 1, 16/15, 5/4, 4/3, 3/2, 5/3, 15/8
- hatakambhari: 1, 16/15, 5/4, 4/3, 3/2, 9/5, 15/8
- jhankaradhwani: 1, 9/8, 6/5, 4/3, 3/2, 8/5, 5/3
- natabhairavi, bhairavi: 1, 9/8, 6/5, 4/3, 3/2, 8/5, 9/5
- kiravani: 1, 9/8, 6/5, 4/3, 3/2, 8/5, 15/8
- kharaharapriya: 1, 9/8, 6/5, 4/3, 3/2, 5/3, 9/5
- abheri, dhanasri: 1, 6/5, 4/3, 3/2, 9/5
- abhogi: 1, 9/8, 6/5, 4/3, 5/3
- sri: 1, 9/8, 4/3, 3/2, 9/5
- gourimanohari: 1, 9/8, 6/5, 4/3, 3/2, 5/3, 15/8
- varunapriya: 1, 9/8, 6/5, 4/3, 3/2, 9/5, 15/8
- mararanjani: 1, 9/8, 5/4, 4/3, 3/2, 8/5, 5/3
- charukesi: 1, 9/8, 5/4, 4/3, 3/2, 8/5, 9/5
- sarasangi: 1, 9/8, 5/4, 4/3, 3/2, 8/5, 15/8
- harikambhoji, kambhoji: 1, 9/8, 5/4, 4/3, 3/2, 5/3, 9/5
- mohanam: 1, 9/8, 5/4, 3/2, 5/3
- natakuranji: 1, 4/3, 5/4, 4/3, 9/5, 5/3, 9/5, 3/2, 5/3, 9/5
- surutti: 1, 9/8, 4/3, 3/2, 9/5, 5/3, 9/5
- dheerashankarabharanam, shankarabharanam: 1, 9/8, 5/4, 4/3, 3/2, 5/3, 15/8
- naganandini: 1, 9/8, 5/4, 4/3, 3/2, 9/5, 15/8
- yagapriya: 1, 6/5, 5/4, 4/3, 3/2, 8/5, 5/3
- ragavardhini: 1, 6/5, 5/4, 4/3, 3/2, 8/5, 9/5
- gangeyabhusani: 1, 6/5, 5/4, 4/3, 3/2, 8/5, 15/8
- vagadheeswari: 1, 6/5, 5/4, 4/3, 3/2, 5/3, 9/5
- sulini: 1, 6/5, 5/4, 4/3, 3/2, 5/3, 15/8
- chalanattai: 1, 6/5, 5/4, 4/3, 3/2, 9/5, 15/8
- salagam: 1, 16/15, 9/8, 7/5, 3/2, 8/5, 5/3
- jalarnavam: 1, 16/15, 9/8, 7/5, 3/2, 8/5, 9/5
- jhalavarali: 1, 16/15, 9/8, 7/5, 3/2, 8/5, 15/8
- navaneetam: 1, 16/15, 9/8, 7/5, 3/2, 5/3, 9/5
- pavani: 1, 16/15, 9/8, 7/5, 3/2, 5/3, 15/8
- raghupriya: 1, 16/15, 9/8, 7/5, 3/2, 9/5, 15/8
- gavambodhi: 1, 16/15, 6/5, 7/5, 3/2, 8/5, 5/3
- bhavapriya: 1, 16/15, 6/5, 7/5, 3/2, 8/5, 9/5
- subhapantuvarali: 1, 16/15, 6/5, 7/5, 3/2, 8/5, 15/8
- shadvigamargini: 1, 16/15, 6/5, 7/5, 3/2, 5/3, 9/5
- suvarnangi: 1, 16/15, 6/5, 7/5, 3/2, 5/3, 15/8
- divyamani: 1, 16/15, 6/5, 7/5, 3/2, 9/5, 15/8
- dhavalambari: 1, 16/15, 5/4, 7/5, 3/2, 8/5, 5/3
- namanarayani: 1, 16/15, 5/4, 7/5, 3/2, 8/5, 9/5
- kamavardhini: 1, 16/15, 5/4, 7/5, 3/2, 8/5, 15/8
- goulipantu: 1, 16/15, 7/5, 3/2, 15/8
- ramapriya: 1, 16/15, 5/4, 7/5, 3/2, 5/3, 9/5
- gamanasrama: 1, 16/15, 5/4, 7/5, 3/2, 5/3, 15/8
- viswambhari: 1, 16/15, 5/4, 7/5, 3/2, 9/5, 15/8
- syamalangi: 1, 9/8, 6/5, 7/5, 3/2, 8/5, 5/3
- shanmukhapriya: 1, 9/8, 6/5, 7/5, 3/2, 8/5, 9/5
- simhendramadhyamam: 1, 9/8, 6/5, 7/5, 3/2, 8/5, 15/8
- hemavati: 1, 9/8, 6/5, 7/5, 3/2, 5/3, 9/5
- dharamavai: 1, 9/8, 6/5, 7/5, 3/2, 5/3, 15/8
- nitimati: 1, 9/8, 6/5, 7/5, 3/2, 9/5, 15/8
- kantamani: 1, 9/8, 5/4, 7/5, 3/2, 8/5, 5/3
- rishabhapriya: 1, 9/8, 5/4, 7/5, 3/2, 8/5, 9/5
- latangi: 1, 9/8, 5/4, 7/5, 3/2, 8/5, 15/8
- vachaspati: 1, 9/8, 5/4, 7/5, 3/2, 5/3, 9/5
- mechakalyani, kalyani: 1, 9/8, 5/4, 7/5, 3/2, 5/3, 15/8
- chitrambhari: 1, 9/8, 5/4, 7/5, 3/2, 9/5, 15/8
- sucharitra: 1, 6/5, 5/4, 7/5, 3/2, 8/5, 5/3
- jyotiswarupini: 1, 6/5, 5/4, 7/5, 3/2, 8/5, 9/5
- dhatuvardhini: 1, 6/5, 5/4, 7/5, 3/2, 8/5, 15/8
- nasikabhusani: 1, 6/5, 5/4, 7/5, 3/2, 5/3, 9/5
- kosalam: 1, 6/5, 5/4, 7/5, 3/2, 5/3, 15/8
- rasikapriya: 1, 6/5, 5/4, 7/5, 3/2, 9/5, 15/8
Emit the pitch of a scale degree.
  • interval* :: Signal or Str [] — Multiply this interval with the note's frequency. Negative numbers divide, so while 3/2 goes up a fifth, -3/2 goes down a fifth. Can be either a ratio or a symbol drawn from: M2, M2-, M3, M6, M7, P4, P5, m2, m2-, m3, m6, m7, tt, tt11, tt7+, tt7-, wolf
pattern:ratio: [+-]?\d+/\d+ e.g. 2/5 or -4/3 -- ratio
scale : scale val
Generate a frequency that is the ratio of the frequency of the #ratio-source signal. A negative ratio divides, a positive one multiplies.
  • hz :: Signal = 0 [*-hz] — Add an absolute hz value to the output.
pattern:selisir-b: [-1-9][1-9][᭦᭡᭢᭣᭤]#?(bb|b|n|#|x)? -- pitch
scale : scale val
The usual saih lima.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- demung - From McPhee's "Music in Bali", from .
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- gong-apuan - From McPhee's "Music in Bali", from Apuan.
- gong-gianyar - From McPhee's "Music in Bali", from Gianyar.
- gong-klungkung - From McPhee's "Music in Bali", from Klungkung.
- gong-peliatan - From McPhee's "Music in Bali", from Peliatan.
- gong-sayan - From McPhee's "Music in Bali", from Sayan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- pegulingan-teges - From Teges Semar Pegulingan, via Bob Brown's 1972 recording.
- pelegongan-sanur - From McPhee's "Music in Bali", from Sanur.
- pelegongan-selisir - From McPhee's "Music in Bali", from Selisir.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.
- tembung-cenik - From McPhee's "Music in Bali", from .

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: 3᭦ to 7᭦
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:selisir-c: [-1-9][12356]|`[12356][.^]*`(bb|b|n|#|x)? -- pitch
scale : scale val
The usual saih lima.
Use Javanese-style cipher notation.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- demung - From McPhee's "Music in Bali", from .
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- gong-apuan - From McPhee's "Music in Bali", from Apuan.
- gong-gianyar - From McPhee's "Music in Bali", from Gianyar.
- gong-klungkung - From McPhee's "Music in Bali", from Klungkung.
- gong-peliatan - From McPhee's "Music in Bali", from Peliatan.
- gong-sayan - From McPhee's "Music in Bali", from Sayan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- pegulingan-teges - From Teges Semar Pegulingan, via Bob Brown's 1972 recording.
- pelegongan-sanur - From McPhee's "Music in Bali", from Sanur.
- pelegongan-selisir - From McPhee's "Music in Bali", from Selisir.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.
- tembung-cenik - From McPhee's "Music in Bali", from .

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: 1.. to 1^^
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:selisir-kantilan-b: [-1-9][᭦᭡᭢᭣᭤]#?[_^-](bb|b|n|#|x)? -- pitch
scale : scale val
The usual saih lima.
This is centered around the kantilan range.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- demung - From McPhee's "Music in Bali", from .
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- gong-apuan - From McPhee's "Music in Bali", from Apuan.
- gong-gianyar - From McPhee's "Music in Bali", from Gianyar.
- gong-klungkung - From McPhee's "Music in Bali", from Klungkung.
- gong-peliatan - From McPhee's "Music in Bali", from Peliatan.
- gong-sayan - From McPhee's "Music in Bali", from Sayan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- pegulingan-teges - From Teges Semar Pegulingan, via Bob Brown's 1972 recording.
- pelegongan-sanur - From McPhee's "Music in Bali", from Sanur.
- pelegongan-selisir - From McPhee's "Music in Bali", from Selisir.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.
- tembung-cenik - From McPhee's "Music in Bali", from .

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: ᭡᭬ to ᭦᭫
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:selisir-kantilan: [-1-9][ioeua]#?[_^-](bb|b|n|#|x)? -- pitch
scale : scale val
The usual saih lima.
This is centered around the kantilan range.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- demung - From McPhee's "Music in Bali", from .
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- gong-apuan - From McPhee's "Music in Bali", from Apuan.
- gong-gianyar - From McPhee's "Music in Bali", from Gianyar.
- gong-klungkung - From McPhee's "Music in Bali", from Klungkung.
- gong-peliatan - From McPhee's "Music in Bali", from Peliatan.
- gong-sayan - From McPhee's "Music in Bali", from Sayan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- pegulingan-teges - From Teges Semar Pegulingan, via Bob Brown's 1972 recording.
- pelegongan-sanur - From McPhee's "Music in Bali", from Sanur.
- pelegongan-selisir - From McPhee's "Music in Bali", from Selisir.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.
- tembung-cenik - From McPhee's "Music in Bali", from .

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: o_ to i^
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:selisir-pemade-b: [-1-9][᭦᭡᭢᭣᭤]#?[_^-](bb|b|n|#|x)? -- pitch
scale : scale val
The usual saih lima.
This is centered around the pemade range.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- demung - From McPhee's "Music in Bali", from .
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- gong-apuan - From McPhee's "Music in Bali", from Apuan.
- gong-gianyar - From McPhee's "Music in Bali", from Gianyar.
- gong-klungkung - From McPhee's "Music in Bali", from Klungkung.
- gong-peliatan - From McPhee's "Music in Bali", from Peliatan.
- gong-sayan - From McPhee's "Music in Bali", from Sayan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- pegulingan-teges - From Teges Semar Pegulingan, via Bob Brown's 1972 recording.
- pelegongan-sanur - From McPhee's "Music in Bali", from Sanur.
- pelegongan-selisir - From McPhee's "Music in Bali", from Selisir.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.
- tembung-cenik - From McPhee's "Music in Bali", from .

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: ᭡᭬ to ᭦᭫
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:selisir-pemade: [-1-9][ioeua]#?[_^-](bb|b|n|#|x)? -- pitch
scale : scale val
The usual saih lima.
This is centered around the pemade range.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- demung - From McPhee's "Music in Bali", from .
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- gong-apuan - From McPhee's "Music in Bali", from Apuan.
- gong-gianyar - From McPhee's "Music in Bali", from Gianyar.
- gong-klungkung - From McPhee's "Music in Bali", from Klungkung.
- gong-peliatan - From McPhee's "Music in Bali", from Peliatan.
- gong-sayan - From McPhee's "Music in Bali", from Sayan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- pegulingan-teges - From Teges Semar Pegulingan, via Bob Brown's 1972 recording.
- pelegongan-sanur - From McPhee's "Music in Bali", from Sanur.
- pelegongan-selisir - From McPhee's "Music in Bali", from Selisir.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.
- tembung-cenik - From McPhee's "Music in Bali", from .

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: o_ to i^
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:selisir: [-1-9][1-9][ioeua]#?(bb|b|n|#|x)? -- pitch
scale : scale val
The usual saih lima.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to rambat. Laras:
- demung - From McPhee's "Music in Bali", from .
- gambang-krobokan - From McPhee's "Music in Bali", from Krobokan.
- gambuh-batuan - From McPhee's "Music in Bali", from Batuan.
- gambuh-tabanan - From McPhee's "Music in Bali", from Tabanan.
- gong-apuan - From McPhee's "Music in Bali", from Apuan.
- gong-gianyar - From McPhee's "Music in Bali", from Gianyar.
- gong-klungkung - From McPhee's "Music in Bali", from Klungkung.
- gong-peliatan - From McPhee's "Music in Bali", from Peliatan.
- gong-sayan - From McPhee's "Music in Bali", from Sayan.
- luang-seseh - From McPhee's "Music in Bali", from Seseh.
- pegulingan-klungkung - From McPhee's "Music in Bali", from Klungkung.
- pegulingan-tampak-gangsal - From McPhee's "Music in Bali", from Tampak Gangsal.
- pegulingan-teges - From Teges Semar Pegulingan, via Bob Brown's 1972 recording.
- pelegongan-sanur - From McPhee's "Music in Bali", from Sanur.
- pelegongan-selisir - From McPhee's "Music in Bali", from Selisir.
- rambat - From my gender rambat, made in Blabatuh, Gianyar, tuned in Munduk, Buleleng.
- tembung-cenik - From McPhee's "Music in Bali", from .

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: 3i to 7i
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:twelve-k: [-1-9][cdefgab](bb|b|n|#|x)? -- pitch
scale : scale val
This variant treats accidentals like staff notation. If a pitch doesn't have an accidental, it will inherit from the key signature. It thus needs an explicit natural to cancel that out. Unlike staff notation, accidentals don't persist until the next barline.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: -1c to 9g
- default key: c-maj
- keys: (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-dorian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-hijaz, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-locrian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-lydian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-maj, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-min, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-mixolydian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-octa12, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-octa21, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-phrygian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-whole
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:twelve-r: [-1-9][srgmpdn](bb|b|n|#|x)? -- pitch
scale : scale val
This is 12TET, but spelled relative to the current key and mode.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: -1s to 9p
- default key: c-maj
- keys: (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-dorian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-hijaz, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-locrian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-lydian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-maj, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-min, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-mixolydian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-octa12, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-octa21, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-phrygian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-whole
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:twelve: [-1-9][cdefgab](bb|b|n|#|x)? -- pitch
scale : scale val
The world-famous equal tempered twelve note scale.
Scales in the "twelve" family use European style note naming. That is, note names look like octave-letter-accidentals like "4c#". They have a notion of a "layout", which is a pattern of half and whole steps, e.g. the piano layout, and a key, which is a subset of notes from the scale along with a preferred spelling for them. The rules of how enharmonic spelling works are complicated, and documented in 'Derive.Scale.Theory'. The key is read from the key env var, and each scale has a list of keys it will accept.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: -1c to 9g
- default key: c-maj
- keys: (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-dorian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-hijaz, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-locrian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-lydian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-maj, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-min, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-mixolydian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-octa12, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-octa21, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-phrygian, (a#|a|ab|b#|b|bb|c#|c|cb|d#|d|db|e#|e|eb|f#|f|fb|g#|g|gb)-whole
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:wayang-a: [-1-9][1-9][ioeua](bb|b|n|#|x)? -- pitch
scale : scale val
Saih gender wayang.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to sawan. Laras:
- '6-edo' - Theoretical 6-EDO tuning.
- gender-klandis - From McPhee's "Music in Bali", from Klandis.
- gender-kuta - From McPhee's "Music in Bali", from Kuta.
- gender-lod-peken - From McPhee's "Music in Bali", from Lod Peken.
- gender-patantaran - From McPhee's "Music in Bali", from Patantaran.
- gender-sawan - From McPhee's "Music in Bali", from Sawan.
- gender-tabanan - From McPhee's "Music in Bali", from Tabanan.
- sawan - Tuning from my gender wayang, made in Sawan, Singaraja.
- sawan-kantilan - Sawan tuning for kantilan
- sawan-pemade - Sawan tuning for pemade.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: 1u to 8u
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:wayang-kantilan: [-1-9][ioeua]#?[_^-](bb|b|n|#|x)? -- pitch
scale : scale val
Saih gender wayang.
Kantilan scale. This can be used to give the the same score to both pemade and kantilan.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to sawan-kantilan. Laras:
- '6-edo' - Theoretical 6-EDO tuning.
- gender-klandis - From McPhee's "Music in Bali", from Klandis.
- gender-kuta - From McPhee's "Music in Bali", from Kuta.
- gender-lod-peken - From McPhee's "Music in Bali", from Lod Peken.
- gender-patantaran - From McPhee's "Music in Bali", from Patantaran.
- gender-sawan - From McPhee's "Music in Bali", from Sawan.
- gender-tabanan - From McPhee's "Music in Bali", from Tabanan.
- sawan - Tuning from my gender wayang, made in Sawan, Singaraja.
- sawan-kantilan - Sawan tuning for kantilan
- sawan-pemade - Sawan tuning for pemade.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: o_ to i^
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:wayang-pemade: [-1-9][ioeua]#?[_^-](bb|b|n|#|x)? -- pitch
scale : scale val
Saih gender wayang.
Pemade scale. This can be used to give the the same score to both pemade and kantilan.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to sawan-pemade. Laras:
- '6-edo' - Theoretical 6-EDO tuning.
- gender-klandis - From McPhee's "Music in Bali", from Klandis.
- gender-kuta - From McPhee's "Music in Bali", from Kuta.
- gender-lod-peken - From McPhee's "Music in Bali", from Lod Peken.
- gender-patantaran - From McPhee's "Music in Bali", from Patantaran.
- gender-sawan - From McPhee's "Music in Bali", from Sawan.
- gender-tabanan - From McPhee's "Music in Bali", from Tabanan.
- sawan - Tuning from my gender wayang, made in Sawan, Singaraja.
- sawan-kantilan - Sawan tuning for kantilan
- sawan-pemade - Sawan tuning for pemade.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: o_ to i^
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:wayang-srg: [-1-9][1-9][srgpd](bb|b|n|#|x)? -- pitch
scale : scale val
Saih gender wayang.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to sawan. Laras:
- '6-edo' - Theoretical 6-EDO tuning.
- gender-klandis - From McPhee's "Music in Bali", from Klandis.
- gender-kuta - From McPhee's "Music in Bali", from Kuta.
- gender-lod-peken - From McPhee's "Music in Bali", from Lod Peken.
- gender-patantaran - From McPhee's "Music in Bali", from Patantaran.
- gender-sawan - From McPhee's "Music in Bali", from Sawan.
- gender-tabanan - From McPhee's "Music in Bali", from Tabanan.
- sawan - Tuning from my gender wayang, made in Sawan, Singaraja.
- sawan-kantilan - Sawan tuning for kantilan
- sawan-pemade - Sawan tuning for pemade.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: 1p to 8p
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.
pattern:wayang: [-1-9][1-9][ioeua](bb|b|n|#|x)? -- pitch
scale : scale val
Saih gender wayang.
Balinese scales come in detuned pairs. They use the tuning env var to select between pengumbang and pengisep. The env var should be set to either umbang or isep, defaulting to umbang. Normally the umbang and isep frequencies are hardcoded according to the scale, but if the ombak control is present, they will be tuned that many hz apart.
The laras env var chooses between different tunings. It defaults to sawan. Laras:
- '6-edo' - Theoretical 6-EDO tuning.
- gender-klandis - From McPhee's "Music in Bali", from Klandis.
- gender-kuta - From McPhee's "Music in Bali", from Kuta.
- gender-lod-peken - From McPhee's "Music in Bali", from Lod Peken.
- gender-patantaran - From McPhee's "Music in Bali", from Patantaran.
- gender-sawan - From McPhee's "Music in Bali", from Sawan.
- gender-tabanan - From McPhee's "Music in Bali", from Tabanan.
- sawan - Tuning from my gender wayang, made in Sawan, Singaraja.
- sawan-kantilan - Sawan tuning for kantilan
- sawan-pemade - Sawan tuning for pemade.

- transposers: {t-chrom, t-dia, t-hz, t-nn, t-oct}
- range: 1i to 8i
Emit the pitch of a scale degree.
  • frac :: Signal = 0 [*-frac] — Add this many hundredths of a scale degree to the output.