Edit2: Uploaded runnable jar for testing download/file.php?mode=view&id=183803
...
Is the code/notation below understandable to any of you? It was used to generate the score you see below (picture, audio and score output attached.)
This is a new attempt on an older project of mine: Java program that lets you build sequences of "notes" in semi-mathematical notation and export to MIDI or Fl Studio Score
My interest in this comes from the fact that I struggle with classical music notation, and this gives me an alternative approach to music theory. The numbers and "math" behind music gets very exposed this way.
I don't have a good way to distribute the program itself yet. It is written in Kotlin.
Code: Select all
//minor scale
sc 50-52-53-55-57-58-5a
/*starting a branch and
saving it to a variable*/
brs.part1=
//instrument channel 0
in 0
// dr sets duration, nt creates a note
// first digit = octave, second digit = scale index
dr 1/4 nt 50 51 52 51 dr 1/1 nt 50
dr 1/8-1/8 nt 50 51 53 54 dr 1/1 nt 50
brr //branch reset (start on next branch)
in 4
//dashes lets you stack notes into a chord
dr 4/1 nt 40-42-44
brr
in 2
// setting up a velocity cycle. each 1/16 time
// division will have a different velocity
dr 1/16 ve 40 60 70 30
// dashes lets you make a note repeat
// here, one note is played four times
dr 1/16-1/16-1/16-1/16
// all commands can be saved to a variable
// when a command is saved, it is not inserted
// into the song, just defined
nt.pat= 60 61 62 63 64 65 66 65
// and here the variable is loaded
// and inserted into the song
nt.pat
nt.pat
bre // end of branch here. will now continue
// with the state of the FIRST branch as it
// finished
brs.section= //defining a new branch, referencing the other one
// scale shift. shifts all notes up or down the scale
ss 0
brs.part1
ss 1
brs.part1
ss -2
brs.part1
ss 0
brs.part1
bre
// now we play the section
brs.section
// change scale to major
sc 50-52-54-55-57-59-5b
// play section again in major
brs.section