In [1]:
from mididim.pattern import get_default_44_pattern
from mididim import chord
from mididim.pitch import pitch2n as pitch
from mididim.track import Track
from mididim.rhythm import *
import midi

In [2]:
ptrn = get_default_44_pattern()
test = midi.TrackNameEvent(name=)


Out[2]:
midi.Pattern(format=1, resolution=192, tracks=\
[[midi.TrackNameEvent(tick=0, text='Default 4/4 Pattern', data=[]),
  midi.TimeSignatureEvent(tick=0, data=[4, 2, 24, 8]),
  midi.SetTempoEvent(tick=0, data=[7, 161, 32]),
  midi.EndOfTrackEvent(tick=0, data=[])]])

In [3]:
C = chord.Major(pitch.C_2)
track1 = Track(data='First Chord')
track1 += QuarterNote(C)
track1 += QuarterNote(C)
track1 += QuarterNote(C)
track1 += QuarterNote(C)
track1


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-4a28bebf096d> in <module>()
      1 C = chord.Major(pitch.C_2)
----> 2 track1 = Track(data='First Chord')
      3 track1 += QuarterNote(C)
      4 track1 += QuarterNote(C)
      5 track1 += QuarterNote(C)

TypeError: __init__() got an unexpected keyword argument 'data'

In [7]:
track1.make_ticks_abs()
track1


Out[7]:
midi.Track(\
  [midi.TrackNameEvent(tick=0, text='First Chord', data=[]),
   midi.NoteOnEvent(tick=0, channel=0, data=[48, 100]),
   midi.NoteOnEvent(tick=0, channel=0, data=[52, 100]),
   midi.NoteOnEvent(tick=0, channel=0, data=[55, 100]),
   midi.NoteOffEvent(tick=192, channel=0, data=[48, 0]),
   midi.NoteOffEvent(tick=192, channel=0, data=[52, 0]),
   midi.NoteOffEvent(tick=192, channel=0, data=[55, 0]),
   midi.NoteOnEvent(tick=192, channel=0, data=[48, 100]),
   midi.NoteOnEvent(tick=192, channel=0, data=[52, 100]),
   midi.NoteOnEvent(tick=192, channel=0, data=[55, 100]),
   midi.NoteOffEvent(tick=384, channel=0, data=[48, 0]),
   midi.NoteOffEvent(tick=384, channel=0, data=[52, 0]),
   midi.NoteOffEvent(tick=384, channel=0, data=[55, 0]),
   midi.NoteOnEvent(tick=384, channel=0, data=[48, 100]),
   midi.NoteOnEvent(tick=384, channel=0, data=[52, 100]),
   midi.NoteOnEvent(tick=384, channel=0, data=[55, 100]),
   midi.NoteOffEvent(tick=576, channel=0, data=[48, 0]),
   midi.NoteOffEvent(tick=576, channel=0, data=[52, 0]),
   midi.NoteOffEvent(tick=576, channel=0, data=[55, 0]),
   midi.NoteOnEvent(tick=576, channel=0, data=[48, 100]),
   midi.NoteOnEvent(tick=576, channel=0, data=[52, 100]),
   midi.NoteOnEvent(tick=576, channel=0, data=[55, 100]),
   midi.NoteOffEvent(tick=768, channel=0, data=[48, 0]),
   midi.NoteOffEvent(tick=768, channel=0, data=[52, 0]),
   midi.NoteOffEvent(tick=768, channel=0, data=[55, 0]),
   midi.EndOfTrackEvent(tick=768, data=[])])

In [15]:
192 + (192 / 2.0) + (192 / 4.0) + (192 / 8.0) + (192 / 16.0) + (192 / 32.0) + (192 / 64.0)


Out[15]:
381.0

In [4]:
ptrn.append(track1)
ptrn


Out[4]:
midi.Pattern(format=1, resolution=192, tracks=\
[[midi.TrackNameEvent(tick=0, text='Default 4/4 Pattern', data=[]),
  midi.TimeSignatureEvent(tick=0, data=[4, 2, 24, 8]),
  midi.SetTempoEvent(tick=0, data=[7, 161, 32]),
  midi.EndOfTrackEvent(tick=0, data=[])],
 midi.Track(\
  [midi.TrackNameEvent(tick=0, text='First Chord', data=[]),
   midi.NoteOnEvent(tick=0, channel=0, data=[48, 100]),
   midi.NoteOnEvent(tick=0, channel=0, data=[52, 100]),
   midi.NoteOnEvent(tick=0, channel=0, data=[55, 100]),
   midi.NoteOffEvent(tick=192, channel=0, data=[48, 0]),
   midi.NoteOffEvent(tick=0, channel=0, data=[52, 0]),
   midi.NoteOffEvent(tick=0, channel=0, data=[55, 0]),
   midi.NoteOnEvent(tick=0, channel=0, data=[48, 100]),
   midi.NoteOnEvent(tick=0, channel=0, data=[52, 100]),
   midi.NoteOnEvent(tick=0, channel=0, data=[55, 100]),
   midi.NoteOffEvent(tick=192, channel=0, data=[48, 0]),
   midi.NoteOffEvent(tick=0, channel=0, data=[52, 0]),
   midi.NoteOffEvent(tick=0, channel=0, data=[55, 0]),
   midi.NoteOnEvent(tick=0, channel=0, data=[48, 100]),
   midi.NoteOnEvent(tick=0, channel=0, data=[52, 100]),
   midi.NoteOnEvent(tick=0, channel=0, data=[55, 100]),
   midi.NoteOffEvent(tick=192, channel=0, data=[48, 0]),
   midi.NoteOffEvent(tick=0, channel=0, data=[52, 0]),
   midi.NoteOffEvent(tick=0, channel=0, data=[55, 0]),
   midi.NoteOnEvent(tick=0, channel=0, data=[48, 100]),
   midi.NoteOnEvent(tick=0, channel=0, data=[52, 100]),
   midi.NoteOnEvent(tick=0, channel=0, data=[55, 100]),
   midi.NoteOffEvent(tick=192, channel=0, data=[48, 0]),
   midi.NoteOffEvent(tick=0, channel=0, data=[52, 0]),
   midi.NoteOffEvent(tick=0, channel=0, data=[55, 0]),
   midi.EndOfTrackEvent(tick=0, data=[])])])

In [5]:
midi.write_midifile("easy_chord.mid", ptrn)

In [5]:


In [ ]: