Scala file error message from NYSTHI Scala quantizer?

I was playing with a program that generates Scala SCL files using an iterative polynomial, and am stumped by the error message from NYSTHI Scala: “error: scala not ASCENDING” I didn’t want to log it as an issue for @synthi - does someone know what I’m doing wrong? When I dump out the scale, the number in the ! comment is the constant between 1.0 (the root note) and 2.0 (an octave higher).

This is the program iteratedScale.cpp.txt (1.2 KB)

I also attached the SCL file

KW test Scale
16
! 1.05
60
! 1.0725
87
! 1.12462
149.55
! 1.17518
210.218
! 1.22713
272.552
! 1.2816
337.924
! 1.3385
406.203
! 1.39792
477.501
! 1.45997
551.965
! 1.52478
629.734
! 1.59246
710.956
! 1.66315
795.783
! 1.73698
884.376
! 1.81408
976.901
! 1.89461
1073.53
! 1.97871
1174.46

iterated.scl.txt (288 Bytes)

It’s kind of a subtle issue, all the scale steps you want to have in cents have to be like “100.0”, with the dot, but in your file you have “16”, “60”, “87” without the dots.

1 Like

yeah “60” means “60/1” implicitly not “16.0” in SCL format.

When I load your SCL into surge xt (which doesn’t have the monotonic constraint on scale tones) you can see the two notes are just way out of whack in both the frequency and interval view.

Here’s our radial / parsed view of your original file. If I change those first two values to 60.0 and 87.0 I see the sequence more like you would expect

2 Likes

in my code:

   else  //is a ratio with 1 as denominator
   {
         //number is used as "number/1" ratio
   }

fantastic visualizer !

1 Like

I like scaleworkshop to create, export and check custom or microtonal scales.

@baconpaul What software are you using for these graphs? Looks very nice!

Here it is on the “Colundi Every One” Scala file:

I used that a bit yesterday, very interesting scale that is indeed

Surge XT.

1 Like

Yup

If you do want to support non monotonic scales and keybindings, we have tested our SCL/KBM → frequency library in a bunch of environments. GitHub - surge-synthesizer/tuning-library: Micro-tuning format parsing and frequency finding as a header-only C+ library.

We can even do things like pick a keyboard mapping where the tuning center note is unmapped! Lots of those edge cases tested out. MIT licensed header only.

1 Like

not just a visualizer! its an editor too! All the components are draggable and the synth retunes in realtime as you change the scale. Super handy! But glad you like it - thanks!

3 Likes