/r/puredata
--Community Resources--
--Projects & Tools--
--Learning Materials--
** --Dsp **
** --Hack on Pd **
--Language Docs--
--Other Subs--
/r/puredata
Basically title. I've fiddled with PureData and its offshoots - PureData-extended, PurrData, PlugData - on and off for a while now, emulated a synth I own, that sort of thing - but I'm unsure which one I should actually be using. I hear some are abandoned and some aren't, but I don't know which are most current or which have the best support for Linux and OpenSUSE.
In particular I've tried to use Gem recently, and no matter what version of PureData I use or how I try to install Gem I can't get it to work. If I wanted to try for live audiovisual response with PureData on OpenSUSE, what should I keep in mind or try?
Currently experimenting with the ESP32 while I wait for the version with ADC support. A few years back, I had success using BLE-Midi with a simple Bluetooth module, but only worked on macOS. Now I'm repurposing an ESP32 with built-in Bluetooth as a gamepad controller. I developed a Pure Data (Pd) object for this, and I'm happy to see that it works flawlessly across all systems and the connection is straightforward—no Bluetooth issues whatsoever!
My computer is telling me that PureData is taking up 28.2 GB which seems...excessive. Is it supposed to be taking up this much? How can this be happening?
I would like to share with you guys, for fun and some feedback, my latest work called BYON. It was made entirely with Pure Data and Processing.
My official fancy description of the project is: "BYON (or Bring Your Own Number) is an audiovisual piece with 1,000,001 movements. Little by little, these movements are being discovered, and whoever discovers a movement has the right to name it. Each movement consists of stereo music and video, both generated by computer code and based only on a numeric input. The music and video are unique for each number, ranging from (and including) 0 to 1,000,000. Yet, despite the seemingly random nature of the process, the sounds and visuals are not entirely chaotic. Through careful planning, coherence emerges across the movements, even in the absence of direct human control, making BYON an exploration of compromise with the unknown and an exercise in acceptance."
This is one of my favorite numbers so far, and I am uploading every new submission to this channel: https://youtu.be/ZLpDYavUFHI
If you want to discover and title your own movement, submit any number you’d like to see featured on this channel using this form: https://forms.gle/21mcnpsVA737aqTS7
A couple of people suggested that I added a BYON channel on my discord and we are experimenting with that. Link is in the video description as well.
Please let me know if you have any question or feedback.
I want to have code I made in puredata playing in a scene in Godot and I want to make it so that would I interact with an object in the engine, it effects parameters in the puredata composition. Is this even possible and of so how would I go about doing this?
Hello, this semester im taking a class on "applied creative technologies", one of the assignments is to build some sort of interactive sound device for an art piece/installation using a microcontroller (like raspberry pi pico, arduino, etc.). Another requirement is that the project has to be "autonomous" i.e. not pluged in to a laptop or a computer, but were allowed to connect it to an outlet.
I have experience with pd but i have 0 knowledge about microcontrollers and electronics, so id like to ask:
how would you approach this assignment?
How realistic is it to use pd for this project and if its not what would you recommend?
Also what microcontroller would be best?
Ive thought about making some kind of midi controller, but it seems like it has to be always connected to a laptop.
Thank you very much
Hi r/puredata,
I’m working on an auto-panning effect in Pure Data for a 5.1 speaker setup (Left, Center, Right, Left Surround, Right Surround). The idea is to have the sound feel like it’s smoothly “walking” around the room, moving from speaker to speaker in a continuous loop.
I’m currently using an oscillator to drive the movement, but I’m having some trouble getting smooth transitions and balanced volume as the sound pans across all five main speakers.
Question: Has anyone set up a similar effect, or have tips for creating this type of auto-pan effect in Pure Data? Also, if I wanted to expand this to a 7.1 setup (adding rear surrounds), how would that change the approach?
Thanks for any guidance or tips you can share!
Left is how Pd looks on the screen, and right is how OBS records it. How can I make the video look good?
Hi, I am building a hardware instrument’s project using pi, audio injector & arduino. I would like to know in which ways I could select different patches with one knob, like the organelle do. It would be a really nice feature, that could allow me to switch between drone synthesis, granular pedal effect or 8-step sequencer. [clearly a live performing purpose]
Thx by advance
So I wanted to create a window or program that would essentially display a waveform in cool colors of the audio that I was hearing. I had set up Cable Input from Voice Meeter a bit ago, a virtual microphone that essentialy takes all the audio from programs your using and turns it into a microphone. I followed a Plug Data tutorial, but then I realized the GUI i wanted to do was better in Pure Data, so after a weird setup, I followed the turoiral again, this time in the enviroment that it was supposed to work for, but it justs gives me an "Illegal I/O combination" error! And this happens on every microphone! What should I do?
I have made some upgrades to my Pure Data x GEM visual synth patch. Previously, it was made to work with the Akai APC40, but now it also has a standalone interface! So you can use the patch without needing a midi controller. I use the patch to VJ!
Enjoy, and happy to answer any questions
If you don't know how a rotary phone works:
There are two pins that are connected. When you dial a number, the pins are broken for the amount you've dialled.
Dial 9? The signal is: 111101010101010101010111111111
I'm currently trying to figure out how to collect the dial, so I have a patch that counts the 0s and increments a number, but that ends up being 1 2 3 4 5 6 7 8 9.
How do I get a 5-6 digital telephone number out of this count? Putting into a pack at the moment, stores 1 2 3 4 5 because they increment, i'm not given the final count.
Can anyone shed a light on how this can be achieved?
I'm a computer engineering student with a strong interest in digital signal processing and music production. Recently, I've been experimenting a bunch with Pure Data and I really love the algorithmic approach it offers. I find that Pd allows for more creativity compared to traditional DAWs like FL Studio, especially since it encourages building sounds and effects from the ground up rather than relying on pre-made loops.
However, I've noticed that Pd isn't very intuitive for newcomers and lacks certain features that are standard in mainstream DAWs. I'd like to create a new DAW from scratch that retains the core strengths of Pure Data—its flexibility and emphasis on algorithmic composition—but with a more user-friendly interface and additional features to make it more accessible for mainstream music production.
I'd appreciate your input on the following:
I'm planning this as a side project (a large one) that could also serve as a portfolio piece for future job applications. Any insights, suggestions, or resources you could share would be immensely helpful.
Thanks for your insight.
Edit: Also do you think its possible to use the pure data workflow to make more mainstream music and not just aphex twin type beats
I was perplexed with the cool UI and actually want to learn how to use the software.
Any good tutorials available?
I found some but they weren't in English
Please beware, I've just learned it the hard way and I'm very upset. I'm working on a MASSIVE patch, literally months in the making and I need absolutely control on every variable (and there's always a chance that the seed will be 0 since I cannot choose it). I probably have more than 100 urns and drunks spread throughout the whole thing. [seed 0< works perfectly with [random], and that's the frustrating part, since to me the documentation for urn and drunk seems to suggest that the seeding would work just like the normal random. I really think this should be added to the documentation, if anyone here knows how I can make this happen I would be very grateful. I was just done with a months long project, promised materials put tonight, but now it will be a few hours fixing this and making sure nothing else broke since the patch is huge
I was using Purr Data for years and thought it was a big improvement to pd vanilla with the added package manager (is that still in pd?). I noticed a lot of people liking PlugData. I must have thought the name implied it was like libpd or other projects, but is it really similar to Purr Data? Are people using Purr Data still? I think that's a good project but I thought I'd ask what people are using lately since I don't know much about PlugData. Also if it has an improved UI, is it Electron? Or native, or a framework like QT, and is it open source?
Thanks everyone
Generative ambient patch I made on PD.
I'm currently making a patch that I would like to control through a midi controller with just sliders and knobs, in order to change values without using the mouse or clicking on number boxes. If possible, I would like it to have a 5 pin midi cable output. Do you have any suggestion?
I'm releasing my first ever Pure Data (vanilla) x GEM patch to the world. I call it ESPER and it is a "visual synthesizer" that I built for the Akai APC40 to create real time, audio reactive visuals. I use the patch for live VJing and experimental performances.
While there’s always room for improvement, I’m really happy with how fun and interesting ESPER has become to use—so I thought it was time to share it with you all!
Here's a crappy "trailer" I made to showcase some visuals made by the patch.
https://www.youtube.com/watch?v=dnWvNLu04hQ
To download, follow the instructions here:
https://github.com/aidanwobrien/ESPER/
Since Pure Data and GEM are free and open source, I encourage you to tweak, remix, and experiment with this patch to your heart's content. Although designed for the Akai APC40, it can be mapped for different controllers. Or even just as a reference to learn more about how GEM and Pure Data work.
When I started, my knowledge of Pure Data and GEM was practically nothing, so this has been an incredibly fun and rewarding journey for me. I welcome any constructive feedback about how to make the patch better. I hope you enjoy exploring ESPER and much as I enjoyed building it!
Some Features:
First time reddit poster here!
Plugdata was recommended to me recently and I love the UI and other elements but my main goal is integration/sequencing my modular setup (which I will use an expert sleepers ES-8 for) and apparently pd vanilla is more primed for that bc of an issue with ASIO drivers or something?? Anyway, main point is I feel like puredata is overall what I really want to stick with bc it seems so interestingly granular and raw, almost like DIY electronics but as a virtual environment. And aside from that I feel like, though the learning curve is steep (coming from no programming background here), learning from puredata will help commit my knowledge bc you can’t rely on pop-up info boxes or whatever. What do y’all think?
Surprisingly, I couldn't find this anywhere. Is there an easy way to stop execution of a patch? That's an infinite loop (Sometimes sometimes it takes a while to stack overflow)
Many externals don't seem installable on the Raspberry Pi 5 yet. I just want to make sure I'm doing everything correctly but it seems to be a confusing mix of aarch64 arm6 arm7 and amd. I'm not sure what I need but something as common as freeverb~ doesn't seem installable yet on Raspberry Pi 5.
Am I overlooking something small (I am not hiding foreign architectures, for example) or is this just still too new?
Hello i have recently started working with pure data and i cant tune with the retune module when i list the frequency in cents with message boxes, im sending a bang from a midi keyboard module inside pure data.
Also i see there is a scala module but i cant even use that i must be doing something wrong take in mind im a beginner
Hello all i have started using PlugData and currently its going great, im still learning.
Im getting this error message, if anyone knows i would appreciate any help.
--> Generating C
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "knob". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "knob". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "knob". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "knob". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "knob". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "knob". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "knob". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "knob". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "knob". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "knob". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "knob". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "svfilter~". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "svfilter~". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "svfilter~". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "svfilter~". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "svfilter~". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "svfilter~". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "svfilter~". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "svfilter~". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "svfilter~". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): Don't know how to parse object "svfilter~". Is it an object supported by Heavy? Is it an abstraction? Have the search paths been correctly configured?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: in "" @ (x:0, y:0): There was an error while connecting two objects. Have all objects been correctly instantiated? Have all inlets and outlets been declared?
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
[91mError[0m pd2hv: [comment null object placeholder (svfilter~)] in "" @ (x:0, y:0): Connection made to non-existent inlet at [comment {'text': 'null object placeholder (svfilter~)'}]:0.
Total compile time: 2.90ms