Hello and thanks for the library and the software.
I live in Turkey and our traditional music consists microtonal scales, makam as we call it. I'm planning a contribution around this idea. As you probably know, these microtonal scales consists sounds other than equal temperament system. As I've examined a bit, it seems scale system in the code is based on equal temperament which is perfectly normal. It means a half(1/2) step is 100 cents(12 notes, 1200 for an octave). I haven't figured out how to start for intervals smaller or bigger than 100 cents.
Anyway, I'm still trying to familiarize with the code. If anyone can point a way or suggest some topics, I'm up for it. I thought it would be a good idea to share my plan with you people.
Thanks again and keep up!
@xavriley - do you have any thoughts on this?
I think I've found the way to do it. Library accepts values other than Integer in scale arrays. I've started to add microtonal scales as of now.
I will notify you time to time of my progress.
Thanks
I've made some progress, implemented most of "makams". I will work on variations of "makams" from now on.
It came out bigger than I thought at first glance. The implementation is based on "Koma" which is calculated first with splitting the octave to 53 komas. Then the intervals(bakiyye etc.) which are based on komas. After calculating intervals, the "dortlu" "besli" system is introduced. Which are basically translated as "four pack" and "five pack" respectively. Finally, "makams" are built with this packs.
Maybe it is better to implement its own class? Since chords are dependent to Scales, I thought it would not be appropriate to implement it as a different class outside it.
Tested it, works as I expected at the moment.
What do you think? I've atttached the code and I'm open to your suggestions. Thought it is early for a pull request before hearing your idea about it.
Thanks,
https://github.com/kivancguckiran/sonic-pi/blob/master/app/server/sonicpi/lib/sonicpi/scale.rb
This is part of the source code now! Closing.
Most helpful comment
I've made some progress, implemented most of "makams". I will work on variations of "makams" from now on.
It came out bigger than I thought at first glance. The implementation is based on "Koma" which is calculated first with splitting the octave to 53 komas. Then the intervals(bakiyye etc.) which are based on komas. After calculating intervals, the "dortlu" "besli" system is introduced. Which are basically translated as "four pack" and "five pack" respectively. Finally, "makams" are built with this packs.
Maybe it is better to implement its own class? Since chords are dependent to Scales, I thought it would not be appropriate to implement it as a different class outside it.
Tested it, works as I expected at the moment.
What do you think? I've atttached the code and I'm open to your suggestions. Thought it is early for a pull request before hearing your idea about it.
Thanks,
https://github.com/kivancguckiran/sonic-pi/blob/master/app/server/sonicpi/lib/sonicpi/scale.rb