Hi Ben,
Ben Loftis wrote:
From: Olivier
Guilyardi <ml(a)xung.org>
Okay, so I now have an idea of what convolution is. Your little piece of
software is very nice, very easy to understand. I used three samples : a
bassdrum, a snare drum, and a short guitar chord. I plugged the output
of one of my pads into jack_convolve's input and its output into the
alsa_pcm playback.
Both the bassdrum and the chord sounded quite nice. But the snare drum
sounded like very far away. I guess this comes from the silence at the
end of this sample.
What exactly happens with these "response files" ? Should I use very
simple samples, like a sine wave with no silence ? Shouldn't convolving
be coupled with trigerring ? I mean : hitting the pad would start the
sample playback, and the convolving engine would use both this sample
playback and the pad signal to produce its output. In this case,
jack_convolve would then need one output and two inputs :
- one for the pad signal,
- and one for the "response signal", that is : the sample playback that
started right when the pad got hit
Is this possible, or do I misunderstand convolution here ?
Olivier, I think the next step is to run jack_convolve, and connect the
soundcard input directly into jack_convolve's input using qjackctl. then
connect the output of jack_convovle to the soundcard's outputs.
(jack_convolve may already do this for you, I can't check just this moment)
Well, sorry if I did not explained myself correctly but that's exactly what I
did (please see the first paragraph above).
Now when you hit a pad, it should be
"convolved" with the response signal
giving you something different than the simple "click" of the input signal.
I'm very interested to see how this works out (I
suggested this path to
Olivier, I hope it's not totally worthless :) ). It could be a way to build
a cheap, responsive electronic drum kit that preserves the nuances of the
input signal. I wonder if this is how the Korg Wavedrum worked?
And, as I said above, it did work better with some samples than with others,
but: it works :-)
Here are three example of what it sounds like, using a modified guitar chord
sample as response file :
1 - For this one I softly hit the edge of the pad continuously, and the middle
of the edge harder once at the beginning of the measure :
http://samalyse.com/labs/edrum/audio/beat.ogg
2 - Playing faster ("rolling") with this one :
http://samalyse.com/labs/edrum/audio/roll.ogg
3 - Using a pen to hit and scratch the surface. The rubber surface, made of
several layers of bike tube makes it possible to obtain an interesting sound
(the input level was not high enough for this one, so I normalized it afterward,
it could sounds much better I think) :
http://samalyse.com/labs/edrum/audio/scratch.ogg
As you may see, scratching seems to work fine in here :-)
By the way, Ben, what do you think of my idea of coupling triggering with
convolution, as stated in my previous mail (above, third paragraph) ? Here's a
diagram to further describe this idea :
pad signal ----> trigger detection ----> sample playback -----
| |
| |
-------------------------------------> convolution <----
|
|
+--> output
Would this be possible ?
--
og