def test_g_with_leading_and_trailing_spaces(self): (base_note, mode) = normalize_abc_key(' G ') self.assertEqual('G', base_note) self.assertEqual('maj', mode)
def test_cmaj(self): (base_note, mode) = normalize_abc_key('Cmajor') self.assertEqual('C', base_note) self.assertEqual('maj', mode)
def test_f_sharp_maj(self): (base_note, mode) = normalize_abc_key('F#maj') self.assertEqual('F#', base_note) self.assertEqual('maj', mode)
def test_b_flat_maj(self): (base_note, mode) = normalize_abc_key('Bbmaj') self.assertEqual('Bb', base_note) self.assertEqual('maj', mode)
def test_eeol(self): (base_note, mode) = normalize_abc_key('Eeolian') self.assertEqual('E', base_note) self.assertEqual('min', mode)
def test_ador(self): (base_note, mode) = normalize_abc_key('Adorian') self.assertEqual('A', base_note) self.assertEqual('dor', mode)
def test_dmix(self): (base_note, mode) = normalize_abc_key('Dmixolydian') self.assertEqual('D', base_note) self.assertEqual('mix', mode)
def demo_play_sporting_nell(bpm=90, instrument='Acoustic Grand Piano'): player = snap.SingleNoteAbcPlayer() player.setup_synth() player.select_instrument(instrument) # Setup sequencer over existing player sequencer = fluidsequencer.FluidSequencer(player._handle) sequencer.beats_per_minute = bpm beat_length = sequencer.ticks_per_beat print("BPM: {0}".format(sequencer.beats_per_minute)) print("TPB: {0}".format(sequencer.ticks_per_beat)) print("TPS: {0}".format(sequencer.ticks_per_second)) dest = sequencer.add_synth(player._synth) ticks = sequencer.ticks + 10 abc_key = 'Dmix' half_bar1 = 'ADED' bar1 = 'ADED A2dc' bar2 = 'ABAG EFG2' midi_note = None for i in range(0, 3): for simple_note in half_bar1: norm_key = abcparser.normalize_abc_key(abc_key) alteration = musictheory.get_note_alteration_in_key(simple_note, norm_key) abc_note = alteration + simple_note midi_note = abc2midi.get_midi_note(abc_note) event = fluidevent.FluidEvent(player._handle) event.dest = dest[0] event.note(0, midi_note, 127, int(beat_length * 0.25)) sequencer.send(event, ticks) ticks += int(beat_length / 4) print('Waiting 4 beats...') time.sleep(60 / bpm * 4) print('Sending event in the past') event = fluidevent.FluidEvent(player._handle) event.dest = dest[0] event.note(0, midi_note, 127, int(beat_length * 0.25)) #sequencer.send(event, ticks) sequencer.send(event, 10) # time.sleep(60 / 90 * 2) # # try: # player._lock.acquire() # player._synth.noteoff(player._midi_channel, midi_note) # finally: # player._lock.release() # # del sequencer # print('Deleted sequencer') print('Waiting 2s...') time.sleep(2) del sequencer del player._driver del player._synth
def demo_play_sporting_nell(bpm=90, instrument='Acoustic Grand Piano'): player = snap.SingleNoteAbcPlayer() player.setup_synth() player.select_instrument(instrument) # Setup sequencer over existing player sequencer = fluidsequencer.FluidSequencer(player._handle) sequencer.beats_per_minute = bpm beat_length = sequencer.ticks_per_beat print("BPM: {0}".format(sequencer.beats_per_minute)) print("TPB: {0}".format(sequencer.ticks_per_beat)) print("TPS: {0}".format(sequencer.ticks_per_second)) dest = sequencer.add_synth(player._synth) ticks = sequencer.ticks + 10 abc_key = 'Dmix' half_bar1 = 'ADED' bar1 = 'ADED A2dc' bar2 = 'ABAG EFG2' midi_note = None for i in range(0, 3): for simple_note in half_bar1: norm_key = abcparser.normalize_abc_key(abc_key) alteration = musictheory.get_note_alteration_in_key( simple_note, norm_key) abc_note = alteration + simple_note midi_note = abc2midi.get_midi_note(abc_note) event = fluidevent.FluidEvent(player._handle) event.dest = dest[0] event.note(0, midi_note, 127, int(beat_length * 0.25)) sequencer.send(event, ticks) ticks += int(beat_length / 4) print('Waiting 4 beats...') time.sleep(60 / bpm * 4) print('Sending event in the past') event = fluidevent.FluidEvent(player._handle) event.dest = dest[0] event.note(0, midi_note, 127, int(beat_length * 0.25)) #sequencer.send(event, ticks) sequencer.send(event, 10) # time.sleep(60 / 90 * 2) # # try: # player._lock.acquire() # player._synth.noteoff(player._midi_channel, midi_note) # finally: # player._lock.release() # # del sequencer # print('Deleted sequencer') print('Waiting 2s...') time.sleep(2) del sequencer del player._driver del player._synth