Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 def test_cmaj(self):
     (base_note, mode) = normalize_abc_key('Cmajor')
     self.assertEqual('C', base_note)
     self.assertEqual('maj', mode)
Ejemplo n.º 3
0
 def test_f_sharp_maj(self):
     (base_note, mode) = normalize_abc_key('F#maj')
     self.assertEqual('F#', base_note)
     self.assertEqual('maj', mode)
Ejemplo n.º 4
0
 def test_b_flat_maj(self):
     (base_note, mode) = normalize_abc_key('Bbmaj')
     self.assertEqual('Bb', base_note)
     self.assertEqual('maj', mode)
Ejemplo n.º 5
0
 def test_eeol(self):
     (base_note, mode) = normalize_abc_key('Eeolian')
     self.assertEqual('E', base_note)
     self.assertEqual('min', mode)
Ejemplo n.º 6
0
 def test_ador(self):
     (base_note, mode) = normalize_abc_key('Adorian')
     self.assertEqual('A', base_note)
     self.assertEqual('dor', mode)
Ejemplo n.º 7
0
 def test_dmix(self):
     (base_note, mode) = normalize_abc_key('Dmixolydian')
     self.assertEqual('D', base_note)
     self.assertEqual('mix', mode)
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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