def start_playing(self, fpath=None): self.stop_playing() if fpath is None: fpath = self.get_current_track_fpath() if fpath is None: logging.info("No track to play!") return logging.info("STARTING MIDI PLAY '{}' ...".format(fpath)) try: zynsmf.load(self.smf_player,fpath) tempo = int(libsmf.getTempo(self.smf_player, 0)) libseq.setTempo(tempo) #TODO: This isn't working libsmf.startPlayback() zynseq.transport_start("zynsmf") # libseq.transportLocate(0) self.show_playing_bpm() self.current_playback_fpath=fpath self.smf_timer = Timer(interval = 1, function=self.check_playback) self.smf_timer.start() except Exception as e: logging.error("ERROR STARTING MIDI PLAY: %s" % e) self.zyngui.show_info("ERROR STARTING MIDI PLAY:\n %s" % e) self.zyngui.hide_info_timer(5000) self.update_list() return True
def test_aa06_event(self): self.assertTrue(zynsmf.load(smf, "./test.mid")) self.assertEqual(libsmf.getEventTime(), 0) self.assertEqual(libsmf.getEventType(), 1) self.assertEqual(libsmf.getEventChannel(), 0) self.assertEqual(libsmf.getEventStatus(), 0x90) self.assertEqual(libsmf.getEventValue1(), 60) self.assertEqual(libsmf.getEventValue2(), 100)
def get_filelist(self, src_dir): res = {} for f in sorted(os.listdir(src_dir)): fpath = join(src_dir, f) fname = f[:-4] fext = f[-4:].lower() if isfile(fpath) and fext in ('.mid'): res[fname] = {'fpath': fpath, 'ext': fext} smf = libsmf.addSmf() for fname in res: try: zynsmf.load(smf, res[fname]['fpath']) res[fname]['length'] = libsmf.getDuration(smf) except Exception as e: res[fname]['length'] = 0 logging.warning(e) libsmf.removeSmf(smf) return res
def test_ab_01_player(self): self.assertTrue(zynsmf.load(smf, "./test.mid")) self.assertTrue(libsmf.attachPlayer(smf)) port = None try: port = client.get_port_by_name('zynmidiplayer:midi_out') except: pass self.assertIsNotNone(port) libsmf.removePlayer(smf) sleep(0.1) self.assertRaises(jack.JackError, client.get_port_by_name, 'zynmidiplayer:midi_out')
def test_ab02_playback(self): self.assertEqual(client.transport_state, jack.STOPPED) self.assertTrue(zynsmf.load(smf, "./test.mid")) self.assertTrue(libsmf.attachPlayer(smf)) libsmf.startPlayback(False) self.assertEqual(libsmf.getPlayState(), STARTING) client.transport_start() self.assertEqual(client.transport_state, jack.ROLLING) self.assertEqual(libsmf.getPlayState(), PLAYING) # Stop libsmf.stopPlayback(False) self.assertEqual(libsmf.getPlayState(), STOPPING) sleep(0.1) self.assertEqual(client.transport_state, jack.STOPPED) self.assertEqual(libsmf.getPlayState(), STOPPED)
def test_aa05_format(self): self.assertTrue(zynsmf.load(smf, "./test.mid")) self.assertEqual(libsmf.getFormat(smf), 1)
def test_aa04_tracks(self): self.assertTrue(zynsmf.load(smf, "./test.mid")) self.assertEqual(libsmf.getTracks(smf), 1)
def test_aa03_position(self): self.assertTrue(zynsmf.load(smf, "./test.mid")) libsmf.setPosition(smf, 2) self.assertGreaterEqual(libsmf.getEventTime(), 2)
def test_aa02_duration(self): self.assertTrue(zynsmf.load(smf, "./test.mid")) self.assertEqual(libsmf.getDuration(smf), 6125)
def test_aa01_load(self): self.assertTrue(zynsmf.load(smf, "./test.mid"))