Skip to content

Instantly share code, notes, and snippets.

@lwlsn
Last active November 29, 2019 08:16
Show Gist options
  • Save lwlsn/d75ff53eb182a437f1d90df3648aac2e to your computer and use it in GitHub Desktop.
Save lwlsn/d75ff53eb182a437f1d90df3648aac2e to your computer and use it in GitHub Desktop.
Conversion from linear to cyclical time
Input midi data
e.g
(missing first note data -- C4, E4)
120 On ch=1 n=67 v=64 -- G4 on
180 Off ch=1 n=67 v=44 -- G4 off
180 On ch=1 n=72 v=64 --- C5 on
240 Off ch=1 n=72 v=77 -- C5 off
240 On ch=1 n=76 v=64 -- E5 on
300 Off ch=1 n=76 v=52 -- E5 off
300 On ch=1 n=67 v=64 -- G4 on
360 Off ch=1 n=67 v=32 -- G4 off
360 On ch=1 n=72 v=64
420 Off ch=1 n=72 v=72
420 On ch=1 n=76 v=64
480 Off ch=1 n=76 v=65
600 On ch=1 n=67 v=64
660 Off ch=1 n=67 v=46
660 On ch=1 n=72 v=64
720 Off ch=1 n=72 v=68
720 On ch=1 n=76 v=64
780 Off ch=1 n=76 v=47
780 On ch=1 n=67 v=64
840 Off ch=1 n=67 v=40
840 On ch=1 n=72 v=64
900 Off ch=1 n=72 v=80
900 On ch=1 n=76 v=64
960 Off ch=1 n=76 v=50
1080 On ch=1 n=69 v=64
1140 Off ch=1 n=69 v=35
MIDI > traditional score
for tempo defined by crotchet = x
=> quaver = x/2; semiquaver = x/4; minim = 2x etc
e.g crotchet = 120 => quaver =
Basic Tempo Markings
[Lento = 40-60 bpm; Larghetto 60-66 bpm; Adagio = 66 - 76 bpm; Andante = 76-108 bpm; Moderato 108-120 bpm; Allegro 120-156 bpm;
- Begin w/ overall divisions:
e.g. 4-bar sequences = 1 cycle => 1-bar = 1/4 cycle
Timings
e.g. 4/4 timing - 4 beats in a bar => 1 - beat = (1/4)/4 = 1/16 cycle.
Conversion from linear space to circular
Assume r=1 for all notes
Using the division system above, for some angular component theta
1 bar = theta/2
1 beat = theta/8
To do:
2-clef condension into one cycle
varying pitch with varying r values?
all bars caluclated using modulo function?
@lwlsn
Copy link
Author

lwlsn commented May 30, 2019

Screen Shot 2019-05-30 at 16 27 37

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment