Skip to content

Instantly share code, notes, and snippets.

@ology
Last active June 19, 2026 00:14
Show Gist options
  • Select an option

  • Save ology/677494ade7c459d891dcf098a079d12d to your computer and use it in GitHub Desktop.

Select an option

Save ology/677494ade7c459d891dcf098a079d12d to your computer and use it in GitHub Desktop.
Output of the tones-resolution program
gene@zappa:~/sandbox/Music master> perl tones-resolution.pl MIDIThing2 60
Sending MIDI to MIDIThing2 at 60 BPM
0 => [ 'hn', 'qn', 'qn' ]
Queue: [
{ duration => 'hn', pitch => 31 }, { duration => 'qn', pitch => 27 },
{ duration => 'qn', pitch => 27 },
]
Onset: [ 0, 8, 12 ]
* 0, 0, 0
0, 0, { duration => 'hn', pitch => 31 }
* 1, 1, 8
* 1, 2, 8
* 1, 3, 8
* 1, 4, 8
* 1, 5, 8
* 1, 6, 8
* 1, 7, 8
* 1, 8, 8
1, 8, { duration => 'qn', pitch => 27 }
* 2, 9, 12
* 2, 10, 12
* 2, 11, 12
* 2, 12, 12
2, 12, { duration => 'qn', pitch => 27 }
* 3, 13, ?
* 3, 14, ?
* 3, 15, ?
16 => [ 'hn', 'qn', 'qn' ]
Queue: [
{ duration => 'hn', pitch => 31 }, { duration => 'qn', pitch => 22 },
{ duration => 'qn', pitch => 17 },
]
Onset: [ 16, 24, 28 ]
* 0, 16, 16
0, 16, { duration => 'hn', pitch => 31 }
* 1, 17, 24
* 1, 18, 24
* 1, 19, 24
* 1, 20, 24
* 1, 21, 24
* 1, 22, 24
* 1, 23, 24
* 1, 24, 24
1, 24, { duration => 'qn', pitch => 22 }
* 2, 25, 28
* 2, 26, 28
* 2, 27, 28
* 2, 28, 28
2, 28, { duration => 'qn', pitch => 17 }
* 3, 29, ?
* 3, 30, ?
* 3, 31, ?
32 => [ 'hn', 'qn', 'qn' ]
Queue: [
{ duration => 'hn', pitch => 15 }, { duration => 'qn', pitch => 22 },
{ duration => 'qn', pitch => 12 },
]
Onset: [ 32, 40, 44 ]
* 0, 32, 32
0, 32, { duration => 'hn', pitch => 15 }
* 1, 33, 40
* 1, 34, 40
* 1, 35, 40
* 1, 36, 40
* 1, 37, 40
* 1, 38, 40
* 1, 39, 40
* 1, 40, 40
1, 40, { duration => 'qn', pitch => 22 }
* 2, 41, 44
* 2, 42, 44
* 2, 43, 44
* 2, 44, 44
2, 44, { duration => 'qn', pitch => 12 }
* 3, 45, ?
* 3, 46, ?
* 3, 47, ?
48 => [ 'hn', 'qn', 'qn' ]
Queue: [
{ duration => 'hn', pitch => 19 }, { duration => 'qn', pitch => 22 },
{ duration => 'qn', pitch => 19 },
]
Onset: [ 48, 56, 60 ]
* 0, 48, 48
0, 48, { duration => 'hn', pitch => 19 }
* 1, 49, 56
* 1, 50, 56
* 1, 51, 56
* 1, 52, 56
* 1, 53, 56
* 1, 54, 56
* 1, 55, 56
* 1, 56, 56
1, 56, { duration => 'qn', pitch => 22 }
* 2, 57, 60
* 2, 58, 60
* 2, 59, 60
* 2, 60, 60
2, 60, { duration => 'qn', pitch => 19 }
* 3, 61, ?
* 3, 62, ?
* 3, 63, ?
64 => [ 'en', 'dqn', 'qn', 'en', 'en' ]
Queue: [
{ duration => 'en', pitch => 15 }, { duration => 'dqn', pitch => 31 },
{ duration => 'qn', pitch => 29 }, { duration => 'en', pitch => 29 },
{ duration => 'en', pitch => 27 },
]
Onset: [ 64, 66, 72, 76, 78 ]
* 0, 64, 64
0, 64, { duration => 'en', pitch => 15 }
* 1, 65, 66
* 1, 66, 66
1, 66, { duration => 'dqn', pitch => 31 }
* 2, 67, 72
* 2, 68, 72
* 2, 69, 72
* 2, 70, 72
* 2, 71, 72
* 2, 72, 72
2, 72, { duration => 'qn', pitch => 29 }
* 3, 73, 76
* 3, 74, 76
* 3, 75, 76
* 3, 76, 76
3, 76, { duration => 'en', pitch => 29 }
* 4, 77, 78
* 4, 78, 78
4, 78, { duration => 'en', pitch => 27 }
* 5, 79, ?
80 => [ 'en', 'dqn', 'qn', 'en', 'en' ]
Queue: [
{ duration => 'en', pitch => 27 }, { duration => 'dqn', pitch => 12 },
{ duration => 'qn', pitch => 29 }, { duration => 'en', pitch => 29 },
{ duration => 'en', pitch => 31 },
]
Onset: [ 80, 82, 88, 92, 94 ]
* 0, 80, 80
0, 80, { duration => 'en', pitch => 27 }
* 1, 81, 82
* 1, 82, 82
1, 82, { duration => 'dqn', pitch => 12 }
* 2, 83, 88
* 2, 84, 88
* 2, 85, 88
* 2, 86, 88
* 2, 87, 88
* 2, 88, 88
2, 88, { duration => 'qn', pitch => 29 }
* 3, 89, 92
* 3, 90, 92
* 3, 91, 92
* 3, 92, 92
3, 92, { duration => 'en', pitch => 29 }
* 4, 93, 94
* 4, 94, 94
4, 94, { duration => 'en', pitch => 31 }
* 5, 95, ?
96 => [ 'en', 'dqn', 'qn', 'en', 'en' ]
Queue: [
{ duration => 'en', pitch => 22 }, { duration => 'dqn', pitch => 17 },
{ duration => 'qn', pitch => 29 }, { duration => 'en', pitch => 22 },
{ duration => 'en', pitch => 12 },
]
Onset: [ 96, 98, 104, 108, 110 ]
* 0, 96, 96
0, 96, { duration => 'en', pitch => 22 }
* 1, 97, 98
* 1, 98, 98
1, 98, { duration => 'dqn', pitch => 17 }
* 2, 99, 104
* 2, 100, 104
* 2, 101, 104
* 2, 102, 104
* 2, 103, 104
* 2, 104, 104
2, 104, { duration => 'qn', pitch => 29 }
* 3, 105, 108
* 3, 106, 108
* 3, 107, 108
* 3, 108, 108
3, 108, { duration => 'en', pitch => 22 }
* 4, 109, 110
* 4, 110, 110
4, 110, { duration => 'en', pitch => 12 }
* 5, 111, ?
112 => [ 'hn', 'qn', 'qn' ]
Queue: [
{ duration => 'hn', pitch => 22 }, { duration => 'qn', pitch => 31 },
{ duration => 'qn', pitch => 24 },
]
Onset: [ 112, 120, 124 ]
* 0, 112, 112
0, 112, { duration => 'hn', pitch => 22 }
* 1, 113, 120
^C
Stop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment