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.')
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.')
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.')
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.')
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()
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()
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.')