Esempio n. 1
0
    def onBtnSaveWave(self, e=None):
        if not self.isMidiLoaded:
            midirender_util.alert('Please open a MIDI file first.')
            return

        filename = midirender_util.ask_savefile(title="Create Wav File",
                                                types=['.wav|Wav file'])
        if not filename:
            return

        midicopy = self.buildModifiedMidi()
        arParams, directoryForOldTimidity = self.getParamsForTimidity(True)
        if arParams is None:
            return

        arParams.append('-o')
        arParams.append(filename)

        # play it synchronously, meaning that the whole program stalls while this happens...
        midirender_util.alert('Beginning export to wave...')
        objplayer = midirender_runtimidity.RenderTimidityMidiPlayer()
        objplayer.setConfiguration(self.buildCfg(), directoryForOldTimidity)
        objplayer.setParameters(arParams)
        objplayer.playMidiObject(midicopy, bSynchronous=True)
        if self.consoleOutWindow is not None:
            self.consoleOutWindow.clear()
            self.consoleOutWindow.writeToWindow(objplayer.strLastStdOutput)
        midirender_util.alert('Completed.')
Esempio n. 2
0
	def onBtnSaveWave(self,e=None):
		if not self.isMidiLoaded:
			midirender_util.alert('Please open a MIDI file first.')
			return
		
		filename = midirender_util.ask_savefile(title="Create Wav File", types=['.wav|Wav file'])
		if not filename:
			return
			
		midicopy = self.buildModifiedMidi()
		arParams, directoryForOldTimidity = self.getParamsForTimidity(True)
		if arParams is None:
			return
			
		arParams.append('-o')
		arParams.append(filename)
		
		# play it synchronously, meaning that the whole program stalls while this happens...
		midirender_util.alert('Beginning export to wave...')
		objplayer = midirender_runtimidity.RenderTimidityMidiPlayer()
		objplayer.setConfiguration(self.buildCfg(), directoryForOldTimidity)
		objplayer.setParameters(arParams)
		objplayer.playMidiObject(midicopy, bSynchronous=True)
		if self.consoleOutWindow is not None:
			self.consoleOutWindow.clear()
			self.consoleOutWindow.writeToWindow(objplayer.strLastStdOutput)
		midirender_util.alert('Completed.')
Esempio n. 3
0
	def onBtnSaveWave(self,e=None):
		if not self.isMidiLoaded: return
		filename = midirender_util.ask_savefile(title="Create Wav File", types=['.wav|Wav file'])
		if not filename: return
			
		midicopy = self.buildModifiedMidi()
		
		if self.audioOptsWindow != None:
			arParams = self.audioOptsWindow.createTimidityOptionsList(includeRenderOptions=True) 
			if arParams==None: return #evidently an error occurred over there
		else:
			arParams =['-Ow']
		
		arParams.append('-o')
		arParams.append(filename)
		
		#Play it synchronously, meaning that the whole program stalls while this happens...
		midirender_util.alert('Beginning wave process. Be patient... this may take a few moments...')
		objplayer = midirender_runtimidity.RenderTimidityMidiPlayer()
		objplayer.setConfiguration(self.buildCfg())
		objplayer.setParameters(arParams)
		
		objplayer.playMidiObject(midicopy, bSynchronous=True)
		if self.consoleOutWindow!=None: self.consoleOutWindow.clear(); self.consoleOutWindow.writeToWindow(objplayer.strLastStdOutput)
		midirender_util.alert('Completed.')
Esempio n. 4
0
	def menuModifyRawMidi(self, evt=None):
		if sys.platform != 'win32':
			midirender_util.alert('Only supported on windows')
			return
		
		import tempfile, os, subprocess
		
		m2t = midirender_util.bmidirenderdirectory+'\\timidity\\m2t.exe'
		t2m = midirender_util.bmidirenderdirectory+'\\timidity\\t2m.exe'
		notepadexe = 'C:\\Windows\\System32\\notepad.exe'
		if not os.path.exists(m2t) or not os.path.exists(t2m) or not os.path.exists(notepadexe):
			midirender_util.alert('Could not find %s or %s or %s.'%(m2t, t2m, notepadexe))
			return
		
		filenameMidInput = midirender_util.ask_openfile(title="Choose Midi File to modify", types=['.mid|Mid file'])
		if not filenameMidInput: return
		
		
		filenameText = tempfile.gettempdir() + os.sep + 'tmpout.txt'
		try:
			if os.path.exists(filenameText):
				os.unlink(filenameText)
		except:
			pass
		if os.path.exists(filenameText):
			midirender_util.alert('Could not clear temporary file')
			return
		
		args = [m2t, filenameMidInput, filenameText]
		retcode = subprocess.call(args)
		if retcode:
			midirender_util.alert('Midi to text returned failure')
			return
		if not os.path.exists(filenameText):
			midirender_util.alert('Midi to text did not write text file')
			return
		
		midirender_util.alert("You'll see the text file in notepad. Save and close when done editing.")
		modtimebefore = os.path.getmtime(filenameText)
		args = [notepadexe, filenameText]
		retcode = subprocess.call(args)
		if modtimebefore == os.path.getmtime(filenameText):
			# looks like the user cancelled before making any edits
			return
			
		filenameMidOutput = midirender_util.ask_savefile(title="Choose destination for Midi File", types=['.mid|Mid file'])
		if not filenameMidOutput: return
		
		args = [t2m, filenameText, filenameMidOutput]
		retcode = subprocess.call(args)
		if retcode:
			midirender_util.alert('text to midi returned failure')
			return
		if not os.path.exists(filenameMidOutput):
			midirender_util.alert('text to midi did not write midi file')
			return
		midirender_util.alert('Complete.')
Esempio n. 5
0
	def saveModifiedMidi(self, evt=None):
		if not self.isMidiLoaded: return
		filename = midirender_util.ask_savefile(title="Save Midi File", types=['.mid|Mid file'])
		if not filename: return
		
		mfile = self.buildModifiedMidi()
		if mfile:
			mfile.open(filename,'wb')
			mfile.write()
			mfile.close()
Esempio n. 6
0
    def saveModifiedMidi(self, evt=None):
        if not self.isMidiLoaded:
            midirender_util.alert('Please open a MIDI file first.')
            return

        filename = midirender_util.ask_savefile(title="Save Midi File",
                                                types=['.mid|Mid file'])
        if not filename:
            return

        mfile = self.buildModifiedMidi()
        if mfile:
            mfile.open(filename, 'wb')
            mfile.write()
            mfile.close()
Esempio n. 7
0
    def menuModifyRawMidi(self, evt=None):
        if sys.platform != 'win32':
            midirender_util.alert('Only supported on windows')
            return

        import tempfile, os, subprocess
        m2t = midirender_util.bmidirenderdirectory + '\\timidity\\m2t.exe'
        t2m = midirender_util.bmidirenderdirectory + '\\timidity\\t2m.exe'
        notepadexe = 'C:\\Windows\\System32\\notepad.exe'
        if not os.path.exists(m2t) or not os.path.exists(
                t2m) or not os.path.exists(notepadexe):
            midirender_util.alert('Could not find %s or %s or %s.' %
                                  (m2t, t2m, notepadexe))
            return

        filenameMidInput = midirender_util.ask_openfile(
            title='Choose Midi File to modify', types=['.mid|Mid file'])
        if not filenameMidInput:
            return

        filenameText = tempfile.gettempdir() + os.sep + 'tmpout.txt'
        try:
            if os.path.exists(filenameText):
                os.unlink(filenameText)
        except:
            pass
        if os.path.exists(filenameText):
            midirender_util.alert('Could not clear temporary file')
            return

        args = [m2t, filenameMidInput, filenameText]
        retcode = subprocess.call(args, creationflags=0x08000000)
        if retcode:
            midirender_util.alert('Midi to text returned failure')
            return
        if not os.path.exists(filenameText):
            midirender_util.alert('Midi to text did not write text file')
            return

        midirender_util.alert(
            "You'll see the text file in notepad. Save and close when done editing."
        )
        modtimebefore = os.path.getmtime(filenameText)
        args = [notepadexe, filenameText]
        retcode = subprocess.call(args)
        if modtimebefore == os.path.getmtime(filenameText):
            # looks like the user cancelled before making any edits
            return

        filenameMidOutput = midirender_util.ask_savefile(
            title="Choose destination for Midi File", types=['.mid|Mid file'])
        if not filenameMidOutput: return

        args = [t2m, filenameText, filenameMidOutput]
        retcode = subprocess.call(args, creationflags=0x08000000)
        if retcode:
            midirender_util.alert('text to midi returned failure')
            return
        if not os.path.exists(filenameMidOutput):
            midirender_util.alert('text to midi did not write midi file')
            return
        midirender_util.alert('Complete.')