Re: [linux-audio-dev] Setting up a vocoder demo?

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Setting up a vocoder demo?
From: Josh Green (jgreen_AT_users.sourceforge.net)
Date: Sun Jun 17 2001 - 15:17:51 EEST


Frank Neumann wrote:
>
> Hi *,
> for LinuxTag, I thought a nice demo would be to show some kind of
> vocoder under Linux. My idea goes like this:
> - Put two soundcards in a machine, one gets input from a microphone, the
> other gets string-type chords from a synth.
> - The vocoder software uses these two as carrier and modulator to
> produce some nice alien/space/scifi type of sounds/voices
> - This is put out again through one of the two soundcards. Both are
> Emu10k1 based, so I think both are able to do duplex pcm
> recording/playing at 16 bit.
>
> - Of course, all of this should be done in realtime.
>
> The only question I have: What software to use? I have found a few links
> at Dave Phillips' page, but I have no experience with these programs; do
> any of you have actual "stage experience" with one of them?
>

I just finished implimenting a LADSPA plugin using Settel's vocoder
program (http://www.uni-karlsruhe.de/~uno4/linux/). I'm not releasing it
yet as it doesn't have a registered LADSPA unique ID.

I tested it with an SB Live, ALSA 0.9.0beta4 and ecasound. We actually
only need one SB Live card (which also gets rid of the sync problem) as
we can record the Formant and Carrier signals from the Right and Left
channels of the sound card. The output is mono.
This is my first LADSPA plugin and I had a lot of fun with it. I tried
many synth Carrier signals including output from sound font instruments
I created and a Roland Juno-1. I used a microphone and TV output for
Formant signal. It was pretty fun listening to roboticised commercials
on TV :)

I got okay "real time" performance (buffer size of 256 worked alright,
other sizes caused weired things).

I did run into some rather serious problems with ecasound. After a
period of about 15 minutes or so the audio starts to degrade quite a lot
(lots of pops and clicks) but no underruns are occuring. I varified that
it is not my plugin by playing back a recorded stream directly (full
duplex, perhaps I should try a non-duplex test) with no plugins. I'm
also quite confused by how the mixer works with an SB Live and ALSA
0.9.0beta4. Many of the controls do weired things or not the expected.

To be honest I'm not real sure how the vocoder related code works, I
just adapted it to LADSPA. So things are probably not optimized. I would
also like some input on my current LADSPA implimentation. I have a
LADSPA control port for setting the number of frequency bands for the
vocoder. I have a current maximum value of 16 bands. There are then 16
level control ports for each individual band (0.0 - 1.0).

This seems a little crude to me. It would be nice if LADSPA had a way to
support this kind of situation. For one thing there isn't a way to know
the # of bands the user requested until the "run" routine is executed
(would be nice if all controls were gaurenteed valid with the "activate"
routine). So rather than dynamically allocating data (depending on the #
of bands) I just allocate for a maximum amount of bands (not in the run
routine of course). The original vocoder program I ripped this from had
stereo panning controls per band, that would make things even more
complicated.

I will notify the list once I get my LADSPA unique ID and release the
plugin. Lates..
        Josh Green


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Sun Jun 17 2001 - 15:17:29 EEST