sevki / Beato

🚫 I, V, VI, IV
https://beato.sevki.dev
1 stars 0 forks source link

Add time control parameters #4

Open sevki opened 2 years ago

sevki commented 2 years ago

Currently 𝄞 only takes @NoteBuilder _ makeNotes: () ->[MIDINoteMessage] parameter.

I would like to change the function to accept a time signature as well.

But I'm not sure what's the most practical primitive..

Pitch is the absolute value we use to make sounds, where Steps are relative to the key they are in.

With timing absolute values are probably going to be *seconds, but I should first enumerate how many different ways in musical notation there are to convert stuff to absolute time.

NateFuller commented 1 year ago

Well I think you'll probably want to have the notion of Tempo. Tempos are usually denoted by:

♩ = 120 "quarter note equals 120" ♪ = 148 "eighth note equals 148" etc

The number after the equals sign indicates how many of the beats for that value should happen per 60 second time interval.

Whether we use a "quarter note", "eighth note", "sixteenth note", etc depends on the time signature. So if the time signature were 4/4, the denominator indicates usually that the quarter note gets the beat. If it's 6/8 or 12/8, an eighth note gets the beat.