Some guidance please: A Python multitrack recorder?

Dfenestr8 not at home.org
Fri Jul 4 03:15:11 EDT 2003


Hi.

I'm no coder. I'm just a working guy who likes to tinker with computers in
my spare time.

That's my hobby. My passion is: playing instruments. Combining the two,
I've made a couple of event driven, GUI controlled progs in Python and
tKinter before. I made an abc/midi player, using the timidity, and
abc2midi packages. I also did a metronome, using the Snack sound toolkit.

My next project is to make my own sound recorder, using Tkinter and the
Snack Sound toolkit. I have an idea, that using multiple threads for each
recording track, I could eventually develop it into a multitrack recorder.
I could use linux SOX to add effects to each track.

Does this sound like a stupidly complicated idea for a newby?

Also, is the Python interpreter fast enough for this sort of work?
Especially on a pII 450Mhz with only 256 meg?

Would I be better off just sticking with a single track recorder, until
the day I get around to seriously studying a compiler language like C++?

Here's the skeleton of the code I'm writing......

#! /usr/bin/python

from Tkinter import *
from os import popen, popen2
import threading
import tkSnack

root = Tk()
tkSnack.initializeSnack(root)

class RecThread(threading.Thread):
	#this thread accesses the Snack toolkit
	#and actually does the recording
	def __init__ (self, master = None):
		threading.Thread.__init__(self, master)

class TrackFrame(Frame): 
	#this frame will contain the controls for running RecThead
	#including Rec, Play, and Mute Radiobutton contols.
	def __init__ (self, master = None):
		Frame.__init__(self, master)	
		
class ControlFrame(Frame): 
	#this contains all the arrow keys for controlling TrackFrame
	#it will have Start, Stop, and Pause buttons
	def __init__ (self, master = None):
		Frame.__init__(self, master)
				
class Application(Frame):
	#this is the layout for all of the above
	def __init__ (self, master = None):
		Frame.__init__(self, master)
	
if __name__ == '__main__':

	root.App = Application()
	root.App.master.title("Un Recorder")
	root.App.mainloop()
			
 




More information about the Python-list mailing list