the param scaling system was designed to make it (relatively) easy to modify the tuning tables directly.

on the sdcard: /data/bees/scalers/scaler_note_val.dat contains the packed binary data. there are 1024 entries. each entry represents a hz value in 16.16 format. there are 96 pitches per octave.

the default scaler_note data is a copy of scaler_note_12tet.dat. as its name implies, this is a 12-tone equal tempered division of the octave, with 7 additional equal-tempered microtones between each semitone.

the data file was produced with a supercollider patch, available on the github:

[ https://github.com/tehn/aleph/blob/master/utils/param_scaling/scale_note_12tet.scd ]

if you want to use this script… first save a copy to e.g. scale_note_5lim.scd…

line 28 defines the semitone ratios per octave. for 5-limit JI you might change it to something like:

~ratios = [1, 16/15, 9/8, 6/5, 5/4, 4/3, 64/45, 3/2, 8/5, 5/3, 16/9, 15/8 ];

~fsemi = ~nsemi.collect({ arg semi; ~ratios[semi % 12] * (2 ** ((semi/12).floor)) });

and then something similar to fill in the microtunings if you want those to be JI as well. (you would have to change the loop logic that fills them in a little bit, since i think it assumes a fixed ratio.)

running this script will produce scale_note_5lim_val.dat. rename it to scale_note_val.dat on the sdcard and all DSP parameters defined as “hz” will use those values.

a caveat: i’m pretty sure there’s a bug in aleph-waves and it doesn’t totally respect tunings once you use both the osc_hz and osc_ratio parameters. this is because multiplying the two in 16.16 causes truncation in the blackfin MACC and you lose some bits of the result. so if you are really going for very specific tunings you should not use the “ratio” parameter. (and maybe rebuild the waves module to not include it at all.)

HTH,

ez b