PD <-> DAW interactions tutorials please?
Agreed. I've been playing with Camomile and have written effects plug-ins in Pd that have sent and received MIDI and/or OSC and have been controlled by DAW automation, so that's substantial integration. I defer to @emviveros regarding the support for externals since I'm just a vanilla guy. I've also written effects plug-ins with side-chains for Reaper, so that means your Pd VST patches can be modulated by audio signals from other Reaper tracks. Reaper itself supports fairly complete OSC and MIDI controls (both input and output) so that's another layer of integration that's possible. And for completeness I suppose one should mention using MIDI and audio loopback software, but the flexible MIDI and audio routing capabilities in Reaper seem to make them unnecessary.
Using Pd to remote control OBS
@Harlekin If you want TouchOSC to control OBS you don't need Pd....... just connect TouchOSC directly to the ports of osc4obs and make your remote.touchosc layout file.
If you want to do some other processing in Pd then connect TouchOSC to Pd directly (in and out)...... and then connect your processed control from PD to osc4obs directly (in and out).
osc4obs facilitates that by creating separate OSC in and out ports.
You will have to do that also if you want to use TouchOSC and Pd in an either/or situation as osc4obs only has one set of osc ports and is making a tcp connection with OBS.
OBS websocket is a tcp connection and so it is possible that osc4obs is requiring tcp for the OSC connections...... in which case remove the -u flag from [netsend] and [netreceive] in my examples below.
It could also be expecting ascii instead of binary in which case remove the -b flag (but I doubt that)....
Externals for Pd are written in C so if you are adept there is some help in Pd/doc/6.externs .....
Basically you need to make a websocket client that replicates osc4obs with outlets and inlets instead of the osc ports.
BUT... you could try the iemnet [tcpclient] first (NOT the [udpclient]...!).... and that should work.
Just replace both [netsend] and [netreceive] with the one [tcpclient]...... connect it to OBS and look at the output using a [print] object.
If OBS is on the same computer the connect message will be [connect 127.0.0.1 4444(
Remove the password from the OBS websocket unless you find that a password can be added to the [connect( message for [tcpclient]...... before or after the port number? preceded by "password" or "passwd"?...... guesswork...... and [tcpclient] might well not accept a password as it is not mentioned in the help file.
Once you are looking at a print of the received messages the problem will be to decode the proprietary message format (it will not be OSC)....... it might be easy.... or not.
If lucky there will probably be the ascii strings you are looking for or a decimal representation of them somewhere in the message.
If you go the osc4obs route then it is quite easy to use [oscformat] and [oscparse] in vanilla instead of creating an external.......
...... vanilla osc.zip
P.S. try to avoid integers within the OSC address (header) as they arrive in Pd as symbols at the output of [oscparse] ....... and are then difficult to route. So what/ever/6 data is best avoided if possible and what/ever/six data is easier to deal with in Pd...... but I have included a solution in the zip file above.
Be careful in TouchOSC to avoid message feedback (much like midi feedback)......... and the same applies in Pd. In Pd you can include "set" at the start of a message (without the quote marks)...... which will set a message in the next object or message box but not send it onward until that object or message is banged.
David.
Starting up problem.
@beem Yes, you cannot rename main.pd........ it's the folder that can be renamed.
@JackOats No. In edit mode drag across the [declare -path patch_editor_abs] with the mouse to select it and then copy it and paste it within the main.pd window before editing it.
If @beem has not solved the problem for you then.........
Let's try something else. Trying to find what is going on.
On your screenshot were a lot of the modules named in red and marked couldn't create.
Choose one, say basic-osc.
In main.pd click on the file menu and then "Put" "Object" and then type basic-osc into the object.
Does it create?....... pop up as a bigger window with the oscillator in it?
No?
Go into the patch_editor_abs folder and copy basic-osc.pd and paste it into the Pd/bin folder, or into the "extra" folder if there is one (the one that contains the ggee folder).
Back to main.pd and try putting the object basic-osc again.
No?
Yes?
If it does then try the module button for basic-osc.
Does it now work?
No?
Copy main.pd into the patch_editor_abs folder..... open it..... and try the first step again (put, object, basic-osc).
If none of that works then I think it must be a security permissions problem.
David.
PdParty, sending/recieving OSC
Hi folks!
I reached this thread because I had the same problem: there were no way to receive OSC messages in PDparty. I was sending a simple bang from Isadora, just for test purposes, and it works fine on PD on my Mac (sending to locahost), but does not work sending to my Iphone IP. I was sure that the OSC were issued corrected, cause I can see them on Isadora OSC monitor.
Finally I found the problem was a conflict between the OSC incoming port in PDparty (Iphone) and de OSC port that the patch is lisent to (specified in a message to netreceive). If this one (in netreceive) is the same that the one in Port incoming (PDparty), you get in the console this error "error: blind: Address already in use (48), and the patch in PDparty do not receive OSC messages. I changed the OSC incoming port in PD settings, and the patch is receiving OSC messages to the port specified in [lisent] and [netreceive].
I attach my test patch (just play the sound file "cascabel" from the bang button or from OSC (send "/toggle1 1" to port 4321 to the IP where PDparty is running).
Hope it is useful for somebody. I was stuck for hours finding the reason for no receiving OSC
Regards
Daniel
TEST_PDparty.pd cascabel.wav
i/o-errors in pd
@JackPD said:
If I hide the graph, I can record forever and the dsp runs perfect from start to finish.
What I'm asking is this-- how many signal objects can you add to your patch before you start getting dropouts on every single resize of your array?
You can test it like this:
- add an [osc~] somewhere in your patch or on a subpatch. Then send your resize messages to [sndfiler] and see if you get a dropout.
- If no dropouts happen, duplicate the [osc~] so that you have two of them. Then send your resize messages to [sndfiler] and see if you get a dropout.
- If no dropouts happen, select the two [osc~] objects and duplicate those so you have four of them. Then send your resize messages to [sndfiler] and see if you get a dropout.
- If no dropouts happen, select the four [osc~] objects and duplicate those so you have eight of them Then send your resize messages to [sndfiler] and see if you get a dropout.
etc.
Keep selecting and duplicating these [osc~] objects until you begin to get dropouts when sending the resize message to [sndfiler]. Then tell me how many [osc~] objects you have in your patch.
Getting Pure data to work on Raspbian Jessie (giving pure data permission to access device?)
@pmh1d15 OSC is an IP network protocol. You will need Ethernet or Wi-Fi on the Teensy to "talk" OSC...... unless it is possible to get the Teensy to make its USB connector behave like a network port?...... maybe dangerous for future programming requirements?
At the moment it is behaving as a TTY port...... which is logical given that it is its only com port.
Either give it a network port......... https://forum.pjrc.com/threads/40238-Teensy-3-2-with-WIZ820io-and-OSC ......or convert your messages within PD from OSC to TTY data and use the USB connection.
However, looking at your OP link it seems that is exactly what is happening in "pumpsn17".
The patch [slipserial.pd] is doing the conversion to the teensy datastream.
So it is using the tty port and you should have a working system.....
Is [slipserial.pd] looking through the USB port to the pins on the Teensy...... is any voltage appearing on Teensy "S0".
More info here......
https://github.com/CNMAT/OSC
David.
Maximo (Guitar Rack) - 6 slots with 1 of 60 effects per slot (using "abs_effects_router" + an OSC controller (MobMuPlat)
Maximo (Guitar Rack) - 6 slots with 1 of 60 effects per slot (using "abs_effects_router" + an OSC controller (MobMuPlat)
The app is "maximo-help.pd".
maximo is an effects-chain giving the user 6 slots each one of which may be used to select from 1 of 60 effects (the first being "unchanged").
Check her for details about how to use the "abs_effects_router", http://forum.pdpatchrepo.info/topic/10693/abs_effects_router-60-effects-in-one-abstraction-router-from-diy2-stamp-album-my-abs/1 .
It also includes
- a "maximo/admin.pd" abstraction to control:
dsp, bypass (all), reset (to set all effects to "unchanged"), and 9 presets (0 reserved for program usage) and both save-to-file and load-from-file preset buttons
- an Open Sound Control (OSC) mapper ("maximo/osc_control.pd") for sending values (0 thru 1) to controls /cc/1 thru /cc/34 (see the patch for details).
and
- an example OSC (MobMuPlat) controller at "./maximo-osc.mmp" and "./maximo-osc-mmp.pd"
MAXIMO EXAMPLE
MOBMUPLAT INTERFACE
PAGE 1
PAGE 2
PAGE 3
All of this was contingent on the foundation and resources laid out in the DIY2 and Stamp Album collections and actually this was largely an example of persistence not any real insight and the largest percentage of the success goes to their creators for being so diligent about standardizing their abstractions.
I DO however hope you find it useful.
My GOAL was to eliminate what is often the case with effect stacks (I have seen) of having to connect all the effects. This eliminates that and makes it much cleaner: only having to select from the (tof/pmenu POPUP_LIST button) or navigate to the desired effect with the standard "first, previous, next, last" controls.
I hope you find the work useful and capable of helping you to manifest all those wonderful sounds you have in your head.
Peace and only Love,
Scott
The List of Effects per slot is:
mrpeach on Raspberry
Hi there,
Thanks for taking the time. I am getting a little bit frustrated here, so I guess it’s best to ask the community:
How do I get MrPeach to work on 0.47.1? I am using a Raspberry Pi 3 (running Linux version 4.9.20-v7+) and Pure Data 0.47.1.
I installed mrpeach using the “find externals” functionality. Of course I edited the path to “/home/pi/pd-externals” and created a “mrpeach” entry in the startup preferences.
Some background information: I want my Python code to “communicate” with pd but actually I do not care how they do this. OSC-Messages seem to be the easiest solution.
Well, seemed. I am a total beginner to pd
Help much appreciated
Daniel
By the way here is the log:
tried ./osc/routeOSC.l_arm and failed
tried ./osc/routeOSC.pd_linux and failed
tried ./osc/routeOSC/routeOSC.l_arm and failed
tried ./osc/routeOSC/routeOSC.pd_linux and failed
tried ./osc/routeOSC.pd and failed
tried ./osc/routeOSC.pat and failed
tried ./osc/routeOSC/osc/routeOSC.pd and failed
tried /home/pi/pd-externals/osc/routeOSC.l_arm and failed
tried /home/pi/pd-externals/osc/routeOSC.pd_linux and succeeded
tried ./mrpeach.l_arm and failed
tried ./mrpeach.pd_linux and failed
tried ./mrpeach/mrpeach.l_arm and failed
tried ./mrpeach/mrpeach.pd_linux and failed
tried ./mrpeach.pd and failed
tried ./mrpeach.pat and failed
tried ./mrpeach/mrpeach.pd and failed
tried /home/pi/pd-externals/mrpeach.l_arm and failed
tried /home/pi/pd-externals/mrpeach.pd_linux and failed
tried /home/pi/pd-externals/mrpeach/mrpeach.l_arm and failed
tried /home/pi/pd-externals/mrpeach/mrpeach.pd_linux and failed
tried /home/pi/pd-externals/mrpeach.pd and failed
tried /home/pi/pd-externals/mrpeach.pat and failed
tried /home/pi/pd-externals/mrpeach/mrpeach.pd and failed
mrpeach: can't load library
Parsing OSC format udp list - [SOLVED]
Youd patch used only a UDP connection, no OSC format in messages sent. Even though you typed an OSC-style address in a message, that's not an OSC format. OSC format is bytes that are not so human-readable. You need to incorporate the native OSC objects that come with vanilla, [oscformat]
and [oscparse]
.
Here's a screenshot that does what you probably want (note that the OSC address in [oscformat]
can omit the forward slashes, but since this is a standard OSC-style address, I kept them there):
TouchOSC direct USB connection finally possible with Midimux?
Hi folks,
I'm posting here on the theory (and also based on various threads I've seen here & around the internet) that I'm not the only PD user who is interested in using TouchOSC on an iPad to control PD on a Mac over a stable, wired USB connection rather than a sketchy ad-hoc network (which can suffer latency & dropouts when used in venues/areas with wifi interference, and prevents TouchOSC from being a reliable live performance interface).
Most of my searching turned up the same answer: networking over USB is not possible without jailbreaking the iOS device & installing a tethering app (I don't have the option of jailbreaking due to compatibility concerns with other apps I use professionally). I also discovered a free app called midimittr which creates a MIDI bridge with a server application on the OS X side via USB, which is great, but alas my control setup is dependent on OSC messages rather than MIDI.
Now for the (almost) exciting development: far down in search results I learned of the $7 Midimux app/server, which promises both MIDI & OSC connectivity directly via the standard Lightning=USB cable, no jailbreaking required! After buying the app, installing the server, configuring my firewall, checking port settings on all sides—I was thrilled when I was able to send OSC messages from PD to TouchOSC on the iPad! But...... no such luck in the other direction, TouchOSC cannot send to PD. I've tried a variety of port/hostname/IP settings, and fiddled with all of the OSC/UDP receive objects in PD to see if any connection is being made in the iPad->Mac direction, with no success. The MIDI part of the app seems to work just fine both ways.
I am not proficient in advanced networking, so I don't have any other methods for testing to see what the issue may be. I also realize that the problem almost certainly lies on the Midimux/TouchOSC side of things rather than with PD, but as mentioned before, I figure there must be other PD users who would be happy to learn of the potential for a wired TouchOSC interface, and it seems the possibility may be tantalizingly close. If anyone has any thoughts/experiences/suggestions on the subject, I'd be delighted to hear them.
Thanks!