Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support quarter tones / microtonal music #45

Closed
infojunkie opened this issue Sep 7, 2015 · 9 comments
Closed

Support quarter tones / microtonal music #45

infojunkie opened this issue Sep 7, 2015 · 9 comments
Labels

Comments

@infojunkie
Copy link

infojunkie commented Sep 7, 2015

Would be great to support quarter tones, or microtones in general!

@infojunkie infojunkie changed the title tunicode quarter tone Support quarter tones Sep 7, 2015
@daveyarwood
Copy link
Member

This is very high on my priority list.

Some great ideas were proposed in this Reddit thread

@daveyarwood daveyarwood changed the title Support quarter tones Support quarter tones / microtonal music Sep 7, 2015
@Omega9
Copy link

Omega9 commented Sep 7, 2015

Do you plan to support .scl?

@daveyarwood
Copy link
Member

@Omega9 That's not a bad idea! ref: http://www.huygens-fokker.org/scala/scl_format.html

An open question I have for supporting microtonal music in general is how we will express each note, for scales with more than 7 notes (a-g). It would be ideal if we could continue to express a note as a single character. Currently the Alda parser reserves the letters a-g for notes, and the letter r for rests.

Some ideas:

  • We could enforce an upper limit of 17 notes for scales, so we could use the letters a-q (since r is off limits, and skipping over r might be confusing)
  • We could use uppercase letters in some way. Or maybe some combination of upper- and lower-case letters.

@crisptrutski
Copy link
Member

So I'm wanting to take a stab at adding tonality diamond style tunings, and that's informing my thoughts around the literals for notes.. A part of me thinks that tuning "plugins" should be able to bring in their own, intuitive notation.

eg. rather than mapping a-q to a rhombus, or using a complicated scheme of accidentals-that-interact-with-tuning-model-in-a-fancy way.. you might want to use a 2d dimension system.. a bit like an index into a hexagon grid.

Definitely going to play with Scala this weekend (this is worse than Clojure / Closure..)

@daveyarwood
Copy link
Member

@crisptrutski Whoa... this tonality diamond stuff looks crazy! Hardcore experimentalists will love this kind of thing, if we bring it into Alda. I would experiment with it, too.

I like the idea of leveraging the plugin system for tunings, rather than hard-coding them into Alda as attributes.

I'm not sure yet exactly how the plugin system will work, but I imagine it will involve transforming the score into syntax that the core Alda parser knows how to read -- if that's the case, then we could have tuning plugins that generate Alda code where each note has a precise pitch in Hz -- this is a more general feature I had in mind, where you could override the current octave/note system and just say, e.g. "play a note at 3000 Hz."

@crisptrutski
Copy link
Member

Onboard with using explicit tones for "hardcore" tunings, ie. where things like the tonality diamond where alternate notation may even be win, but traditional notation for "just" tunings, or say a piece that just wants half-semitone accidental is a big win - especially once "print the sheet music" features land.

Not sure if you've had a chance to look at #84, but what are your thoughts on providing another extension point like this, where the (note-letter, octave, accidentals) -> hz transformation can be hijacked?

While the mainstream shouldn't suffer complexity for the sake of the outliers, think that catering to those "just" outside the mainstream is worthwhile 😄

@elydpg
Copy link
Contributor

elydpg commented Oct 15, 2015

I think the easiest way to express microtones is via MIDI numbers. You could have something like #m where # is the MIDI number of the note (this preserves the syntax for numbers after the note names). So 60.5m8 would be an eighth-note exactly between C4 and C#4. You could also have #q where q is the frequency in Hz, so 440.4q16 would be a 16th note with a frequency of 440.4Hz.

@daveyarwood
Copy link
Member

Thinking about this a little more, I think I'd like to support doing this both ways:

a) (hz <number here>) for arbitrarily tuned notes, regardless of tuning system. It would definitely be good to add some kind of literal syntax for a note with a frequency in Hz, something like what @elyisgreat is proposing. I like the idea of being able to specify an arbitrary pitch both in terms of MIDI note number (with values in between like 60.5, translating proportionally), and in terms of frequency in Hz.

b) Add a tuning property which will affect the frequency of each note in Hz.

Both ways should be composable -- e.g. I should be able to write a piece of music with Pythagorean tuning, with notes here and there that have an arbitrary pitch outside of the tuning.

@daveyarwood
Copy link
Member

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants