98 result(s) matching "drone-tools", (0.12 seconds)
Drone Control is a set of three PureData patches that make it easy to play very long notes. Some synthesizers provide a latch or audition button that holds the current note while you listen and tweak your patch. Not all synthesizers provide latch functionality. The obvious DAW solution of creating a 100-bar long note works nicely until you want to start in the middle of that note. [Screenshots]. [http://www.pdpatchrepo.info/hurleur/Drone\_Control\_v1.zip] : http://notes.obscurerobot.com/home/pure-data : http://www.pdpatchrepo.info/hurleur/Drone_Control_v1.zip
Wiilib : works well, till I turn leds on/off or make rumble (clicks)
Hi there, Wiilib works rather well on my hardy rt, till I make the wiimote's leds flash or make it rumble. No xruns, but clicks in the sound output (only when states change, i.e. nothing bad when leds remain on or off). In the past I noticed how giving adequate rt priorities to processes can help. Would anyone have an idea of which processe(s) should be given a higher rt priority to put oil in this PD-\>bluetooth chain ? Maybe is there also a couple of modules or dev the "audio" should have access or give higher priority to ? Any idea welcome. Thanx Nau
Adjustable samplewise delay
Hello, I'm new on pd so I think my question is quiet simple. I want to build an acoustic beamformer with eight microphones. For this I have to delay the particular signals samplewise. I'm using the z~ object at the moment. With the disadvantage I cant simply change the number of samples which are daleayed. My question: I want to vary the number of samples which are delayed with a slider. Whats the easiest way to do this? Probably it is quiet simple but I cant figure it out. Any help is greatly appreciated.
What does [delay~] do?
Hello, I've used [delread~] and [delwrite~] in the past with no problem, but I've always wondered what the [delay~] object does. It supposedly takes an argument in its right inlet that determines the delay in samples, but it doesn't actually seem to do this. If it receives a 0, there's no delay, but if it receives any other value, it seems to create the same delay (less than a second), regardless of what that value is. [z~] seems to do what [delay~] should, but I'm wondering why the latter exists. (I just found this and the person was simply told to use the above mentioned objects: http://forum.pdpatchrepo.info/topic/2955/delay-does-not-work/2 ) Thanks in advance!
Turn Midi Program Changes into Control Changes
I do have a pretty old midi footcontroller here, that I'm trying to connect to "renoise". The problem is, that renoise doesn't accept program change commands to control it's functions but just to play the instruments you've programmed. However, I'm trying to write a routine that just translates the program change numbers into control changes. That didn't seem too hard at first but now I've stumbled over a nasty problem. When I hit the mf-1 it always sends the midi command twice and seems to get confused when I press one of the knobs twice as well. Any suggestions? [Midischaltzentrale-V2.pd](/uploads/files/upload-7da43eb8-2545-4368-a46d-80506545c9e4.pd) In the patch I've just connected the pgmin to the ctlout. I don't need any special value on the knobs, so I gave it 127 as standard.
reversed message delay line?
Is it something build in to handle control messages exactly how delwrite~ and vd~ handle audio signals? Or I have to build it from scratch with arrays and counters...
avoid clicks while looping a variable delay line
Has anyone used a phasor~ to a vd~ for looping? Any suggestions how to avoid clicks in the jump of the phasor~? Maybe a second vd~ in order to fill the gap only at the jump point?
Hello everyone! I'm trying to create a Hradio that waits 5 seconds in each cell and if the cell is still enabled after that time it activates the toggle. If not, just doesn't activate it. ![upload-707e6125-7c76-49f7-81ac-f9dd6212b339](/uploads/files/upload-b34fffc2-dd18-4852-8189-bb498700fe4c) I've done something like that, but of course it doesn't work, any tip? Thanks in advance!
Taking notein data to turn GEM animations on/off
Hello, pretty early into pd but feel good for the most part. I am making a pd patch with a number of simple animations, each one corresponding to a key. I use notein -> stripnote to isolate each key on the controller, and I have GEM animations going. I am stumbling on how to implement the on/off action of each key to turn on/off the GEM animation. I do NOT want to have the animation retriggered each time I turn the press the key, which seems simpler - I have the animations running and the key simply makes the animation visible for that time being. Where would I interject the notein info? I am guessing a toggle somewhere in the path, with notein turning it on thus letting information flow.
Add different delays to the notes
HI, I am new in PD. I want to add different delays to the incomming midi notes: note69-100ms note68-35ms .... With this method the note-velocity pairs are mixed ! Please help me! ![sole.jpg](/uploads/files/upload-f974f1b3-5fdd-4729-bc7c-be47d5ed72c6.jpg)
Delay/phase problems with Aux sends and effects
Hi it's my first post and first big project so sorry if any of this is basic. I am currently building a step sequence sampler with a multi effects rack and mixer but having problems with my Aux sends. I am using throw~ and catch~ to create a basic summing bus for each Aux. They are 100% wet buses so no aux returns - the output goes directly to dac~. When they are engaged and running through the effect, it creates a phase/comb filtering problem with the signal - I'm guessing because of a processing delay? A basic phase inversion switch didn't solve the problem thought it was worth a try... Anybody know how to create a delay compensation set up or any other ideas as to how to resolve this?
Question: Delay streams of numbers.
I have an issue I have 2 streams of numbers that will be activated more or less at the same time. i want one number to always come out the output before the other. I thought about using a delay but it outputs a bang, and i want it to output the street of numbers. I hope what I'm saying makes sense Would be happy to get any type of help.
Random Drone Generator
@sebpiq Hello all, I would like to share with you all this wonderful Random Drone Generator by Sebastien Piquemal (@sebpiq in this Forum): http://sebpiq.github.io/pd-fileutils/demos/randomDrone.html This is his description: _This is a random drone generator. You can generate a random drone sound, then download the Pure Data patch by clicking on "Download PD patch"._ _This is a demo of the pd-fileutils and the WebPd libraries. pd-fileutils is used to generate the random patch, and WebPd allows to load the patch and play it in the browser without plugin._ Very nice stuff :) Best, Gilberto
MuVisu - an interactive tool for learning instruments
Hi, I made this with pd, maybe you find this intereseting: http://youtu.be/nLxiLgX0ABc https://github.com/Piesi/MuviTools http://frankpiesik.info/category/muvisu/ cheers!
i'm working with PDP/Pidip on video and audio mixing - and i am on the edge of processor power, on 100% utilisation audio begins to sound weird i'm thinking if dual-core processor helps, don't know if PDP/pidip is capable of running in multiple threads and use second core i.m using pdp\_live~ for playing xvid avis, mixer, two xv otput windows and some audio processing anybody has experience with using dual core? I don't want to run two instances of PD beacause audio and video are connected and i'd have to send video data between them and i don't believe i would work in reasonable speed thanx orx
Sound Level meter / Acoustics tools
Hello pd community! I am actually doing a project involving a raspberry pi and pure-data, the aim is to create a sound level meter that calculate the equivalent level of the sound in dB (A-weighted). Basically, it is just a stockage of the level every seconds and ponderate on a 15mn basis. [if you don't know what is it : http://www.engineeringtoolbox.com/equivalent-sound-level-d_721.html]. The input~ will be provided via the wolfson audio card and the calculation on pure-data. I started to create my patch but i struggle a lot, i would like to know if anyone would know existing patches that are used for that application : sound level meter, dbA filter, level stockage, any acoustics measurements,.... Anything could help Thanks in advance!
Creating Delay for a fatter sound in a Patch
If I wanted to elaborate on a simple oscillator patch a bit more, how could I add a very short delay to make the sound a bit fatter? Like one would add to an instrument in mix down to fatten the sound. Any ideas?
pix_openni library issue - error "pix_openni.dll: couldn't load pix_openni 1 1 1 1 0"
Hi, I'm trying to setup Puredata and the pix_openni library for our computer lab so that our student could work on puredata projects. I've successfully installed several 3rd party library on Windows 7 x64 by moving the library to the %COMMONPROGRAMFILES(x86)% folder. But when i do the same for pix_openni, i end up getting this error message whenever i try to execute a sample patch: "C:\\Program Files (x86)\\Common Files\\Pd\\pix_openni\\pix_openni.dll: couldn't load pix_openni 1 1 1 1 0... couldn't create" I know for sure that %COMMONPROGRAMFILES(x86)%\Pd\pix_openni\pix_openni.dll exist and i'm wondering if the issue is related to the fact that PureData seems to add a second "\" like it's trying to escape the backslash char ? Any idea on what i'm doing wrong please :-) ? Thanks.
cnvtool, a tool for altering and resizing canvas from within the GUI
This is a little tool that I made for working with canvases without using the properties menu (which tends to be quite time consuming). The biggest thing it offers is the ability to reshape canvases using the cursor, just like you reshape a program window. You can also move the label around in the same way, change the colour, and several other settings. To use, create [cnvtool] object in the same patch as the canvas you want to work with, entering the canvas' send and receive symbols as the creation arguments. Ie. [ cnvtool canvas_send canvas_receive ] Everything else should be pretty self explanatory. Use the color number boxes to scroll through more colors, and click on a particular color to select it. Resize the canvas using the mouse, just as your normally do in your OS, and drag the label to move it. These feature don't work perfectly, but they do work well enough to be much faster than using the properties menu! Use only one [cnvtool] at a time, and delete it once you've finished altering the canvas. Bug: The patch uses the [cursor] object to change the cursor icon when it hovers over the edge of the canvas. This creates some horrible error message every time. I'm really not sure why this is--is there a bug with [cursor]? There doesn't seem to be any functional loss, but it is annoying. To prevent this, you can delete the cursor object in the main program, but you'll have to be ready to resize without the help of the cursor icon. If anyone knows how to fix the error messages without deleting [cursor], let me know! Hope others find this useful... [cnvtool.pd](/uploads/upload-6ccabfa8-3906-4411-9b5c-7cb89f18b4c4.pd)
How to comment out/turn off/deactivate portions of a patch
Hi everyone, I'm new here and relatively new to Pd, though I'm a long time programmer with a vfx development background (in addition to being a musician, of course). So this may be an incredibly stupid question but: How the hell do you "comment out"/deactivate/turn off parts of a patch short of deleting it? I've been driving myself crazy having to completely cut out pieces of graphs and set them aside, then reconnect the remaining portion, then disconnect it again and then reconnect the code I set aside or simply delete them altogether for debugging because there's no way to turn them "off". I've looked everywhere online, including the loadbang book, but I can't find anywhere that explains how to do it. Or maybe I'm doing it wrong and that is not the paradigm. Please point me to the Pd-idiomatic way of doing this if not. Thanks!
Hi forum. I have a maybe broad question, about certain techniques in creating drones. Drones of specific quality, the kind you can hear in Joe Colley's work, for example. I'm not sure if I'm allowed to post some short clips from the tracks here, so here are some titles (with links): Joe Colley & Jason Lescalleet - Prayer\* ([http://sonmarchive.es/index.php?option=com\_muscol&view=album&id=2644&lang=en]) Joe Colley - Headache (Diagnostic Testpulse For Blown PA)\* - at ~8 mins ([http://sonmarchive.es/index.php?option=com\_muscol&view=album&id=1012&lang=en]) crawl unit - Untitled (Drone 2)\* ([http://sonmarchive.es/index.php?option=com\_muscol&view=album&id=1006&lang=en]) So, in a lot of Colley's tracks... David Wells - 2.1\* ([http://sonmarchive.es/index.php?option=com\_muscol&view=album&id=500&lang=en]) Tatar - 072304 ([http://kosmoplovci.net/music/tatar/frames/ogg/tatar\_072304.ogg]) etc... \*Sorry I couldn't find the tracks anywhere else except on this site. You have to register in order to listen to them. Anyway, quite a few people have this sound in their music... It's that dense textured drone, but also very clean sounding (as opposed to the noisy ones I usually get from using delay or reverb) and seamless (you can barely hear any sort of repetitions from the delay, and even when you do it's very 'soft'). You can hear in the examples, some have more dynamic sound while some are more static. I think I can notice the characteristics of feedback at work in the dynamic sounding ones, and the typical delay (set at short time) in the static sounding ones. OK, so I'm guessing it's all at least 80% based on effects. Delay, reverb, feedback... but how? I know that some people have achieved this sound by using pd, working on sample-based loops or instruments, but I haven't managed to do it. I know it's not a very specific question, but if you can shed any light on this it would be awesome. Thanks! : http://sonmarchive.es/index.php?option=com_muscol&view=album&id=2644&lang=en : http://sonmarchive.es/index.php?option=com_muscol&view=album&id=1012&lang=en : http://sonmarchive.es/index.php?option=com_muscol&view=album&id=1006&lang=en : http://sonmarchive.es/index.php?option=com_muscol&view=album&id=500&lang=en : http://kosmoplovci.net/music/tatar/frames/ogg/tatar_072304.ogg
No GUI reaction after telling PD to use JACK
Hi, i use Ubuntu and in the last days, i was already running pd succesfully together with Jack. Now, everytimes when i tell pd to use Jack by clicking on it in the option menu and confirming the dialog, the terminal gives following output: Cannot lock down 82274202 byte memory area (Cannot allocate memory) watchdog: signaling pd... watchdog: signaling pd... watchdog: signaling pd... The last statement keeps printing itself again and again. Meanwhile the pd gui does not react on any input anymore. Do you know this problem?
Removing zipper noise from 602.delay.loop?
I'm attempting to remove the zipper noise from the standard G02.delay.loop patch. Unlike with a variable delay, within this patch there seems to be no viable place to hook a \[line~\] object in. I'm sorry if this is a rather novice question, but how would i go about removing the zipper noise from this patch?
hi friends, i have a problem about delwrite~ and delread~ objects, i want to create an object(patch) with a signal input and signal output, that output will be delayed, and i want to be able to use that object in other patches, i created a patch 'delayobject' using objects like: |delwrite~ delay 3000( |delread~ delay 400( but when i want to use more than one of these 'delayobject' s in an other patch, i get the error warning: delay: multiply defined so, for every 'delayobject' that i create i have to give 'delay' a different name automatically, i try to use something like $1-delay but i can't figure out how, cause there is no inlet for 'name' on delread~,delwrite~ objects, is there a way that i can rename these objects with a message? or any other ideas, suggestions? thanx
Stack, queue, coldswitch, delay~, moses~, output~
Download them from: [http://zzo38computer.cjb.net/PureData/auto/] output~.pd is comes with the examples but I put it in anyways because I would use it a lot in diagrams that I want to add a volume control. queue.pd and stack.pd require the coldswitch.pd to work properly. If you want, you can look at the diagrams for queue.pd and stack.pd and see that there are too many lines are crossing each other. Please make comment of it. : http://zzo38computer.cjb.net/PureData/auto/
Removing high-end clutter from delay array
I'm working on an effect that splits a signal into frequency bands and applies a delay to each band. However, there is a lot of clutter in the high-end (there's 16 delays working together). How could I best remove some of this in the patch? I've tried low-pass filters on each of the outputs (tuned to the band's frequency range), but it's still pretty wild. Is there anything close to a brickwall filter in PD? Thanks in advance.
More precision in delay lines with feedback
Hi all, my name is Rodolfo and I'm from Italy. I use PD (only Vanilla for now) since January and I'm still working to improve my knowledge about this fantastic programming language. Currently, I'm trying to recreate some electronic architectures based on the delay lines with feedback to obtain an audio effect (e.g. flanger, phaser, etc.). To recreate these circuits, I have used the delwrite~ and delread~/vd~ objects but they don't allow less than about 1,5 milliseconds of delay due to the feedback of the signal which is computed by blocks of 64 samples. To solve this, I have used the block~ object to force the computation of the signal by blocks of a single sample. It works good - the minimum delay is one sample - but it requires more effort by the processor. Then, I'd like to ask you: is there another way - a lighter way - to get the same result? Waiting for your reply. Regards.
DLL path for Pure data
Right then PD boffs, I was using mp3write~ happily then tried my patch on a windows 7 machine and when trying to open a new file it failed giving me "cannot load lame\_enc.dll". Now i would guess this is just a missing dll but i cannot find where PD looks for said files. Anyone come across this? or can help? Cheers
A granular-inspired delay patch
Hi everyone, This is the first patch I've ever posted up here (I'm new) and it would be great to get some feedback or suggestions. Admittedly I don't know quite as much as I'd like to about granular synthesis, but I've seen a few implementations and I've taken the idea of playing back short bits of a sample in overlapping grains and applied that to a 5-voiced delay patch. Each of the 5 voices randomly plays back snippets from the last 20 seconds of adc~ input, using different envelopes and randomization patterns. I've tried to give each of them a distinct sonic identity based on their location, length, attack and decay, frequency and volume. One of them will play back at a random pitch as well. I hope you enjoy this patch. Any comments are very welcome. [http://www.pdpatchrepo.info/hurleur/randomdelays.zip] : http://www.pdpatchrepo.info/hurleur/randomdelays.zip
When writing a delay line with delwrite~ and delread~, what is the delwrite value for? Is it essentially the buffer size. I.e. In the following example, would that be a delay of buffer size 1000, with a delay time of 500ms? Input | delwrite~ 1000 delread~ 500 | Output
Some issues about wiring and delaying
Good Morning PureDaters!!! I'm here other time asking about some pure data objects which i don't control at all. As I told in another post, i'm currently doing my final project for my degree. It\`s about sound effects developed at Pure Data. At the moment i have done a compressor which sound really better than the other ones which are a reverb implemented as moorer way, and a parametric eq. I have having problems with some objects which i think doesn't run as they should. They are send~ and receive~ and in the other hand throw~ and catch~. The problem is that i need to send the signal sample by sample because i need to delay the feedback signal just for one sample. The matter is that when i try to send it blocking the patch for one sample pack with block~. The problem is that when i use those objects appears a problem which say: sigcatch 1243-signal1: unexpected vector size throw~ 1243-signal1: vector size mismatch or sigsend signal1: unexpected vector size receive~ signal1: vector size mismatch Then i would like to know if exist another object or way to make it runs.Or if is it a bug in Pure Data. In case it would be a bug i must write it in the memories of the project. Then, i would like to be sure about what i will write. Add to it i have another issue which is about the play objects. I'm working at the moment in a new patch to make a delay effect which runs which the tirhm of the song. I started to do it with something like a click which will let to configure the delay by each beat. Then, if i have a "¿PATH?"(i'm not sure it would be the word) which have any time or beat for instance 3/8 in 85 B.P.M. i would like to have 3 delays at the speed of the quaver note rithm.How ever i can't find an object which permits the sound flows when i play for instance the second of the three consecutive delays.However all the objects i have tried stop the sound when i try to play another delay above them, and if i try to do it whith consecutive delays i can't completly stop the 4th delay. Then i would like to know if anybody knows what i could do. Then, those are my two issues i have today. I hope anybody was able to help me with them. Thank you everyway. And excuse my english skills but i'm learning. If anybody want correct my enlish i'll be so glad. ;)
How do you turn audio outputs off whilst recording
Hi Folks, I'm working with a Raspberry Pi and can't seem to get it to do full duplex audio without dropouts. So, as a work around I'd like to be able to turn the audio outputs off and the audio inputs on whilst recording and vice-versa for playback (basically not full duplex). I want to use the Pi headless so need to be able to do this from within a patch so that I can trigger it from MIDI. Is this possible? Thanks, John
Question on delaying OSC output...
Greetings, I'm having trouble with a patch I've built, which is just sending too much information at once. I've created an abstraction to handle converting midi messages into OSC messages. In my patch, I have 16 instances of this abstraction. I need to make sure that OSC messages are sent out by only one instance of this abstraction at a time. That is, i need to delay the output of the other instances of the abstraction until the instance previous to it has completed. Could anybody offer me some advice on how to most readily achieve this? Many thanks! - Peter
Hello! Here is what i&\#8217;m trying to do: -Camera connected to PD. -Live feed is displayed. -5 minutes later, mixed overtop of the live feed, the video/&\#8221;live feed&\#8221; starts playing form the beginning, from 5 minutes ago Basically i just want the live feed to loop back over itself from 5 minutes previous. I'm using pix\_delay but after i can only push the delay to a couple minutes before it crashes. anyone have any ideas for this? Thanks for you help!
Dual boot with Ubuntu and OS X on a mac
Hi, I found this article on dual boot with Ubuntu and OS X [http://www.lifehacker.com.au/2012/08/how-to-dual-boot-linux-on-your-mac/] but my problem is that my CD player is broken, and the article (and others) say that you have to burn Linux on a CD in order to install it. Does anyone know for sure that the same can be done with a USB stick? Or the computer won't see the stick on start-up? : http://www.lifehacker.com.au/2012/08/how-to-dual-boot-linux-on-your-mac/
Bang, attack and delay aren't working properly
within the sub patch under the bang. i want to press bang to start and stop the sound and also et the attack and decay working [http://www.pdpatchrepo.info/hurleur/my\_synth.pd] : http://www.pdpatchrepo.info/hurleur/my_synth.pd
Can you save your PD file as a VST/Dill if so how?
can you save your PD file as a VST/Dill if so how?
Send a 1 or 0 when DSP is turned on/off?
Is there any way of receiving this kind of information? I could really use it in my patch. At the very least, a "bang" when I turn on/off the DSP. Thank you for your time, Sebastian
Turning OSC data into BPM
Hello people. I'm making a sequencer patch that's controlled by OSC. I'd really like to make a tempo BPM slider that controls a metro, however the OSC data comes in the form of 0.001 to 1\. I'm really struggling to find a way in which to turn this 0.001 - 1 range into say 60BPM - 160BPM. I have \[input\] | \[60000 $1( | \[/\] | \[output\] to convert from ms into BPM, but I've no idea what to do to get the 0.445 into a useful number for ms to be converted. If I use a multiplier to boost the initial number then I end up with a BPM range of like 7bpm to 5000bpm. So can anyone help me get 0.001 = 60bpm - 1.000 = 160bpm please please please?
Turn patch on/off and OSC trigger
Hey, Im new to pd and I am having what it probably a simple problem. I have a rain generator patch that I want to be able to turn on/off when a message is received from processing via OSC. I have the message coming in but I'm not sure how to connect it in PD. Hope someone can help! [http://www.pdpatchrepo.info/hurleur/RainFull.pd] : http://www.pdpatchrepo.info/hurleur/RainFull.pd
Samplewise delay meter
Hey, I just wanted to share this patch I made. I need to measure the delay in samples between two points in my patches, so I came up with this. I should say "blockwise" though, because the result is always multiple of the block size. Lowering the block size leads to less precise results, at least on my pc. Even though I think it's enough for my purpose, do you think it could be improved? Does exist an external that can do that? [http://www.pdpatchrepo.info/hurleur/samplewise-delay-meter.pd] : http://www.pdpatchrepo.info/hurleur/samplewise-delay-meter.pd
PthreadVC.dll and VST~
I'm trying to check out VST~ and every version of Hans-C Steiners installers(Windows) I can't invoke it. I get the error that the pthreadVC.dll can't be found, but it is right there in the bin folder. Any Ideas?
Delaying \[list-drip\] elements?
Hello, I'm using \[list-drip\] to send messages to \[shell\], and even though they are being sent in the right order I believe they are sent TOO FAST. How do I insert a delay between consecutive messages? For example: \[list-drip\] outputs "Uno", then waits 1 second, outputs "Dos", then waits one second, etc... Any help would be greatly appreciated! Thank you, Sebastian
Daily pd-extended updates on ubuntu
Hi guys, I'm on xubuntu 12.10 and every day, in the last week, when I turn the pc on, I receive the usual ubuntu updates notification asking me to update pd-extended (0.43.4). Is it possible that there's a daily update or is my pc going mad? Is there other people using ubuntu experiencing the same? Thanks
Wave Terrain Synthesis
Is anybody aware of a working wave terrain synthesis patch in pure data? Thanks.
Delay using tabread and tabwrite
So i managed to recreate a delay behaviour using tabwrite~ and tabread4~. Tha main reason for using this objects instead of delread~/delwrite~ is that i need to "freeze" the buffer content from time to time (stop feeding it with new samples), and add chunks of new data into the array again after stopping some time ( haven't tried this yet, but it looks like this is possible by sending |start n( to tabwrite~ ) i've also seen a great solution for doing delays using tables by means of poke~, but i can't use this object as i need to be limited to vanilla for ofxpd integration purposes. But now, i'm facing 2 problems: 1- in order to write and read simultaneoulsy the same table, the read header has to be slightly delayed to make sure it is reading data that has already been written. I accomplished this by adjusting phase of the phasor~ object with a message to the right inlet. I guess this is not the more accurate solution.... any hints on that? 2- I get a click at every end of the "loop"... how can i smooth that? maybe fading in/out at every start/end of the table writing? I attach the actual patch, so you can see for yourself. Thanks! [http://www.pdpatchrepo.info/hurleur/tabread\_delay.pd] : http://www.pdpatchrepo.info/hurleur/tabread_delay.pd
TC-electronics D-TWO "rhythm delay" on steroids
Hi, The D-TWO rhythm delay is a delay where instead of tapping the delay time, you tap a rhythm, and your audio gets delayed in that pattern. For along time I've been wanting to make a version that gets it's rhythm from midi. You play a rhythm on your midi device, the velocity gets translated to the level of that delay tap, and the note is used as a parameter in a user selectable effect. You can choose from: bypass: a "normal" stereo rhythm-delay, like the D2\. pan: low notes make a delay tap on the left, high on the right. filter: a lowpass: low notes dark, high notes bright grunge: the higher the note, the more distorted the tap. (carefull, CPU-heavy!) transpose: pitch-shifter: you can play a melody with a delay :) Have fun with it! I have some questions about it too: -Is there a more elegant way to have 12 sub-patches that do the same thing? I know I can make an abstraction, but these sub-patches are useless in other contexts, and I like having everything in one file... -Is there a better way to do the audio-routing in the insertFX subpatch? I want to route audio from one input to one of five outputs, depending on the value of a second input. So basically zexy/demux but for audio. -Sometimes a few of the delay-lines's parameters don't get updated. Anybody know why? -I used the marvelous soundtouch~ pitch-shifter. (thanks Olli & dank je wel Katja!). I didn't expect to be able to play melodies at all with it, because the pitch input goes from 0.25 to 2, meaning two octaves down to one octave up, and I had no idea how to map that to notes musically. I tried % 36 for three octaves followed by normal scaling and strange enough I get output that is in tune
Can anybody explain what is going on?
Who has ideas for solutions? Some other scalar? Another pitch-shifter?
-Of course any ideas on how to improve it or some of those famous PD-forum patch-remixes would be awesome!
All the best,
2 triggers to turn on 1 trigger?
3 triggers... When triggers 1 and 2 are ON, they turn ON trigger 3, but with any other configuration of the first two triggers, the third trigger is turned OFF. How can I do this? Thank you in advance, Sebastian
Questions about a MIDI delay patch
I own an Akai APC 20 Midi controller, it has a 8\*5 grid with soft buttons and 3 colour leds beneath them. I use it in software like Ableton and Traktor, but I'm having an issue with it, that's why I started making a patch in PD. The problem basicly is that whenever I wanted to light up a certain amount of LEDs (for example cue points when a deck loads), it causes distortion on the sound. It's an issue that a lot of people experienced that use these types of controllers (for example the Launchpad also has this problem). One solution is to delay the midi signals coming from the software to the controller, that way the LEDs won't light up at the same time and the problem would be solved. We're talking about milli seconds by the way, so it if works, it's fine. Anyway, the grid is made up out of 8 columns and 5 rows. Each column works on a different midi channel, but the buttons have the same notes. So it looks like this: [!(https://dl.dropbox.com/u/7776728/apc_notes.PNG)] Delaying those channels wasn't a big problem. The Midi In Device is Midi Yoke 1 (which Traktor outputs) and the Midi Out Device is my APC 20 controller. I made a \[notein\] for each channel and delayed the \[noteout\] for each channel with different \[pipe\] values, like this: [!(https://dl.dropbox.com/u/7776728/puredatamididelay.PNG)] That works just fine and it also has improved the distortion of the sound. But my ultimate goal is to delay each led seperately, but I've tried so many different things that I don't really know what I need to do now. One thing that came to mind was to use an IF condition on the note number. So if \[== 53\] would for example cause a delay of 100ms, \[==54\] would cause a delay of 200ms, etc... But I couldn't get that to work. Another thing I thought of was to use \[random\] and feed it different values for every note it picked it up, but again... it wouldn't work. I was also wondering if it would be possible to not only listen to a certain channel, but also listen to a certain note. I couldn't really find anything about that in the documentation, so that's why I ended up here :) I added the patch I created as an attachment, so if anyone has any ideas about how I should proceed, that would be wonderful. Thanks in advance! Greets [http://www.pdpatchrepo.info/hurleur/mididelay.pd] : https://dl.dropbox.com/u/7776728/apc_notes.PNG : https://dl.dropbox.com/u/7776728/puredatamididelay.PNG : http://www.pdpatchrepo.info/hurleur/mididelay.pd
Biquad implementation, one sample delay
Hello! I would like to implement my own biquad, and to do that I need a delay of one and two samples. How do I get a one delay sample? As I have understood from the manual the way to do that is to set \[block~ 1\] and then use \[delwrite~\] and \[delread~\] in some way that I haven't figured out yet. Isn't there an easier way? In jMax the way to do it is simply \[delwrite~ del\_name S 10\] where the S stands for sample and I therefore get a delayline of 10 samples. Easy. Thats what I want to do in pd. Any help? /Ronny
Problem compiling external on Windows
Alberto, I figured it out. I made a few changes to your makefile, though: 1\. added a path to **m\_pd.h** 2\. changed "rm -f $\*.o ../$\*.dll" to "rm -f $\*.o $\*.dll" (the .dll file wasn't being removed from the working directory) 3\. forced DEST to the pd/extra directory 4\. removed CSYM since it's not being used 5\. removed "current: pd\_win"; changed "pd\_win: $(NAME).dll" to "all: $(NAME).dll" 6\. removed non-win stuff 7\. removed the clean and install targets for right now Hopefully these changes make it easier for the complete newbie. Anyway, with enormous thanks to AlbertoZ, here's a mini-tutorial for using my makefile. 1\. if you're using pd-extended, save [this] as "m\_pd.h" (into the same directory with helloworld.c). If you're using pd-vanilla, you can skip this step. 2\. save this code as "mk.mk" (into the same directory with helloworld.c): # mk.mk -- invoke with "make -f mk.mk" NAME = helloworld PDPATH = "c:/Progra~1/pd" LDFLAGS = --export-dynamic -shared WININCLUDE = -I $(PDPATH)/src WINCFLAGS = -DPD -DNT -W3 -WX -Werror -Wno-unused \ -mms-bitfields -Wno-parentheses -Wno-switch \ -O6 -funroll-loops -fomit-frame-pointer all: $(NAME).dll .SUFFIXES: .dll .c.dll: gcc $(WINCFLAGS) $(WININCLUDE) -c -o $*.o $*.c gcc $(LDFLAGS) -o $*.dll $*.o $(PDPATH)/bin/pd.dll strip --strip-unneeded $*.dll cp $*.dll $(PDPATH)/extra rm -f $*.o $*.dll 2\. modify the **PDPATH** variable if needed to reflect the actual location of pd on your system (MSYS will interpret **c:/Program Files/pd** as **C:/Program**, so use **c:/Progra~1/pd** instead) 3\. if you're using pd-extended, remove line 6 (WININCLUDE = -I $(PDPATH)/src) and remove $(WININCLUDE) from line 14\. 4\. close all pd windows if any are open 5\. in MSYS, navigate to the directory with helloworld.c and type: make -f mk.mk (type make -s -f mk.mk if you want to hide the lengthy shell response) 6\. the shell should respond with something like: gcc -DPD -DNT -W3 -WX -Werror -Wno-unused -mms-bitfields -Wno-parentheses -Wno-switch -O6 -funroll-loops -fomit-frame-pointer -I "c:/Progra~1/pd"/src -c -o helloworld.o helloworld.c gcc --export-dynamic -shared -o helloworld.dll helloworld.o "c:/Progra~1/pd"/bin/pd.dll strip --strip-unneeded helloworld.dll cp helloworld.dll "c:/Progra~1/pd"/extra rm -f helloworld.o helloworld.dll 7\. a new helloworld.dll file should be saved into the pd/extra folder, and you should be able to create the "helloworld" object in a new pd window. Good luck! middlepedal : http://pure-data.cvs.sourceforge.net/*checkout*/pure-data/pd/src/m_pd.h
Different ways of Implementing Delay Loops
Ta Toxonic - I'll take a look at the patch tonight. Good of you to take the time. Apologies if I've misunderstood though, but I think what you're describing is not quite what I mean: The pitch shift is separated out from the delay time - you're running a pitch shift effect into a separate delay line, which is not going to give the same effect. The delay time will not shorten as the pitch rises. I'll take a look at your patch tonight though as I may have misunderstood what you're getting at. Maelstorm - thanks also. I understand why the pitch changes on a delay pedal. The pitchshifter patch was a bit of a red herring - though of course it's the same principle. The difference between what you're (both, I think) talking about and what I'm talking about is the way that the pitch changes. Assuming a stable C tone playing into the delay: With the standard simple PD delay set up, if you move the read point of a vd~ then you get a glissando as it accellerates, a constant pitch change as it moves at constant speed. So if you turn the knob to change the delay time in the middle of a tone you start with a constant pitch (C), then get a rise of pitch, then it levels out at a new pitch (as you turn then stop turning the knob), \_ \_\_\_/ If you feed back into the delay, the glissando is repeated as the read speed changed while the write speed was constant: \_ \_ \_ \_ / |/ |/ |/ | The effect I'm looking to emulate on the other hand is more akin to changing the speed of a phasor~ reading an array - the pitch change is not a blip, but a stable interval's transposition - eg: you turn the knob, the pitch of the repeats rise by a given interval and stays at that pitch as it repeats (now more quickly): \_\_\_\_\_\_ \_\_\_/ If you play a constant C tone, then speed up the delay until it is a major third higher, you get a major third diad (until the delay dies away), rather than a C tone with a repeating squiggle overlaid. The effect is the same as you get by speeding up a tape loop delay (though the pedal I'm trying to imitate is a digital delay) which is why I think the rate of the write and read heads are being increased by the same amount. \[edit, just tried to make this clearer and removed a couple of errors\]
Clearing delay lines
you might need to use a set up that involves using two (or more) separate delay lines and swapping back and forth between them at the moment you want to 'clean' the delay. here's how it would work: assume two delwrite~ obects with delay lines named a and b. matching these two delwrite~s are two delread~s. each of these four objects can be 'turned on' or 'muted' (using the method supplied above by giair). muting a delwrite~ object technically means muting the audio going into to the object. the initial state of the patch would \[delwrite~ a\] and \[delread~ a\] turned on and \[delwrite~ b\] and \[delread~ b\] muted. when you want to clear the delay line, you would mute \[delwrite~ a\] and \[delread~ a\]. at that point you can turn on the 'b' delay line objects. you can switch back and forth between your two delay lines cleanly if you wait an amount of time greater than the length of the delay. in the case that your delay time is longer than the time you want to wait, you would have to use another delay line. the downside of this is that the control gets a little bit more complicated. if this is something you might apply, check miller puckette's book (pdf available on his website i think) and look at the chapter on polyphonic synthesizers. polyphonic synths require some form of voice allocation and you might be able to use some of pd's voice allocation support to help manage your delay lines, because it is a fairly similar process. i hope this made sense. i don't think it's as confusing as it sounds, but it is hard to put into words. if you understand what i mean, but aren't sure how to implement it, i could probably post an example; just let me know. --zac
Order of connections. Messages flow doubt.
@Cmaj7 Hm I'm not really sure what your question is, because you are thinking about everything correctly. In case 1, you click the main **[bang]**. Because you connected the left-most **[delay]** first, it receives the "bang" a fraction of a second before the right **[delay]**. Thus, the left-most **[delay]** will output a "bang" a fraction of a second sooner than the right **[delay]**. This causes the right most delay to reset its timer and output a "bang" after another 600 ms. In case 2, you click the main **[bang]**. Because you connected the right-most **[delay]** first, it receives the "bang" a fraction of a second before the left **[delay]**. Thus, the right-most **[delay]** will output a "bang" a fraction of a second sooner than the left **[delay]**. This means that the right **[delay]** will receive a second bang a fraction of a second after it outputs its own "bang", so it will "bang" again in 600ms. Perhaps the only caveat I can see being important here is that if a **[delay]** receives a "bang", and then receives another "bang" before its "timer is up", then the internal "timer" is just reset. So for example, if you have a delay of **[delay 600]**, and it receives a bang, only to receive *another* bang 300ms later, then it will output a "bang" effectively 900ms after the first "bang". This same phenomenon is happening in your example, except the second bang--instead of arriving 300ms later as in the example in the previous paragraph--is coming in *one control rate cycle*, or cpu tick, later, which I believe is 1/20 of a second (someone who is knowledgable should correct me) This is why the order in which you connect objects is so important in some circumstances. Although I've just restated what you said above so I'm not sure how to help you. All I can say is maybe read this: http://en.flossmanuals.net/pure-data/dataflow-tutorials/order-of-operations/
Order of connections. Messages flow doubt.
Hi, I thought I had completely understood how pd handles the order of connections, but I can't explain what is going on in this simple case: ![issue-pure data.jpg](/uploads/files/upload-875434a0-61ef-4cc7-a823-12d2b7b31c23.jpg) So, that's a beginner question. I know that I should assure the order from right to left using a [t b b], however I'm just trying to understand what's happening when I click the main bang, which is: 1. Connecting the upper delay first: Upper bang flashes first, lower bang later. 2. Connecting the lower delay first: Both bangs flash at the same time (lower bang receives a bang first), lower bang later My thoughts: 1. Upper delay receives main bang and schedules it to 600ms later (600ms later it goes to upper bang and lower delay). Lower delay receives main bang and schedules it to 600ms later. 600ms have passed: Upper bang flashes; lower delay receives bang from upper delay thus overriding the message to the lower bang that should be flashing now (?) (because of the message from main bang) Why would that be the order? Finally 600ms later, lower bang flashes. 2. Lower delay receives main bang and schedules it to 600ms later. Upper delay receives main bang and schedules it to 600ms later. 600ms have passed: lower bang flashes. "At the same time" (but later), a bang comes from the upper delay. Upper bang flashes. 600ms later: lower bang flashes. Could someone clarify how to think systematically about the order issue in general (and this case specifically) once for all or point me to a tutorial that handles the subject? Thanks.
Effects processor/instrument/sampler looper thing
ok well to get everything going i usually am wearing headphones just to test it out press 1 and 5 to turn on the dsp and get the effects line going press L to load a wav sample k to analyze the sample turn up the volume on the sample looper boombox now depending on wether or not the the enable reaction box or enable BPM box is connected to the box directly to the left will connect it to a specific bpm or it will react to incoming or playing sound after switching from box to box i find it makes me turn the boombox on and off so just press 5 and 1 twice so now turn the filter bank on by pressing F start talking or making some noise press the space bar until you hear whatever sound being frozen then make some sort or loop press F again when you are done and wait until you see the loop appear in the odisto array then press A to analyze that loop turn up the volume in the glitch section the choice of reaction and BPM has to be the same as the boombox for it to work correctly if you use the bpm the green vslider next to the volume will set it but its not really bpm as much as it is just a way of timing pressing loop (H) will just make the sections of the loop keep playing over and over the delay can be used by plugging the bng into the hslider or plugging the ranom box into the hslider if you just plug the bng into it though you would have to manually set the delay amount in order for the panning to really get interesting you can connect the top bng in the panningreact box to the metro 250 then connect that metro 250 to the bng right below it you can set the speed with the panning speed hslider the panning yellow box with the car mod index sliders changes the different panning you can turn on by pressing (3) on both the wah and pitch vslider the inside slider is for the actual amount of wah or pitch change and the outside vslider is for the speed at which it changes if it is turned on (6,7,8,9) the random pitch (i) random wah is pretty fun for messing round with or you could just manually set the amount of change the distortion doesn't have to be turned on in oder for it to work only for the slider to give it some power the shaper gives you amount, depth, limit, and gain controls and the ASD/size/global attack/sustain/decay size and global amplitude the ASD can be used for shaping the sound and the global can be used for a volume control at this point i would hope this is making a little more sense if not just ask i really just wanted to see if anybody else would use something like this im also going to post a 6 channel simple looper that i have been messing with that i am starting to like any input would be awesome paul
Variable delay patch - need help
Hi, The attached patch dsdelay is supposed to be a variable delay line with a moving write point. vd~ uses a moving read point which is acceptable for most applications but not what I am working on. I have implemented my moving write point delay line in MATLAB and it works reasonably well. However I am experiencing issues with PD implementation. The patch uses a table to store the delay line values and is supposed to use a circular delay line method (i.e. the read/write points shift with time instead of the actual elements of the delay line). The intention is that the read point shifts along the delay line by one sample per sample, and the write point does the same whilst the delay is not being altered. The write point uses a simple two point extrapolation to allow writing at fractional table indices. I'm having two problems: 1\. I can't find a satisfactory method of wrapping signal values in an arbitrary range. I want to be able wrap a signal value between 0 and 44100 for example, but using | \[/~ 44100\] | \[wrap~\] | \[\*~ 44100\] | gives rise to rounding errors which create artifacts in the output. This is why in the current state, the output is intermittent rather than continuous. 2\. For some reason the 2 point extrapolation seems to be not working correctly. I'm getting a ring modulation type effect on the output. In MATLAB the addition of the two point extrapolation helped to minimise artifacts when the delay time was being altered. Altering the delay time gives rise to horrible artifacts at the moment though. Any pointers on how to get this working properly would be greatly appreciated. Thanks Ben [http://www.pdpatchrepo.info/hurleur/test.zip] : http://www.pdpatchrepo.info/hurleur/test.zip
Midi controller ctlout problem
Hello. I am having issues getting my patch to do what I want it to. I'll do my best to describe what I'm trying to do and I've attached my patch. I have a Korg padKonrol that I want use to visually represent time for an audio loop. There are sixteen pads that have leds--to start off I was trying to make each of the sixteen pads light up in sequence (light will advance every 1 second in my patch). The pads have control numbers from 50 to 65\. A control value of 127 lights the pad, and a control value of 0 turns the pad off. In my patch I have the bang first set the number object to 49--the metro then bangs that object, 1 is added (to get 50). I then have the 50 stored back into the number object for counting. The current number (50 at start) and the previous number (49 at start) are packaged and sent to a ctlout where the current number led is turned on (value 127) and the previous one is turned off (value 0). This just continues to count up. There is most likely a more elegant way to do this, but my main concern is that my padKontrol will sometimes keep two pads lit as it goes through the counting (ex, 50 turns on correctly -\> 50 turns off correctly, 51 turns on correctly -\> 51 stays on (incorrect), 52 turns on correctly -\> 52 turns off correctly (as well as 51), 53 turns on correctly) -- it will occasionally do this and throw in two that stay lit, when I only want one lit at a time. I was thinking it may have to do with how I'm sending the messages to the ctlout (order they are being sent, or they are getting confused because they are being sent too close together, etc) Hopefully this makes sense. I tried to explain with as much detail as possible. Thanks.
Different ways of Implementing Delay Loops
I've been trying to emulate a delay pedal I have, but having no luck. The effect I'm after is a stable interval's pitch change when you change the delay time - you can tune the sound going around the delay loop up or down by a stable number interval by shortening or lengthening the delay time - just as you could tune sample playback by changing the rate of a phasor~ reading an array. If I use a vd~ reading from a delay line (as in the rotating tape head pitch shifter example, but with added recirculating feedback) I can get pitch change effects (pretty great pitch change effects tbh) but they're unstable - they keep rising or falling in pitch with each circulation as they get pitch shifted each time they go around the loop. I figured one way to implement the effect would be to change the write speed and the read speed by the same amount (I'd guess this is how the pedal is doing it)- But I have no idea how to change the delay write speed in PD. I thought of changing sample rate using block~ in a subpatch with the delay line but that doesn't seem to give the desired results (or in fact any sound at all - so I'm guessing you can't upsample a delay line). Any ideas???
Different ways of Implementing Delay Loops
It sounds to me like the problem your having is just a result of feeding back into the pitch shifter (or even using a pitch shifter at all). If you just feed it back into the delay, you should get the effect of a delay pedal. The pitch shifting comes because as you shorten the delay line, the delay playback head moves up the delay line, essentially reading it faster for that moment (or vice versa). And of course, reading it faster causes the pitch to go up. If you feed that back into the delay line, that moment of pitching up will repeat until the delay dies out, and it doesn't keep pitching up with each delay. The record head stays at a constant rate.
Delay/phase problems with Aux sends and effects
http://puredata.info/docs/manuals/pd/x2.htm.... you will find the answers in paragraph 2.4.5 ! and it should be easier to spot the problems in your patch. When a signal is "sent" it doesn't "arrive" until 1 block later. Each time you pick it up and throw it again you lose another block. Of course normally you don't hear any artefacts because you don't mix the same signal (without its delay) back in; unless you want that effect! You must have the same source arriving twice at the dac~ for the phasing to be audible......unless you have a live source?? If you have a live source (a microphone) and your patch is using that source, processing it and feeding it back to some speakers then you need to reduce the delay for any signal to the lowest possible or you will hear the delay. 2ms is as low as most modern computers can manage with "asio" (that's the same as a Yamaha Digital desk). At 2 ms a violinist with an earphone will not hear the delay between the instrument and the earpiece. At 5 ms they probably will. Try "2" for delay in the media setup and 64 for the block size...... see if you get any dropouts. The smaller the "delay" the smaller the "block" size, and so the smaller the delay for every send/receive. Later, when you have some free time you should read all of the link above....... it gives a useful and fascinating insight into what is going on "behind the scenes". David.
How to load libraries in PD
I finally did, how to load libraries in pd, but now there is another problem started tried D:\\\\pd\\\\bin\\\\cyclone.dll and succeeded this is cyclone 0.1, 54th alpha build tried hammer.dll and succeeded hammer.dll\\\\hammer.dll: couldn't load (problem) tried sickle.dll and succeeded sickle.dll\\\\sickle.dll: couldn't load (problem) error (miXed): version mismatch use a more recent Pd release (or recompile the cyclone). I am using, pd version 039-2, where as this cyclone library requires 037-038 or higher. that i quite have. how I can recompile the cyclone? there is a makefile? but dont know how to compile at windows XP. PROBLEM: I want to load cyclone library to use atan~, sin~ etc objects.
Using messages to set properties of other things
ayeee I've got a metronome triggering slices of a breakbeat and I've set up a way to shift every second metronome bang using a delay object and spigot objects. By altering the delay you can create more or less of a swing to the metronome bangs. However obviously you can only delay the bang so much before it appears in sync with the next bang and this is based the tempo that your working at. so... I'd like to use the tempo to calculate a range for the delay. i.e If the tempo was 120BPM then the metronome will be 'BANG'ing every 500 ms so the rage for the delay would be from 0 ms to something less than 500 ms (lets say 450) If the tempo was 240BPM the metronome will be 'BANG'ing every 250ms so the range of the delay would be from 0 ms to say 250 ms ( so.... like ..... 225) so yeah I'd like to generate the minium and maximum for a vertical slider based on the tempo at run time hmmmmmm..... I hope that's kiind of clearer but looking back it's quite long winded I'm sorry. let me know if it still doesn't make any sense. Thank youuuuu Iain
Startup file in Linux
Files starting with a "." are usually hidden on Linux. The "-a" flag for "ls" forces display of these. For example: &\#036; cd /home/claude &\#036; ls bin bwusage.txt crapart2.wav IMG\_0379.JPG incoming ls.txt private public public\_html raw.txt Screenshot.png tail.pd tail.pd.png tail.png tmp These are the files you normally see. Now I try: &\#036; cd /home/claude &\#036; ls -a . .bashrc .fullcircle .grip-l3enc .lyx .phoenix .Skype .wine .. .bcast .gaim .grip-lame .macromedia private .soundtracker .Xauthority .alsaplayer bin .gamix .grip-other .mailcap public .ssh .xawtv .amsn bwusage.txt .gconf .gstreamer .mcop public\_html .sversionrc .xawtv~ .aspell.english.prepl .canna .gconfd .gtkrc .metacity .qt tail.pd .xchat .aspell.english.pws .cddb .gftp .gtkrc-1.2-gnome2 .mikmodrc raw.txt tail.pd.png .xchm .aspell.en.prepl .cddbslave .gimp-1.2 .ICEauthority .mime.types .RealNetworks\_RealCookies\_60 tail.png .xemacs .aspell.en.pws .cheesetracker\_QT .gnome .icons .mozilla .RealNetworks\_RealMediaSDK\_60 .terminatorXrc .xmms .audacity crapart2.wav .gnome2 IMG\_0379.JPG .mplayer .RealNetworks\_RealPlayer\_60 .thumbnails .xnviewrc .autosave .cvspass .gnome2\_private incoming .nautilus .RealNetworks\_RealShared\_00 .thunderbird .xscreensaver .autothumb .dvdcss .gnome-desktop .jackdrc .netscape .realplayerrc tmp .xvpics .avidemuxrc .emacs .gnome\_private .java .netscape6 .recently-used .Trash .ymessenger .Azureus .emacs.d .gphoto .kde .nicotine .rezound .user60.rdb .bash\_history .esd\_auth .gprename .libquicktime\_codecs .openoffice .rhn-applet.conf .viminfo .bash\_logout .fonts .grip .lives **.pdrc** .sane .wgetrc .bash\_profile .fonts.cache-1 .grip-flac ls.txt .pdrc~ Screenshot.png .wgetrc~ A whole load more files suddenly appear! Obviously replace the "claude" in /home/claude with your username, too.
The History about a little video launcher patch...
hi, this is my beginning: i need a "thing" who launches two videos and two audios (pre-recorded, aleatory selected) of a list, in the moment that i make a noise (enoug noise) in a microphone, for that i make this simple patch: ----cut from here---- \#N canvas 92 55 825 609 12; \#X obj 85 5 gemhead; \#X obj 345 161 pix\_film; \#X msg 488 98 auto \\$1; \#X obj 488 78 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1; \#X obj 825 212 gemwin; \#X msg 805 105 create; \#X msg 892 182 destroy; \#X msg 848 149 1; \#X msg 853 178 0; \#X msg 753 81 border 0; \#X msg 710 155 dimen 2048 768; \#X obj 85 161 pix\_film; \#X obj 85 218 pix\_texture; \#X msg 192 92 auto \\$1; \#X obj 192 71 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1; \#X msg 192 126 colorspace RGBA; \#X msg 488 120 colorspace RGBA; \#X obj 345 435 rectangle 0 0; \#X floatatom 419 328 5 0 0 0 - - -; \#X obj 394 405 /; \#X floatatom 465 328 5 0 0 0 - - -; \#X obj 444 405 /; \#X obj 374 290 unpack 0 0 0; \#X obj 85 260 translateXYZ; \#X obj 85 431 rectangle 0 0; \#X floatatom 159 327 5 0 0 0 - - -; \#X obj 134 401 /; \#X floatatom 205 326 5 0 0 0 - - -; \#X obj 184 400 /; \#X obj 114 284 unpack 0 0 0; \#X msg 153 372 60; \#X msg 203 373 50; \#X obj 345 216 pix\_texture; \#X obj 345 262 translateXYZ; \#X msg 413 376 60; \#X msg 463 377 50; \#X msg 192 223 -5.5; \#X msg 318 100 open lib/video\\$1.mov; \#X msg 8 102 open lib/video\\$1.mov; \#X msg 488 225 10.8; \#X obj 1146 4 loadbang; \#X msg 488 45 1; \#X msg 192 46 1; \#X msg 488 167 0; \#X msg 192 174 0; \#X msg 682 447 open lib/audio\\$1n.wav; \#X obj 993 124 adc~ 2; \#X obj 995 279 s sincro; \#X obj 957 61 s aleatorio\_1; \#X obj 1047 91 s aleatorio\_2; \#X obj 144 195 s fin\_video; \#X obj 404 190 s fin\_video; \#X obj 682 331 r aleatorio\_1; \#X obj 957 5 r sincro; \#X obj 1047 4 r sincro; \#X obj 1146 39 s inicio; \#X obj 1024 192 r inicio; \#X obj 753 7 r inicio; \#X obj 805 34 delay 5; \#X obj 848 74 delay 5; \#X msg 936 441 open lib/audio\\$1n.wav; \#X obj 853 356 r sincro; \#X obj 681 527 dac~ 3; \#X obj 997 527 dac~ 4; \#X obj 936 335 r aleatorio\_2; \#X obj 682 483 readsf~ 2 221000; \#X obj 936 476 readsf~ 2 221000; \#X obj 318 14 r aleatorio\_2; \#X obj 192 12 r inicio; \#X obj 134 348 r inicio; \#X obj 488 10 r inicio; \#X obj 401 349 r inicio; \#X obj 717 390 delay 5; \#X obj 971 389 delay 5; \#X obj 599 345 r sincro; \#X msg 599 403 1; \#X obj 624 16 r inicio; \#X msg 624 46 \\; pd dsp 1; \#X obj 501 142 r fin\_video; \#X obj 221 148 r fin\_video; \#X obj 927 266 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; \#X msg 853 417 1; \#X obj 8 51 r aleatorio\_1; \#X obj 994 156 hip~ 5; \#X obj 995 246 threshold~; \#X obj 957 32 random 4; \#X obj 1047 31 random 4; \#X msg 1024 220 set 0.6 1000 0 100; \#X obj 717 361 r fin\_video; \#X obj 971 360 r fin\_video; \#X obj 599 373 delay 6; \#X obj 853 390 delay 6; \#X obj 682 416 float; \#X obj 936 415 float; \#X msg 732 117 cursor 0; \#X connect 0 0 11 0; \#X connect 0 0 1 0; \#X connect 1 0 32 0; \#X connect 1 1 22 0; \#X connect 1 2 51 0; \#X connect 2 0 1 0; \#X connect 3 0 2 0; \#X connect 5 0 4 0; \#X connect 6 0 4 0; \#X connect 7 0 4 0; \#X connect 8 0 4 0; \#X connect 9 0 4 0; \#X connect 10 0 4 0; \#X connect 11 0 12 0; \#X connect 11 1 29 0; \#X connect 11 2 50 0; \#X connect 12 0 23 0; \#X connect 13 0 11 0; \#X connect 14 0 13 0; \#X connect 15 0 11 0; \#X connect 16 0 1 0; \#X connect 18 0 19 0; \#X connect 19 0 17 1; \#X connect 20 0 21 0; \#X connect 21 0 17 2; \#X connect 22 1 18 0; \#X connect 22 2 20 0; \#X connect 23 0 24 0; \#X connect 25 0 26 0; \#X connect 26 0 24 1; \#X connect 27 0 28 0; \#X connect 28 0 24 2; \#X connect 29 1 25 0; \#X connect 29 2 27 0; \#X connect 30 0 26 1; \#X connect 31 0 28 1; \#X connect 32 0 33 0; \#X connect 33 0 17 0; \#X connect 34 0 19 1; \#X connect 35 0 21 1; \#X connect 36 0 23 1; \#X connect 37 0 1 0; \#X connect 38 0 11 0; \#X connect 39 0 33 1; \#X connect 40 0 55 0; \#X connect 41 0 3 0; \#X connect 42 0 14 0; \#X connect 43 0 1 1; \#X connect 44 0 11 1; \#X connect 45 0 65 0; \#X connect 46 0 83 0; \#X connect 52 0 92 0; \#X connect 53 0 85 0; \#X connect 54 0 86 0; \#X connect 56 0 87 0; \#X connect 57 0 9 0; \#X connect 57 0 10 0; \#X connect 57 0 58 0; \#X connect 57 0 94 0; \#X connect 58 0 5 0; \#X connect 58 0 59 0; \#X connect 59 0 7 0; \#X connect 60 0 66 0; \#X connect 61 0 91 0; \#X connect 64 0 93 0; \#X connect 65 0 62 0; \#X connect 66 1 63 0; \#X connect 67 0 37 0; \#X connect 68 0 42 0; \#X connect 68 0 15 0; \#X connect 68 0 44 0; \#X connect 68 0 36 0; \#X connect 69 0 26 0; \#X connect 69 0 30 0; \#X connect 69 0 28 0; \#X connect 69 0 31 0; \#X connect 70 0 41 0; \#X connect 70 0 16 0; \#X connect 70 0 43 0; \#X connect 70 0 39 0; \#X connect 71 0 34 0; \#X connect 71 0 35 0; \#X connect 71 0 19 0; \#X connect 71 0 21 0; \#X connect 72 0 92 0; \#X connect 73 0 93 0; \#X connect 74 0 90 0; \#X connect 75 0 65 0; \#X connect 76 0 77 0; \#X connect 78 0 43 0; \#X connect 79 0 44 0; \#X connect 81 0 66 0; \#X connect 82 0 38 0; \#X connect 83 0 84 0; \#X connect 84 0 47 0; \#X connect 84 0 80 0; \#X connect 85 0 48 0; \#X connect 86 0 49 0; \#X connect 87 0 84 0; \#X connect 88 0 72 0; \#X connect 88 0 90 0; \#X connect 89 0 73 0; \#X connect 89 0 91 0; \#X connect 90 0 75 0; \#X connect 91 0 81 0; \#X connect 92 0 45 0; \#X connect 93 0 60 0; \#X connect 94 0 4 0; ----cut to here--- i'm sorry for space wasted, but is the 4:02 (...of course!), the "thing" works, i have the video and audio libs in the apropiate site (they are 5 .mov files and 5 .wav, not very heavy content), but at the third clap in front of the mic it hangs, allways on the third, and a bit later a beatiful death blue screen (yes, i'm windozed, linux don't have drivers for my presonus firestation), i test it in two partitions (same machine), any ideas? Thanks for reading, interest, and.. for all, best regards. jano
Unwanted noise when opening patch
I've build a patch that plays white noise for a specific amount of time, but when I first open the patch it automatically starts outputting white noise until I click the toggle twice that turns the noise on and off (basically reseting it) i've "saved as" when it was reset but it still loads the same. The top of the patch is basically a bang timer to time intervals between the noise being on or off, when the inlet is banged it turns the noise on and then theres a 3900ms delay until the second bang turns it off. What i need is a way for the noise to be off by default when i load the patch heres a pic of the patch, the toggle that turns the noise on or off (the one i have to reset when i open the patch) is the one with my mouse by it. [http://dl.dropbox.com/u/2842565/Picture%205.png] : http://dl.dropbox.com/u/2842565/Picture%205.png
Swept sine deconvolution
@bassik said: > In this case I don't really get the point why you are researching the exact sample value of the peak value. In my experience, analysis of simple IR don't give substantial different results if the time zero of the IR is not exactly on the peak Some more experimenting has learned me that it depends on the system under test. For an IR of the MacBook internal soundcard loopback, the problem is manifest. For an IR of my room, that is not the case. The difference is probably this: the soundcard's spectrum is near to perfect and there is only a direct response. The room test response missed a lot of the low spectrum end (also due to lousy 'test equipment'), and the direct response is buried in reflections because of the small room size. It's funny that the room response is much easier to trim than the loopback response. Searching the internet I found the name for the phenomenon: fractional delay. And of course implementations for fractional delay, which can also be used to get rid of fractional delay. As far as I can see now, we'll only need it for cases where the direct response has a prominent role. For example, when we want to produce inverse filters for correction of spectral deficiencies in test equipment. We're not at that point yet. Anyway, I did a patch with a model of fractional delay, which clearly illustrates the problem. (See attachment). And if you do a loopback test with \[IRrecorder\], you'll see what I mean as well. edit: bah, again impossible to attach file. (Did I exceed my upload quotum?). It's here: [http://www.katjaas.nl/temp/fractional-delay.pd.zip] Katja : http://www.katjaas.nl/temp/fractional-delay.pd.zip
Hello all. I create folder VST d:\\VST\\pdvst\\\* Copy all pdvst in this folder Return and copy all Files pdvst\_PD\_freeverb.zip In d:\\VST\\pdvst\\ When i load freeverb~.dll in FL He sad PD.dll not found How i can show Fl or any seq There found pd.dll If i see properties freeverb~.dll I see that use System32 Kernel32 and msvcrt dll BUT pd.dll RED COLOR (Not found) mmm..... People that problem? Use Windows 7
Different ways of Implementing Delay Loops
Yep - sorry, I could probably have been clearer - I shouldn't post from work :) I'm talking about a delay line with feedback. I was mucking about and I stuck a feedback loop into example G09\. With that set-up the pitch rises with each repeat because each time it's going back into the delay line and being read back at a rate higher than it was written. It sounds cool (very cool to my ears) but I now want to get a different effect - On many old delay pedals, when you twist the knob to change the delay time, you just raise the pitch of the repeats by a constant interval (and shorten the delay time by the appropriate amount). The pitch doesn't rise or fall with each repeat - presumably this is because the write and read "heads" on the delay line are speeded up or slowed down by the same amount. I'm trying to replicate that effect in PD. Not neccessarily by the same means - by any means really.
Detecting (lack of) changes in X/Y control grid object
You'll probably want to use \[delay\] here. When the x/y values change, send a bang to a \[delay\] with the argument set for however long you want to wait and turn off the oscillators. If you send a bang to the \[delay\] before the time is up, it will reset and start over--the previous bang will not be sent. The bang coming out of \[delay\] can then be used to turn off the oscillators.
Inaudible waveforms delay - is it possible?
Just to add a little to what hardoff said... You also might want to consider how long the delay is. If it's really short, like what you would use in comb filtering, the default vector size of 64 might be a problem. I'm not positive on this, but I think this will give you a minimum delay of 64 samples. You can also change that in \[block~\], say with \[block~ 1 1 4\] for a vector size of 1 sample and upsampling of 4x. Someone please correct me if I'm wrong on this. The \[vd~\] helpfile says something about this, but I'm not fully clear on it. But if all you're doing is delaying the signal, and you keep the \[block~\] in a subpatch just for the delay and nothing else, I can't imagine it would be too much of a burden on your CPU, so it may not be a bad "just in case." Also remember that the maximum frequency for a given sample rate in digital audio (half the sampling rate) is more theoretical and a little different in practice. First, slope on the brick wall filters in the a/d converters isn't completely vertical, so those extreme high frequencies get attenuated. And even then, if you could get a 22050 Hz signal in at 44.1 kHz sample rate, the peaks would have to fall right on the samples in order to faithfully replicated the amplitude. So make sure to think of the maximum frequency as a little less than the theoritical maximum. Oh, and if you delay the signal by an integer number of samples, I don't think you'll have to worry too much about the delay altering it, as it should be an exact copy in that case.
Problem compiling external on Windows
Great tutorial, very detailed! Thanks for this addition.. Sorry for coming later on this subject but I'll try to add few lines about compiling externals in Win without going through MSVC Express edition (by the way: what are the limitations of the express edition w.r.t. the full package?). Even if MSVC offers an integrated environment for developing there can be some good reasons for giving a try to the old-man "unix" way of compiling, which in windows is best represented by MINGW32 and cygwin. Both offers linux-like environments (i.e. command line tools) for compiling and other shell tasks which, sometimes, in windows are a pain in the ass. There are at least three good reasons for giving a look at mingw: 1) gives strong linux compatibility on external compilation (almost same command lines arguments etc.) 2) there is the possibility to use makefiles in an almost straightforward way (with minor modifications to linux makefiles). 3) no dependency on expensive MS programs (except for the small, bug-free Operating System ;-) I did this exercise by porting the E. Lyon "LyonPoutpourry" externals for win ([http://www.sarc.qub.ac.uk/~elyon/LyonSoftware/Pd/]). Give a look at the win source package: inside there is a makefile for darwin (MAC) linux and win. I added the latter, and as you can see the modifications are minor. ----------- 1\. Prelude: compilation environment ------------------ First of all we have to set once for all the compilation environment. Let's forget for the moment cygwin and concentrate on mingw32 ([http://www.mingw.org/]). The following is taken from (H.C. Steiner's wiki [http://www.puredata.org/docs/developer/mingw]) Download the MinGW package installer and run it: ([http://prdownloads.sourceforge.net/mingw/MinGW-5.1.1.exe]) Choose the Candidate distribution. Install the defaults and add the g++ compiler, g77 compiler, and MinGW make or you can just download my MinGW install, MinGW-Pd.tar.bz2, and uncompress it so that its installed into C:\\MinGW. Then we need MSYS which is a shell (an interpreter of the commands, like a colorful dos prompt ;-) [http://prdownloads.sourceforge.net/mingw/MSYS-1.0.10.exe] Now you will be using the MSYS shell that was installed from the MSYS installer. You can launch it from the Desktop shortcut or Start -\> Programs -\> MinGW -\> MSYS -\> msys ----------- 2\. Allegro: compilation trial ------------------ a. open MSYS b. at the prompt type: cd c: (or the drive you whish to go for the pd external compilation) c. go to the external directory (note the backslashes instead of slashes !), mine is external-compiling. Inside I have helloworld.c cd alberto/backup/PureData\_Archive/patches/AlbertoZ/external-compiling/ d. copy m\_pd.h (from the PD distribution directory) into external-compiling (or whatever is its name) e. type: gcc -c helloworld.c -o helloworld.o f. type: ld -export\_dynamic -shared -o helloworld.dll helloworld.o c:/Programmi/pd039e xt4/bin/pd.dll (this is the linker step. note that I linked to a particular version of pd.dll - 0.39 extended test 4, so probably (I'm not sure about this) the external will run on 0.39 only. Can someone confrm this?) g. If everything was ok then you should have a helloworld.dll in your directory. Move it on the extra folder of your pd distribution (I assume that extra folder is in the pd predefined path) and make a new patch with the helloworld object. Again, if everything is correct, you should have a "Hello world!!" printed on the console. ----------- 3\. Adagio: makefile ------------------ A makefile can be used for compilation. Even if a simple helloworld application does not need it, complex programs may do. The makefile.win is attached with this post. Modify it according to your path in Make sure you have helloworld.c m\_pd.h makefile.win in your directory. Now type at MSYS prompt: make -f makefile.win This will automatically produce: the object, the linker step (the dll) and will copy the helloworld.dll in the extra folder of you pd distribution (overwriting the existing one ;-). ----------- 4\. Allegro con brio: conclusions ------------------ Why not give a try to the old-man compilation on Win? :-) ----------- 5\. Minuetto: greetings ------------------ I apologize if I said some crap somewhere, just let me know if it doesn't work. Have fun! Best regards, Alberto : http://www.sarc.qub.ac.uk/~elyon/LyonSoftware/Pd/ : http://www.mingw.org/ : http://www.puredata.org/docs/developer/mingw : http://prdownloads.sourceforge.net/mingw/MinGW-5.1.1.exe : http://prdownloads.sourceforge.net/mingw/MSYS-1.0.10.exe
Need help with PD externals
SUBJECT: Need help with PD externals =============================== Hi, 1) I have written some code in C/C++. I would now like to create a pd external and be able to run my C/C++ code in pd (windows environment). I would like my PD object to have say 3-4 inlets and 2-3 outlets. Furthermore at least one of the inlets would contain compound data, something like an array of 10-15 floats. Thus my external would be a bit more complex than the 'very basic one', which has a single float as inlet, & a single float as outlet. 2) I work in the windows environment (currently my operating environment has pentium machines with windows operating systems installed on them (windows XP, or windows 2000 Professional). I am using a the free DevCPP or DevC++ compiler (version 188.8.131.52) the IDE, (which uses the gnu C compiler MinGW at its base). Furthermore, I am using: Pd version 0.38.4-extended-RC8 (windows platform). I wonder if someone has already developed externals in a same (or similar, i.e. Windows) environment. 3) If someone has, can you please mail me a simple compilable code that you might have had prepared, and guide me through the exact steps which one must follow to make a pd external. 4) I wish to know, if in the Windows/DevCPP compiler environment, whether it is possbile to create a PD external without creating a dll in windows, or is it always necessary to first create a dll, even in the simplest case? 5) Last, but not the least, I must mention here that I don't have "a lot" of experience in pd, so I will appreciate if someone could explain things in an easy to understand style. But in any case, I will ask again, in case I don't understand something. ;) I hope that should work. Thanks and regards, ps: === The following should actually have been posted as a separate thread, but since its related to the topic above, i continue to write it here: In addition to what I have asked for above, I would also like some feedback on the following... SUBJECT2: Creating/Compiling PD externals =================================== My previous unsucessful attempts at creating/understanding the PD external: I had tried to read through, and tried to implement the sample code in the tutorial, named: "How to write an External for puredata" available at the iem site... But I am facing a few problems, and here are some specific queries related to that: A.) While in the windows environment, must one always need to create a dll first, or is it possible to create a PD external in any other way as well? B.) If one must do it by first creating a dll, then the code as mentioned in the tutorial would need to be modified and can't just be copy+pasted & compiled directly. I.e. i) One needs to paste the data declaration part in the header; ii) Also one must declare all the subroutine (i.e. procedures/methods) names in the header file as well, while their definition or implementation goes in another main file, which must include our earlier created header file; and finally iii) One must insert a special prefix before all the methods when are required for the dll... Am I right about the 3 above mentioned points? Thanks yet again,
Order of connections. Messages flow doubt.
"Thus, the left-most [delay] will output a "bang" a fraction of a second sooner than the right [delay]. This causes the right most delay to reset its timer" Yes! Actually you did help me :D . That's exactly the point of my confusion: when the lower delay receives two bangs "at the same time" but in different orders. The delay is reset in one case but not in the other. The last section of your link was very helpful: visualizing it as a tree with its rightmost branch being executed first makes it clear to think about the order. Thanks.
Bringing back to life an old thread... I tried to make this patch work LIVE... and it is not as thought. To make this patch work, I should find the perfect delay to suppress the audio. Using 44100, the delay time can vary in 0.0226ms. So... it's almost impossible to get that. I only acchieve a flanger, nothing else. In the first Patch-Circle done in Argentina last Saturday, I talked with Pablo E. Riera about this and he told me about the adaptive external and the echo cancellation example... but there is no example like that (only intereference cancellation). I will explain again: the operator has a microphone and it sounds in a LCD (far away). Above the LCD I have a Webcam with mic. This mic takes what the audience says and send to the operator headphones. The operator hears her own voice (with a delay). I want to supress this "return". It doesn't matter the delay, if there were no delay, I don't want the operator to hear her voice. I would need something that learn from the main microphone and get rid of what the webcam mic takes. I hope being clear in my explanation. Thanks in advace.
Hi There, I have patched a signal generator for an active noise cancellation experiment. Basically it consits of an osc~ which feeds a delay line. I use two delread~ to drive my outputs. One is not delayed at all, the second one can be set to 0-5 ms delay via a slider. While checking my outputs with an oscilloscope I figured out that my delread~ does not delay the signal at all until I move the slider over about 1.5 ms. Above this level the delay increases proportionally. I have compensated it by adding 1.5 to the value set by the slider but this is obviously a bad work-around. Any Ideas where this effect comes from?
Hi, I'm new to this forum, but I've been reading the post here for the last two weeks looking for answers regarding PD, and I found it great... thank you very much in advance!! So, now, my problem: Actually, is very simple. I have a qlist object that is reading a file and sending data to the corresponding \[receive\] objects. Each value is read by its receive object, and I need to re-send it after a DELAY TIME. The problem is that the values can be a simple float or a list of floats, and that's variable. So, when I intend to use \[PIPE\] to delay the message, it only stores and, later, sends, the first of the elements of the list!!!!! So, how can I do to queue a list of floats (a pure, simple list!!) and send it after a delay time?? I thought \[pipe\] could manage lists, but I don't know if I'm doing something wrong... Anyway, thank you very much, and I wait for someone's answer!!!!! metronomme ... OK, I found list-fifo, and I think I'm in the good path.. It's exactly what I was looking for, execpt that now I need a \[delay\] object that could receive more than one value and send bangs sequencially... That exists???? Something that could enqueue delays... thankyou!!!!
Effects chain order
this one has got me stumped. i have 4 effects: distortion, ringmod, filter and pitch shift, lets call them D R F and P each can be turned on and off by a toggle. that's easy. if i run them in serial, i can just choose to bypass one effect by using the toggle. however, what i want, is run the signal through the effects in the order that i press the toggles. so, for example, i turn on D, then P, then R...then i want the signal to go through D, then P, then R...in that order. but then, if i turn off D, and then turn on F, i want the signal to go through P, then R, then F hope that's not too confusing. so anyway, basically i want to be able to put my signal through effects in the order that they are turned on. i'm sure that there must be a simple way to make this abstraction, but i have been sitting here for ages, and cannot figure it out. anyone got any ideas?
Transdetect~ and transcomp~: transient shaping and detection
transcomp~ uses transdetect~ to shape the initial attack and release of a signal. Requires IEM's FIR~, fexpr~ and dbtorms~ which are provided in PD-Extended. To work properly the transdetect folder should be added to PD's path. Start by opening help-transcomp~.pd 01 Implementation: transdetect~ works by using two pairs of envelope followers. The first pair subtracts an envelope follower with a slow attack from an accurate follower, the result of which is a signal containing the initial attack. For the initial release, the second pair subtracts an accurate envelope follower from one with a slow release. An envelope follower measures the mean square power of a signal over time (see 3.audio.examples/H06.envelope.follower.pd for details on implementing an envelope follower). To do this we must use a low pass filter at a very low frequency. In order to achieve an accurate follower a linear phase FIR filter was used (using IEM's FIR~ external). Unfortunately this introduces a phase delay. In order to facilitate the use of different envelope follower implementations, transdetect~ requires a filter type as a creation argument implemented in followernameTransDetectEF~.pd. 4 linear phase fir implementations are provided: 181, 251, 451 and 501 taps filters. The 501 taps filter provides the most accurate filter but with a phase delay of 5.668 ms at 44.1kHz (raise the sampling rate to lower the phase delay). They were all generating using [http://www.dsptutor.freeuk.com/FIRFilterDesign/FIRFiltDes102.html] with a cutoff frequency between 5 and 10 Hz. A compromise between accuracy and phase delay might be achieved by using minimum phase FIR filters. A 5th implementation using PD's native lop~ object is also provided under the designation iir (FIR~ not required). Along with different possible envelope follower implementation transdetect~ also requires an attack and hold type implemented in attacknameTransDetectAttackShape~.pd and holdnameTransDetectHoldShape~.pd respectively. These implementations dictate the kind of attack and release curves used on the envelope followers (linear, slow\[er|est\] and fast\[er|est\]). All implementations provided use fexpr~. A more efficient external could be made to take fexpr~ place. 02 Use In help-transcomp~.pd patch enable start and pay attention to the snap in the hit. Disable the green toggle button to disable the compression make the snap go away. Check out the tables on the left to see the results of the transient compression. transcomp~ is useful when used with recorded drums to maximize or minimize its transient (to make it punchier or to make snare drums less clappy). transcomp~ uses transdetect~. By itself transdetect~ can be used to synthesis hits from a recording. For example, take a bass drum recording and use the signals generated by transdetect~ to shape the frequency and envelope of a synthesized kick drum. ------------------------------------------------------------------ Would love to have some feedback and some help in turning the linear phase filters into minimum phase filters. [http://www.pdpatchrepo.info/hurleur/transdetect.rar] : http://www.dsptutor.freeuk.com/FIRFilterDesign/FIRFiltDes102.html : http://www.pdpatchrepo.info/hurleur/transdetect.rar
Im using pretty much the same setup as you are. When I put a delay on 100 or 200 milliseconds in the arduino-code I get much less jumping parameters in Ableton. Anyone who knows how to make such a delay in PD? Is there some way to open and close the line between two objects, like some kind of toggle-button that then can be turned quickly on and off using a metro object. The reason why I need that is that I also have a piezo connected to the arduino and it doesnt work with a delay in the arduino code, if I hit it sends a signal so quicky that it is missed with a delay. Hope its ok that I jump in with questions in your thread firebrandboy...
How do i split a signal into different parts?
@slur said: > interesting i thought that you always get a block delay in a delay feedback. because you always have to first read from the delayread~ to get the input for the delaywrite~. i can't imagine how you've got a shorter delay there. but to make it pd-weirdness-proof one should set the delay time to 1000\*blocksize/samplerate I was actually referring to the buffer size argument for \[delread~\]. You have it set to 10ms, but the blocksize is 1024, which is a little over 23ms. So a full block doesn't get recorded into the delay line.
Tabwrite~ with index?
no, that's not what i'm looking for... i wanna write, for example, one second of sound to an array and repeat the first few ms from the arraycontent (depending on the given size of sound to "stutter") in the meanwhile with an inaudible delay of one sample unit. with a delay this won't be possible, because you have to follow the signal in samplerate - this is not a big problem, but after the delay-size you set in \[delwrite ~\], the sound will stop. in reaktor, that's no problem, because you have indexed buffer read and write core-elements, that may share the same buffer. mhhhh... but maybe i can do it another way, with a delay-feedback of amount one, and dynamic resizing of the delay line... i have to think about that, there's always a solution! \*gg\* thanks for your help!
Input~-\>output~ = Delay...
@ZombieControl said: > Not familiar with the objects/abstractions you are using for input and output. > > Do you still have the issue if you go from \[adc~\] to \[dac~\] ? Yeah I do... same delay and same fuzzy effect. @pineapple said: > Delay is produced for soundcard not for Puredata. I assumed that the delay had something to do with my soundcard's communication strictly with PD, once I have no delay with other applications. @pineapple said: > For my experience, I think your problem is using Realtek soundcard. You need a soundcard with near to zero latency like RME ([www.rme-audio.com]), MOTU, presonus etc. > Delay is produced for soundcard not for Puredata. You need ASIO drivers. Ok... a new soundcard is not an option for me at the moment.... I could try and search for some ASIO drivers that could eventually work with my sound card... I've red some stuff about doing it but I'm not sure if that's safe at all, nor if that will make it any better... Thanks for the fast replies. : http://www.rme-audio.com
Live Mic'd Vocal Manipulation
Okay, so I made a little patch comparing the table approach and delay approach, and they both have their ups and downs. For one, the table method will only allow you to speed/pitch down for the most recent audio. Faster playback will result in the virtual playback head to pass in front of the record head, causing it to playback previously recorded material, which I get the feeling isn't what you're after. The downside to the delay method has more to do with the fact that I just can't remember how to go about determining the exact transposition you're looking for. But it does allow for longer playback than the table method using the same size buffer. This is because the playback head is always following the record head and can thus wrap around the buffer before reaching the max buffer length or catching up with the record head. I used the \[cos~\] object to generate an envelope. This is what is used in G09.pitchshift.pd. The difference is that there are two of them, offset by 180 degrees. These envelope to delays playing back at different speeds, and as one delay is silent the other is at max peak. They are essentially crossfading in and out with each other. The silent one is switching from the beginning of the delay line to the end (or vise versa, depending on the pitchshift) while we can't hear it. So basically it plays short snippets (or grains) at different speeds to change pitch, but the start times of each grain are relative to the input signal so there's no sense of timestretching. Something like that. I don't know what's going on with the math in the transpose section, I just know it works! [http://www.pdpatchrepo.info/hurleur/helpforpatches.pd] : http://www.pdpatchrepo.info/hurleur/helpforpatches.pd
Pd works with a logical clock - all messages happen in 0 logical time unless you have delays. Audio works similarly, the delay from \[adc~\]--\[dac~\] is exactly the same as the delay from \[adc~\]--\[some complicated process\]--\[dac~\] (unless you use audio delay lines). However, the difference between Pd's message and audio is thus: messages are triggered depth-first, with only one thread of execution, whereas audio has a "dsp graph" that ensures that things are executed in an order that makes objects get their inputs when needed. For example: \[adc~\] | \\ | \\ | \\ | \\ \[\*~ 0.5\] \[lop~ 1000\] |\\ /\\ | \\\_\_\_\_/ \\ | / \\ \\ | / \\ \\ \[+~ \] \[-~ \] | / | / | / | / \[dac~\] The order of execution is determined by the graph topology, where numbers indicate absolute order, and letters indicate that the objects might execute in any order: 1\. \[adc~\] 2a: \[\*~\] 2b: \[lop~\] 3a: \[+~\] 3b: \[-~\] 4: \[dac~\] But this doesn't matter so much, it's conceptually as if they were executing simultaneously. You only notice there is a dsp graph when you get "dsp loop detected" errors. The keyword you are looking for regarding 'delay' is "latency", I suspect, and latency depends on the spikyness of CPU load. For example, for low-latency audio/visual stuff, you generally want to have the audio flat load (lots of computation but roughly constant load) in "pd -rt", and do spiky-load (lots of computation in bursts of 40ms or so) video processing in another instance of "pd -nrt", communicating over local network.
Problem compiling external on Windows
I'm having trouble getting the helloworld external to compile properly on Windows. The main resource is apparently this: [HOWTO write an External for puredata], and some previous posts on this topic are here: [Compiling new external], [Max/MSP microtuning externals to convert to pd] Bear with me, because working with the C compiler is still rather mysterious to me, so I may be making some obvious mistakes. I've installed the [djgpp compiler], and followed all the instructions as best as I could. I'm working on XP. I put "m\_pd.h" (from the pd/src/ folder) and "[helloworld.c]" in the same folder and from that directory on the command line (in a DOS "Command Prompt" window) typed: gcc -c helloworld.c -o helloworld.o As far as I can tell, this successfully produced the "helloworld.o" object file in the same directory as the "helloworld.c" file. Then I typed: ld -export\_dynamic -shared -o helloworld.dll helloworld.o -lc -lm Which, as I understand, is the "linking" step, and the only difference between this command and the command for linux is that ".pd\_linux" is replaced with ".dll". Anyway, the compiler responded with: c:/progra~1/djgpp/bin/ld.exe: -shared not supported So, not having any other ideas, I tried omitting the -shared flag: ld -export\_dynamic -o helloworld.dll helloworld.o -lc -lm That produced this response: c:/progra~1/djgpp/bin/ld.exe: warning: cannot find entry symbol xport\_dynamic; defaulting to 000018d0 helloworld.o:helloworld.c:(.text+0x1e): undefined reference to \`post' helloworld.o:helloworld.c:(.text+0x37): undefined reference to \`pd\_new' helloworld.o:helloworld.c:(.text+0x60): undefined reference to \`gensym' helloworld.o:helloworld.c:(.text+0x79): undefined reference to \`class\_new' helloworld.o:helloworld.c:(.text+0x96): undefined reference to \`class\_addbang' Why is -shared not supported and what can I do to fix that? I tried Microsoft Visual C++ Express Edition, but found the interface bewildering. I don't think I could even find the words "compile" and "link" in any menu... Then I looked in the "0.README" file located in the pd/doc/6.externs/ directory, and found this line (in reference to the 3 example enternals in that folder): > To compile, type "make pd\_linux", "nmake pd\_nt", "make pd\_irix5" or "make pd\_irix6". If I wanted to compile these, where would I even type this? Is "nmake" an actual command? Then I tried poking around the [GNU info files], and saw some vague information about "[binutils]" and "[dlltool]" but it is so beyond me right now that I'm turning here. Could someone please enumerate the steps required to take the C source file "[helloworld.c]" and make it into a usable object in pd without skipping any steps? I (and I'm sure many others) would greatly appreciate that. Thanks in advance! : http://iem.at/pd/externals-HOWTO/ : http://puredata.hurleur.com/viewtopic.php?pid=3706#p3706 : http://puredata.hurleur.com/viewtopic.php?pid=3729#p3729 : http://www.delorie.com/djgpp/ : http://iem.at/pd/externals-HOWTO/node3.html#SECTION00036000000000000000 : http://www.delorie.com/gnu/docs/ : http://www.delorie.com/gnu/docs/binutils/binutils_toc.html : http://www.delorie.com/gnu/docs/binutils/binutils_15.html
Clearing delay lines
ok, maybe use the \[\*~\] before the delwrite~ too. And you must wait delay the both \[\*~\] by your delay time. May be if you want to start (for a delay time = 20msec): \*~ 1 to delwrite delay 20 \*~ 1 to delread no ?
Neural network in PD
I am not deeply familiar with neural network, I do understand the principle but I never experienced such DSP my self. My most complex application of "training" is rather simple adaptive DSP : LMS-gradient, leaky adaptation, and some others mostly related to adaptive DSP with linear time-invariant assumed filters, mostly transverse FIR. So, I know that the author of the paper which I read from la kitchen was at this time using Matlab for the training. In the conclusion, they say that they work and training within PD. My sole personnal reference on IA is some part of book like : "Signal Processing for Active Control", "Active control of noise and vibration" (from Hansen) and maybay Widrow "Adaptive Signal Processing" or "Adaptive Inverse Control" ... Even outside PD, training its the biggest challenge ...
NYC Patching Circle: Monday, April 16th
This Monday, April 16th 6-9pm. Celebrate tax day with a patch-o-rama! [http://idmi.poly.edu/node/122] This week we are fortunate enough to have Wesley Smith from Cycling 74 to join us in patching patchers and, well, lets be honest, helping us a bit with our Max/Jitter/OpenGL/Shader issues \*cough\* Right Wes?. Come join the fun and dont bother the poor guy too much. This is an informal gathering of patching and patchers (Max/MSP/Jitter, Pure Data, and even jMax, EyesWeb, vvvv, etc.). Beginners and Experienced welcome. Open to everyone, students, the public, etc. Work on school projects, personal projects, ask for help, help others, or just patch quietly to yourself, in a room full of other people patching patches and helping other people patch. RSVP and I'll put you on the guest list at the door. Otherwise call 718 260 3693 when you get there. [Google Map] - [Yahoo Maps] Directions All events will take place in Rogers Hall at Polytechnic's Brooklyn campus, on the second floor, in room RH207\. The entrance is on Jay St. Across the street from the Marriott. \* train to Jay Street-Borough Hall \* train to Borough Hall (walk one block East to Willoughby, left on Jay) \* train to Lawrence Street-MetroTech (one block North on Lawrence) \* train to Dekalb Avenue(two blocks North toward Manhattan Bridge and make a left on Myrtle Ave into MetroTech) For more directions, see [http://www.poly.edu/directions/] : http://idmi.poly.edu/node/122 : http://maps.google.com/maps?f=q&hl=en&q=6+metrotech+ctr,+11201&ie=UTF8&om=1&z=15&ll=40.692093,-73.981977&spn=0.011649,0.033646&iwloc=addr : http://us.rd.yahoo.com/maps/extmap;_ylt=AgdAvELIXXsgvgK_EoAid8hkDLMF/*-http://maps.yahoo.com/maps_result?addr=Metrotech&csz=Brooklyn%2C+NY+11201&state=NY&uzip=11201&ds=n&name=&desc=&lat=40.6938&lon=-73.986&mlt=40.6938&mln=-73.986&zoomin=yes&BFKey=put&mag=2 : http://www.poly.edu/directions/
NYC Patching Circle: Wed, Feb 14th
This Wed, Feb 14th 6-9pm. [http://idmi.poly.edu/node/103] This is an informal gathering of patching and patchers (Max/MSP/Jitter, Pure Data, and even jMax, EyesWeb, vvvv, etc.). Beginners and Experienced welcome. Open to everyone, students, the public, etc. Work on school projects, personal projects, ask for help, help others, or just patch quietly to yourself, in a room full of other people patching patches and helping other people patch. We are making it a regular, monthly meeting: the second Wednesday of every month, stick it in your calendars! And since it's Valentine's Day this time, come be our Valentine! Show your love with boxes and lines! RSVP and I'll put you on the guest list at the door. Otherwise call 718 260 3693 when you get there. Directions All events will take place in Rogers Hall at Polytechnic's Brooklyn campus, on the second floor, in room RH207\. The entrance is on Jay St. Across the street from the Marriott. \* train to Jay Street-Borough Hall \* train to Borough Hall (walk one block East to Willoughby, left on Jay) \* train to Lawrence Street-MetroTech (one block North on Lawrence) \* train to Dekalb Avenue(two blocks North toward Manhattan Bridge and make a left on Myrtle Ave into MetroTech) For more directions, see [http://www.poly.edu/directions/] : http://idmi.poly.edu/node/103 : http://www.poly.edu/directions/
OpenLab 3 - Exhibition and Events (4th to 11th November 2006, London)
OPENLAB 3 Group Show, 4/11-11/11/2006, 1-7pm Opening Event and Private View 4/11/2006, 4 -12 pm Closing Event 11/11/2006, 4-12 pm Auto-Italia South London Gallery 82-86 Queens Road SE15 2QX Peckham, London OpenLab is delighted to present OpenLab3, an group exhibition with an opening and closing event featuring musical performances by more than 20 artists and musicians of the OpenLab collective. OpenLab engages in the aesthetics and politics of Free Open Source Software Culture. Free Software Culture seeks to emphasise transparency of the creative process by making all stages of development available to others, enabling them to learn how the creation works and alter it for their own purposes. When this idea is applied to artistic practices, the boundaries between the artistic usage of software tools and their collaborative development become blurred. The workings of the artist's tools are exposed, and the artists are actively engaged in developing media technologies. They can modify them to suit their goals, rather than creating works by using existing tools that impose "their way of doing things" on the artwork. This group exhibition brings together interactive installations, sonic interventions, video works and animations which explore the audio-visual code of this network culture: computers start to paint pictures on their own, expose their internal circuits and "commit suicide"; birds will sing and fly around in multiple realities, the skylines of two cosmopolitan cities merge, language, meaning and time burst into fragments and recombine. The range of the combined works points to the strength of Open Source Culture -- its increasing versatility as artistic playground essential to contemporary debates and its continued importance not just in the invention of new media realities but also in tackling themes of "real" time and space. The two music events feature sound and multimedia performances of artists who use and develop open-source tools such as PD, Supercollider, Processing and Fluxus. They will perform prepared sets and code their music live in various programing languages. Musicians will also experiment with a set of live instrument swapping. By exchanging PD-Patches, they will challenge each other in an uncharted space of sonic manipulation. The performances will span from excursions into the symphonica, experimental noise and soundscapes to electronica and beat-oriented minimal techno-sets. PARTICIPATING ARTISTS: Rob Canning, Chun Lee, Claude Heiland-Allen, Carl Forsell, Sabine Gottfried, Karsten Gebbert, Paul Webb, Rob Munro, Chiharu Kaido, Evan Raskob, U-Sun, Ryan Jordan, Oli Laruelle, Robert Atwood, Luke Jordan, Rene, Monica Subrotova & Daniel Kordik, Michael Woelkner, Andy Farnell, Martin Aaserud, Ryan Jordan & Rachel Horne, Dave Griffith & Alex McLean For more information please visit : [http://www.fexia.com/openlab] [http://openlab.pawfal.org] [http://www.midnightbluecollective.com] : http://www.fexia.com/openlab : http://openlab.pawfal.org : http://www.midnightbluecollective.com
can't install bob~
@liamorourke use this compiled version (from pd vanilla): [bob~.dll](/uploads/files/upload-2491167a-4323-47b7-ba00-f2a41ab18b50.dll) [bob~-help.pd](/uploads/files/upload-7abda160-69b9-4662-9e7c-b5110dd1ff9b.pd) (rename upload-24...dll to bob~.dll) Cheers~
Delay/phase problems with Aux sends and effects
You are probably correct about the delay, but you must be sending the same signal twice (one of those times with more delay) in order to create such artifacts. The send~ and receive~ objects introduce one block of delay, and I think that throw~ and catch~ do as well, so if you are throwing and catching more in one path than in another then you will have delay differences for sure.
Problem with netobjects (from martinrp)
i have download the externals, [http://puredata.info/Members/martinrp/netobjects] I have put the DLL in pd\\tcp directory . At the initialisation, Pd finds it but can't load it. tried F:\\\\Program Files\\\\pd\\\\gem\\\\tcpserver.dll and failed tried F:\\\\Program Files\\\\pd\\\\tcp\\\\tcpserver.dll and succeeded F:\\\\Program Files\\\\pd\\\\tcp\\\\tcpserver.dll: couldn't load tcpserver: can't load library i work with windows XP, and Pd version 0.39-1 What can I do ? Thank you. : http://puredata.info/Members/martinrp/netobjects
1st time – Test Audio and MIDI, producing only distortion, instead of sine wave
Windows needs a greater delay, somewhere Miller says that it needs about 80ms...which is not a good thing. But I'm not sure what version of Windows he was talking about. So, go to **Media **-> **Audio Settings**, and try with the following settings: sample rate: **44100**, delay(ms): **128**, block size **64**. If that works, then refine those settings until you can get an efficient playback with a smaller delay, i.e. **experiment within a safe range, 80ms to 128**. The smaller this delay, the more responsive everything will be. http://en.flossmanuals.net/pure-data/ch010_configuring/ http://en.flossmanuals.net/pure-data/ch015_trouble-shooting/ By the way, according to Miller, the order of efficiency/responsiveness was 1st Linux, 2nd Mac, 3rd Windows. The really responsive one being Linux...Fedora, in the case of Puckette. The other two are not that good.
Hi everyone I'm new on PD and I try to make a simple delay line but I can't make feedback. I've used "delay~" but when I connect the out put to the input (to make a feedback) it doesn't work. Someone can help me? [http://www.pdpatchrepo.info/hurleur/delay-problem.jpg] : http://www.pdpatchrepo.info/hurleur/delay-problem.jpg
Receiving and decoding an MP3 stream?
well, i found the missing dll file here - and put it in the install folder... seems to work now. The file asked for was the libmp3lame-0.dll Found one here [http://pspunch.com/pd/files/binary/libmp3lame-0.dll] (from Lame 3.98.2) All well! : http://pspunch.com/pd/files/binary/libmp3lame-0.dll
Swept sine deconvolution
Hello Katjav, I have been chasing the swept sine technique with Farina's Aurora tools on the Cool Edit/Adobe Audition platform. I too found that octave extension of low frequency side only to use as fade in made possible much better result. Also small fade out at the end for non zero end state and all was greatly improved. But applied to getting IR of sound card loopback produces wrong answer. AC coupling of output and input stages produces min phase Butterworth type answer and swept sine with fades always contaminates with its sinc like IR. MLS gives correct answer, but of course brings its own baggage. Your webpage: [http://www.katjaas.nl/expochirp/expochirp.html] shows IR result that I've seen on many of my screens while working on the fade issue. Very nicely done indeed. Farina released plugins for Audacity for convolution and sweep generation. Audacity display doesn't provide zoom tools for display of fine detail. The plugins do provide ready reference. The solution to the fade issue is to not use them in producing the sweep pair. The answer is in generating at least one of the sweeps in the frequency domain. Here is link to a great paper covering some of this: "Transfer Function Measurement with Sweeps," SWEN MÜLLER and PAULO MASSARANI I found it here: [http://www.melaudia.net/zdoc/comparisonMesure.PDF] Chapter 5 has got the goods. Turns out that Kirkeby inverse is perfect tool for the job, and many more! To bad it is trapped in Cool Edit/Audition domain. Perhaps Farina will liberate it soon. The perfect place to apply it is before all the trouble begins. An arbitrary broadband signal of 2^n length may be inverted with Kirkeby, and convolution of the pair returns extremely good result. Samples directly next to pulse of 1e-6 easy to obtain. Starting with white noise, results emulating MLS are possible. Starting with exponential sweep a sweep is returned by Kirkeby with circular convolution properties: To get right convolution result, two copies of forward sweep need to be used and cropped to central result. Alternately Kirkeby may be directed to return result 4x longer for direct convolution. I found that a 2x long Kirkeby result produced artifacts. One may also use 2 copies of a 1x Kirkeby to recover IR with single instance of the seed wave. I communicated this with Farina, and he honored me by placing his confirmations to: [http://pcfarina.eng.unipr.it/Public/Wolkoff/] There are six wave files: 2^20 sample length forward sweep and inverse sweep generated without fades; and 1x,2x,4x Kirkeby inverses of the forward sweep. Additionally a time shift Kirkeby is posted. This is a hack I proposed as a partial work around for straight convolution. It is simply cutting first half of 1x Kirkeby and pasting it back at the end. Fading the ends controls bandwidth, and provides kernel for auralization applications. Cheers! : http://www.katjaas.nl/expochirp/expochirp.html : http://www.melaudia.net/zdoc/comparisonMesure.PDF : http://pcfarina.eng.unipr.it/Public/Wolkoff/