def test_conversions(self): """ of frequencies to midi note numbers and ansi note names. """ from pygame.midi import (frequency_to_midi, midi_to_frequency, midi_to_ansi_note) self.assertEqual(frequency_to_midi(27.5), 21) self.assertEqual(frequency_to_midi(36.7), 26) self.assertEqual(frequency_to_midi(4186.0), 108) self.assertEqual(midi_to_frequency(21), 27.5) self.assertEqual(midi_to_frequency(26), 36.7) self.assertEqual(midi_to_frequency(108), 4186.0) self.assertEqual(midi_to_ansi_note(21), 'A0') self.assertEqual(midi_to_ansi_note(102), 'F#7') self.assertEqual(midi_to_ansi_note(108), 'C8')
def test_conversions(self): """of frequencies to midi note numbers and ansi note names.""" from pygame.midi import frequency_to_midi, midi_to_frequency, midi_to_ansi_note self.assertEqual(frequency_to_midi(27.5), 21) self.assertEqual(frequency_to_midi(36.7), 26) self.assertEqual(frequency_to_midi(4186.0), 108) self.assertEqual(midi_to_frequency(21), 27.5) self.assertEqual(midi_to_frequency(26), 36.7) self.assertEqual(midi_to_frequency(108), 4186.0) self.assertEqual(midi_to_ansi_note(21), "A0") self.assertEqual(midi_to_ansi_note(71), "B4") self.assertEqual(midi_to_ansi_note(82), "A#5") self.assertEqual(midi_to_ansi_note(83), "B5") self.assertEqual(midi_to_ansi_note(93), "A6") self.assertEqual(midi_to_ansi_note(94), "A#6") self.assertEqual(midi_to_ansi_note(95), "B6") self.assertEqual(midi_to_ansi_note(96), "C7") self.assertEqual(midi_to_ansi_note(102), "F#7") self.assertEqual(midi_to_ansi_note(108), "C8")
def update(self): """ To be called in a pygame event loop. """ audios = [] while not self.audio_queue.empty(): # print('-----audio from queue') # print(time.time() - time_start) audio = self.audio_queue.get() audios.append(audio) if audios: pg.event.post(pg.event.Event(AUDIOS, audios=audios)) onsets = [] while not self.oneset_queue.empty(): onsets.append(self.oneset_queue.get()) if onsets: pg.event.post(pg.event.Event(ONSETS, onsets=onsets)) pitches = [] notes = [] frequencies = [] while not self.pitch_queue.empty(): # print("pitch, confidence", pitch, confidence, midi_to_ansi_note(pitch)) pitch = self.pitch_queue.get() pitches.append(pitch) notes.append(midi_to_ansi_note(pitch)) frequencies.append(midi_to_frequency(pitch)) if pitches: pg.event.post( pg.event.Event(PITCHES, pitches=pitches, notes=notes, frequencies=frequencies))