ó ÃS(?t EventRegistrycBs)eZiZiZd„ZeeƒZRS(cCs¨t|krD|j|jks1td|jƒ‚||j|jRBRCR?(((s1/home/matti/devel/msp430/wavetable/midi/events.pyR=“s     tProgramChangeEventcBsDeZdgZdZdZdZd„Zd„ZeeeƒZ RS(R?iÀisProgram ChangecCs||jd|jdBdS(Niiii (R(R((s1/home/matti/devel/msp430/wavetable/midi/events.pyR5ÃscCs4|d}|d@|jd<|d?d@|jd^q%}t|ƒS(Niii(tlenRRtindextsum(Rtxtvals((s1/home/matti/devel/msp430/wavetable/midi/events.pytget_mpqns4cCs6gtdƒD]}|dd|?d@^q |_dS(Niiiiÿ(trangeR(RR*Rd((s1/home/matti/devel/msp430/wavetable/midi/events.pytset_mpqn!s( RRR.RRRR_R`R9R\RfRhR](((s1/home/matti/devel/msp430/wavetable/midi/events.pyR[s     tSmpteOffsetEventcBseZdZdZRS(s SMPTE OffsetiT(RRRR(((s1/home/matti/devel/msp430/wavetable/midi/events.pyRi%stTimeSignatureEventcBs°eZddddgZdZdZdZd„Zd„ZeeeƒZ d „Z d „Z ee e ƒZ d „Z d „Zee eƒZd „Zd„ZeeeƒZRS(t numeratort denominatort metronomet thirtysecondssTime SignatureiXicCs |jdS(Ni(R(R((s1/home/matti/devel/msp430/wavetable/midi/events.pyt get_numerator/scCs||jds<-