-
udon_juan
Hello All,
I am embarking on building a polyphonic sampler with maybe four or five voices, that would be triggered via drum pads, and would have mute group settings, like the old-school akai samplers.
I want to keep it easy on the processor, and so I want to just have maybe four voices, but play from a least 8 sound files, even better would be 16 or so.
In an old thread HD mentions the following:
@HD said:
You don't have to use a vline/tabread4 for every single sample. You just need to determine the max number of voices that you want to play at any point in time. For example, if you only want to play a max of 4 samples at any point in time, then you only need 4 sample playback subpatches. You can set it up so you load more than 4 samples into your patch, then just use a "set" message to change the buffer you're reading from. I can provide a simple example if you want.
This is exactly what I want to do, and I will set out to do it, but if anyone has an example of what HD was talking about back in 2009, I would love to see it. I will post what i get when I get it up and running.
All the best,
Leigh -
udon_juan
Hello All,
Has anyone wrestled with this? I always have problems when I try to build from source, but since there is no pd-extended in the natty repos, I thought I'd give it a shot.
So far I've installed the dependencies:
sudo apt-get build-dep puredata gem pd-pdp
and more dependencies:
sudo apt-get install libmp3lame0 libmp3lame-dev ladspa-sdk dssi-dev libimlib2-dev libtheora-dev
and lastly:
sudo apt-get install libquicktime1 libquicktime-dev
Now everything goes swimmingly up to this point. Then I downloaded the pd-extended source package, and following the advice from a post -- http://puredata.hurleur.com/sujet-5337-extended-debian -- by some folks building for a 64-bit processor, I jump to the externals/pidip directory to build it first:
cd externals/pidip/
First, just to be on the safe side, I read the INSTALL text, and it concurs with the previously mentioned post. But, when i try:
./configure --with-pd=../../pd --with-pdp=../pdp
I get the following error:
bash: ./configure: No such file or directory
ls seems to disagree:
ls | grep configure gives me:
configure.acI tried making it executable, still no luck. build-essentials and make are installed on my computer.
Any ideas?
All the best, Leigh
-
udon_juan
Hello,
Is DC blocking something that can be implemented for an incoming audio signal within PD, or is it a hardware issue? If it is something that can be done in PD, could someone point me in the direction as far as what objects I would use?
I have a looper I've been working on that uses delaylines, and i would like to minimize the build up of noise as I overlap recorded tracks.
All the best, Leigh
-
udon_juan
Hello all,
I have been trying to put together a patch for looping, but I am having trouble getting the delay line to play right. I tried to follow the outline in this post:
http://puredata.hurleur.com/viewtopic.php?pid=5168#p5168So far I've had no luck. I was wondering if someone would be willing to look at my patch attempt, and set me in the right direction. I'll attach the module I am trying to write. I am going for a multi-track looper with a dynamic array length, and where all subsequent tracks "stick" to the first loop.
All the best,
Leigh -
udon_juan
Oh wow, I had the execution order of the unpack backwards. Thanks, you really helped me out with this info. When I get it working I will post it.
All the best,
Leigh -
udon_juan
I should mention, there is definitely something going on with the envelope. I am printing out the values being sent to the adsr object, and I see that the peak amplitude is always being sent as zero--which is confusing to me. I am using a trigger to send the various parameters before I send the trigger.
-
-
udon_juan
OK, I will isolate it and re-upload a smaller patch. I believe poly is doing what it should be doing, so I can just make a single voice version and go from there.
-
udon_juan
Hello All,
I have been struggling a bit getting my sampler to work. I think the two sticking points are the adsr envelope and using tabread4~ object correctly. I have it set up as a 5-voice polyphonic sampler that uses 12 pads to trigger 12 different arrays.
But it's not really working. I think it's successfully handling passing the array name to the tabread4~ within the sampler voice objects, but somehow it's not all lining up. I went with the susloop~ object after another version using phasor~ that wasn't working with the envelope.
If anyone is willing to look at this and give me a pointer or two, I would be very grateful. It should be self-contained--the sounds are in a subfolder, and then gui is pretty self explanatory. If you don't have a midi controller, there are a couple of messages that send midi notes for testing purposes.
All the best,
Leigh -
udon_juan
AH OK, thanks. I saw that they have the ability to receive "set" messages, but wasn't sure if it would work to set the array on the fly while triggering samples. This is good to know. Thanks again.
-
udon_juan
That's interesting information, especially the onset stuff with tabread4.
But my main question, which I should have put more explicitly, is whether I can have a 3 or 4 voice polyphonic sampler playing samples from a bank of 8 loaded sounds. Using a "set" message to change the array the voice plays based on which pad I hit. Sort of hot swapping samples. Instead of having 8 voices drawing from 8 different arrays, 4 or 3 voices playing from 8 arrays.
-
udon_juan
Well, I got nowhere with that approach, so I just installed the puredata package in the Natty repos. It runs great, but I don't have any externals. When i grab them and try to build them from the CVS repos i get :
make[1]: *** No rule to make target `iLine2D.os', needed by `externals'.
make[1]: *** No rule to make target `maxlib_speedlim.os', needed by `externals'.
make[1]: *** No rule to make target `search-doubled-externals.sh', needed by `externals'.
make[1]: *** No rule to make target `string2any.os', needed by `externals'.
make[1]: *** No rule to make target `tCircle2D.os', needed by `externals'.from make run from ./externals/build/linux/
and from scons, run from ./externals/build I get a bunch of
rm: cannot remove `abs~.c': No such file or directory
and then,
scons: warning: Two different environments were specified for target src/OSC-system-dependent.os,
but they appear to have the same action: $SHCC -o $TARGET -c $SHCFLAGS $SHCCFLAGS $_CCCOMCOM $SOURCES
File "/home/udon/installers/externals/OSCx/SConscript", line 13, in <module>So either way the build fails. Does anyone have some insight? I am just about to give up on externals until there is a simple deb pd-external for natty, but it would be nice to get this working.
Best, Leigh
-
udon_juan
Is pulseaudio-module-jack installed?
sudo apt-get install pulseaudio-module-jack
And do you have the lowlatency kernel installed? It seems to work great:
2.6.38-8-lowlatency
Afterwards, you need to get your jack settings working for your card, which can take a little adjusting. I would recommend installing qjackctrl, or running it to start the jack server if it's already installed. Then you can easily tweak the settings until it works. Then and only then should you launch pd.
-
udon_juan
@ geo_ker, thanks for the tip on the floss manuals. Good reading for me.
-
-
udon_juan
I've tried modifying the patch toxonic was kind enough to share with me, but I am getting an approximately 1 beat latency when i write to the buffer. There is no analogous latency when I close the buffer and start looping.
Does anyone know where i might be going wrong?
-
udon_juan
Hey Toxonic,
I will take a look at this and see if I can make the array approach work, and I will post anything I come up with back here. I like poor patches so thanks!