By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,919 Members | 1,074 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,919 IT Pros & Developers. It's quick & easy.

Some guidance please: A Python multitrack recorder?

P: n/a
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()
Jul 18 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Hello, Dfenestr8!
You wrote on Fri, 04 Jul 2003 16:15:11 +0900:

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

[Snipped]

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

The developers build such modules as tkSnack with C/C++, so they work fast.

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

Python is a kind of serious language. If you can find all low-level modules
your programm need, then you have not to use C++.

[Snipped]
With best regards, Egor Bolonev. E-mail: eb******@rol.ru [ru eo en]

Jul 18 '05 #2

P: n/a
"Dfenestr8" wrote in message:
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.


If you like python and music you may be interested in these links:

- http://csounds.com/
- http://www.csounds.com/stevenyi/blue/

- http://cnmat.cnmat.berkeley.edu/OSC/
- http://galatea.stetson.edu/cgi-bin/v...i/ProctoLogic/
- http://www.stetson.edu/departments/m...ents/research/
cs/cs498/2001/danny_clinton/final.pdf

- http://seqdublin.sourceforge.net/

- http://lennart.regebro.nu/music/python-midi/

Have fun,

Sandy
Jul 18 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.