def test_b_in_c_sharp_maj(self):
     alteration = get_note_alteration_in_key('B', ('C#', 'maj'))
     self.assertEqual('^', alteration)
 def test_f_in_gmaj(self):
     alteration = get_note_alteration_in_key('F', ('G', 'maj'))
     self.assertEqual('^', alteration)
 def test_e_in_dmaj(self):
     alteration = get_note_alteration_in_key('E', ('D', 'maj'))
     self.assertEqual('', alteration)
 def test_e_in_d_flat_phr(self):
     alteration = get_note_alteration_in_key('E', ('Db', 'phr'))
     self.assertEqual('__', alteration)
 def test_f_in_gmaj(self):
     alteration = get_note_alteration_in_key('F', ('G', 'maj'))
     self.assertEqual('^', alteration)
 def test_f_in_dmix(self):
     alteration = get_note_alteration_in_key('F', ('D', 'mix'))
     self.assertEqual('^', alteration)
 def test_b_in_cdor(self):
     alteration = get_note_alteration_in_key('B', ('C', 'dor'))
     self.assertEqual('_', alteration)
 def test_e_in_cmin(self):
     alteration = get_note_alteration_in_key('E', ('C', 'min'))
     self.assertEqual('_', alteration)
 def test_b_in_cdor(self):
     alteration = get_note_alteration_in_key('B', ('C', 'dor'))
     self.assertEqual('_', alteration)
 def test_e_in_b_flat_maj(self):
     alteration = get_note_alteration_in_key('E', ('Bb', 'maj'))
     self.assertEqual('_', alteration)
 def test_f_in_dmix(self):
     alteration = get_note_alteration_in_key('F', ('D', 'mix'))
     self.assertEqual('^', alteration)
 def test_b_in_fmaj(self):
     alteration = get_note_alteration_in_key('B', ('F', 'maj'))
     self.assertEqual('_', alteration)
 def test_b_in_c_sharp_maj(self):
     alteration = get_note_alteration_in_key('B', ('C#', 'maj'))
     self.assertEqual('^', alteration)
 def test_e_in_dmaj(self):
     alteration = get_note_alteration_in_key('E', ('D', 'maj'))
     self.assertEqual('', alteration)
 def test_b_in_fmaj(self):
     alteration = get_note_alteration_in_key('B', ('F', 'maj'))
     self.assertEqual('_', alteration)
 def test_c_in_cmaj(self):
     alteration = get_note_alteration_in_key('C', ('C', 'maj'))
     self.assertEqual('', alteration)
 def test_e_in_b_flat_maj(self):
     alteration = get_note_alteration_in_key('E', ('Bb', 'maj'))
     self.assertEqual('_', alteration)
 def test_f_in_c_sharp_lyd(self):
     alteration = get_note_alteration_in_key('F', ('C#', 'lyd'))
     self.assertEqual('^^', alteration)
 def test_e_in_cmin(self):
     alteration = get_note_alteration_in_key('E', ('C', 'min'))
     self.assertEqual('_', alteration)
 def test_e_in_d_flat_phr(self):
     alteration = get_note_alteration_in_key('E', ('Db', 'phr'))
     self.assertEqual('__', alteration)
 def test_f_in_c_sharp_lyd(self):
     alteration = get_note_alteration_in_key('F', ('C#', 'lyd'))
     self.assertEqual('^^', alteration)
Exemple #22
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
 def test_c_in_cmaj(self):
     alteration = get_note_alteration_in_key('C', ('C', 'maj'))
     self.assertEqual('', alteration)
Exemple #24
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