thetwom/Tuner

[Feature] SCL support

Opened this issue · 6 comments

I am a microtonal guitarist. I have a classical guitar that has a moveable frets fretboard design byed Tolgahan Cogulu.

https://tolgahancogulu.com/

Your app has proven to be most helpful. I can't begin to thank you enough. I really like the 1/4 comma meantone with 15 notes. When I use 15 notes per scale the A#/Bb, D#/Eb, and G#/Ab pairs are the way to go.

I was wondering if it would be possible to add SCL support; the ability to import SCL files? The Surge Synth Team has a library that may prove to be useful to add such a feature.

https://github.com/surge-synthesizer/tuning-library

Thanks again!!!

Thanks for the suggestion. I am glad, the app has proven helpful for you.

There was a request to allow custom scales before. The main difficulty here is the notation. While it is quite simple to provide a set of pitch values, the question is, how the notes should be displayed. For 12-tone only this is simple enough, but how to treat other scales?

Maybe you have more experience here in how other software deal with this problem. At the moment the non-12-tone scales are based on the up/down notation suggested in #19. We could of course hardcode a lot of different tone notations. But is this general enough?

I would look at two apps, Lingot and Scala.

Lingot is a tuner which can import SCL files.

When it imports the SCL it assigns numbers to each note but also allows for editing.

This scale is 19 notes selected from 31EDO

! ED2-31_MOS-19_696.774194_-6_12_scala.scl
!
ED2-31 MOS-19 (696.774194 -6, 12)
 19
!
 77.41936
 116.12903
 193.54839
 270.96775
 309.67742
 387.09678
 464.51613
 503.22581
 580.64516
 619.35484
 696.77419
 774.19355
 812.90322
 890.32258
 967.74194
 1006.45161
 1083.87097
 1161.29033
 2/1

When imported into Lingot it uses numbers as follows:

image

Following the convention from Scala when applying E31 it provides the following notes:

image

After which the numbers can be manually edited in Lingot:

image

Tuner with numbers

image

Tuner modified

image

Using these examples my suggestion would be to either allow for note editing or use the convention in Scala that applies a wide variety of tunings.

This link provides the array of notation that Scala provides.

Applying Scala notation could be problematic as its method offers two options for accidentals. I tend to go with next note up and next note down from the natural. In the case of what lies between E-F and B-C go with up.

image

In all honesty I could live with numbers only. Notation is nice to have. That being said I think notation is doable.

Thanks for taking this into consideration.

Thanks for the details. Looks like one does not really get around providing some UI for editing to get this right. Or extending the scl files with hints about the note names to use.

I understand that numbers are a good start, but it somehow does not really feel complete.

I am in the progress of redoing some underlying UI code at the moment. This will still take some time to finish. Maybe I can consider afterwards to support custom temperaments, where scl-support seems simple enough.

maybe approximating the notes in 24edo and then allowing the user to edit the notes could do the job?

Would it be possible to make SCL import a feature limited to 12 note scales? This way the notation issue would not be a factor.

I also think numbers for all other scale sizes should not be an issue. Perhaps a combination of having the 7 diatonic notes labelled as letters with the remaining notes as numbers (with or without up and down arrows).

In order to support temperaments from users, there are a few adaptions needed. As said, I did a lot of refactoring lately which hopefully allows to create new UI features much easier in the future. This is mostly done now. It looks like custom temperaments are one of the top requested features, so I will try to look deeper into this soon.