Audio Challenge

9 views
Skip to first unread message

Ian Charnas

unread,
Feb 14, 2010, 3:20:46 PM2/14/10
to dis...@makersalliance.org, neo-m...@googlegroups.com
Hey hackers, I'm running into a hurdle with the Tesla Orchestra and
was hoping one of you clever people might have a solution for us.

We are looking for an audio application that will let us record from a
MIDI keyboard, and play back using various drum and synth sounds.
There's LOTS of software that does that, but our particular challenge
is that the different tracks need to be output to different sound
cards.

Background: Basically in our main computer, we have one sound card for
outputting the synth and drum tracks, and then two more soundcards,
each outputting to a hysteresis circuit that converts everything to a
square wave and sends those signals over fiber optics to our two new
tesla coils.

any tips on how to get different audio tracks to play out of different
soundcards? Can Sibelius or AudioMulch or something do this?

any help would be greatly appreciated
Ian

Paul Tagliamonte

unread,
Feb 14, 2010, 3:22:26 PM2/14/10
to neo-m...@googlegroups.com
I feel kinda tacky for saying this, but I gotta plug F/OSS, such as
PulseAudio on something like Debian or Ubuntu.

Rosegarden will do you well :)

-Paul

--
#define sizeof(x) rand()
:wq

Paul Tagliamonte

unread,
Feb 14, 2010, 3:22:58 PM2/14/10
to neo-m...@googlegroups.com
Sorry, Jack! Not Pulse.

-Paul

dave walton

unread,
Feb 15, 2010, 1:08:13 AM2/15/10
to neo-m...@googlegroups.com, dis...@makersalliance.org
Under the Dot Net framework you can address multiple sound cards
individually. The tricky part would be synchronizing them. As long as
the bitrates are the same for each track, launching each on it's own
thread should do the trick. But there would be no easy way to monitor
the outputs as they are playing to detect if one was interrupted for
some reason. In the typical Windows fashion, the practical way to
address the situation is to throw more hardware at the problem and use
one processor core for each track tying each thread to it's own core
by setting its affinity. Thread.BeginThreadAffinity() might do the
trick. Never tried that but it sounds fun.

-Dave Walton


On Sun, Feb 14, 2010 at 3:20 PM, Ian Charnas <ian.c...@gmail.com> wrote:

ken

unread,
Feb 15, 2010, 1:46:15 PM2/15/10
to neo-m...@googlegroups.com
While I'm not an expert in audio software, I would second Paul's
recommendation of free and open source software (FOSS)... and not feel
tacky about it at all. If outputting different tracks to different
sound cards is a *must-have*, and if no other software is available that
will do this, you can take the code from an existing FOSS app and add to
it the functionality you need-- this because you already have the source
code for a full-blown application and an operating system which supports
it. 'All' you'd need do is alter the source code in three general
areas: the two low-level functionalities which, respectively, write and
read the digitized audio, and the user interface to connect and identify
the each track with its proper audio device. I put the quotes around
'All' because modifying the code in this way wouldn't be a trivial task;
it would though be much easier than writing the entire app from scratch.
This is the advantage of FOSS.

Having said all of the above though, I have to ask, how is what you're
looking for different from stereo?

Reply all
Reply to author
Forward
0 new messages