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
Пример #2
0
 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
Пример #4
0
 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')
Пример #5
0
 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)
Пример #6
0
 def test_aa05_format(self):
     self.assertTrue(zynsmf.load(smf, "./test.mid"))
     self.assertEqual(libsmf.getFormat(smf), 1)
Пример #7
0
 def test_aa04_tracks(self):
     self.assertTrue(zynsmf.load(smf, "./test.mid"))
     self.assertEqual(libsmf.getTracks(smf), 1)
Пример #8
0
 def test_aa03_position(self):
     self.assertTrue(zynsmf.load(smf, "./test.mid"))
     libsmf.setPosition(smf, 2)
     self.assertGreaterEqual(libsmf.getEventTime(), 2)
Пример #9
0
 def test_aa02_duration(self):
     self.assertTrue(zynsmf.load(smf, "./test.mid"))
     self.assertEqual(libsmf.getDuration(smf), 6125)
Пример #10
0
 def test_aa01_load(self):
     self.assertTrue(zynsmf.load(smf, "./test.mid"))