Polyphonic voice management using \[poly\]
@Fauveboy Whatever works for you. The more advanced approach is to put $0 to every send, receive, array, text and struct object so every patch and abstraction is always separated and will never interfere when you for example open the same patch twice. So with this approach everything is separated, because you use the $0 of each abstraction inside the abstraction, which is great.
But than how can the abstraction communicate with the main patch? The solution is to give the $0 via creation argument down to the abstraction. Than inside the abstraction you know the $0 of the abstraction and the $0 of the main patch.
For example when you have an array in the main patch which has $0 in its name, you can not access it from within the abstraction because $0 of the main patch is unknown. But you can give the $0 of the main patch as creation argument to the abstraction, so now you can access the array via $1 (if its the first argument) and everything is perfect.
Here is an example: dollar-zero.zip
Permutations, second part, can anybody get this patch to work?
@Ale-H.H. Hello........ sorry, I was very tired and ill and panicked, being in too much of a rush...... and I forgot to include [part_timbre] and [part_voice] in the zip. Here it is again....... NEW3.zip
Yes the main patch is 1_vod_5.pd
[pd gubbins] is a "sub-patch". It is part of 1_vod_5 and saved as part of it. It is like a window onto another room within 1_vod_5 that can be closed (hiding the contents) giving you more space to use on the main page. You will see that it does not exist on it's own..... there is no "gubbins.pd" in the folder.
If your main patch window fills up with too much stuff you could make another sub-patch. Put an object [pd whatever] and you will see a new window pop up. Cut and paste some stuff from the main patch window that you rarely want to look at into the new window..... close it..... and save the main patch. The "stuff" is still there and will behave as before (it is in the same patch) but is "hidden" unless you choose to open the window.
[voice_gen1] and [voice_gen2] (( and [voice_gen3] etc. if you need more voices)) are abstractions BUT they have to be kept separate, by having different names, because of the graph data that they contain.
Yes..... if they had the same name they would be true abstractions. But if you saved one the others (copies) would change, and you would always have the same graphs in every copy.
[part_voice] and [part_timbre] are true abstractions. Every copy is identical in every way...... but.... when you give the copies different arguments they will receive from different places, set their frequencies and volumes in different ways, and send their output to different places....... all controlled by those arguments.... $1, $2 etc.
Several PD-Windows --> How to bring one to the front?
I am working on a modular project, - different GUIs for different tasks, those I want to use live on stage.
Think several interfaces.
Now I want to be able to switch between them dynamically without having to use the menubar or the OS.
I already found how to open and close pd-files within a patch:
but I don't want audio-dropouts due loading a new patch.
(This I can achieve by separating the GUIs from the audio-processing and keeping this running in the background)
And the closing-thing seems to be unstable here, sometimes it works and other times pd crashes, I don't know why ...
Is there a way to switch between opened windows within pd?
Can I address the "Windows"-Menu from the inside of a patch, to bring a window to the front?
PDL2-Ork Ubuntu here.
Pd-extended to Vanilla migrations issues. Gui freeze, console errors, etc.
I migrated from Pd Extended to Vanilla (0.47-1) a few days ago. I've tried to familiarize myself with the handling of externals and the Deken manager, which seems to slowly become more understandable the more I work with it.
But today I've run into some odd issues I never experienced with Pd-extended.
– First of all, the console is a mess of "tried to load, failed" and "tried to load, succeeded" at every start up, which is understandable, but I can't seem to figure out what to take from it. Sometimes I get both the "failed" and "succeeded" version of a message one after the other, regarding the same library/external. Sometimes it will claim to have failed trying to load a given external, but I can call up the objects just fine without having to [declare] or use the [name/*object] initialization.
I would assume that I have made too much of a mess trying to add the paths to "path" and "start up". So I guess it's trying to look for certain things in subfolders where it's not? The issue is that everything seems to load up correctly, but I still get a ton of misleading console messages.
– This one is odd. After having loaded up Pd and scrolling up through the console's many, many messages, I will get to the "credits" message of the zexy external, but it will lag and freeze for a moment before reaching it, sometimes multiple times before allowing me to scroll by it smoothly.
– I tried to continue work on a patch, a 4 channel random sample player. The gui elements will sometimes freeze after pressing play and running everything, which renders all gui elements unresponsive, though I can still operate the patch, but just with no update. From here on out I can't close any patches or windows, nor can I go into patch mode, I simply have to close down Pd and open it again.
I understand that many gui elements can be taxing, but I really haven't got a lot of them going on. I have worked on patches far more graphically taxing in Pd-extended without any problems what so ever. In fact, I've never had any issues like this with Pd-extended.
There is some [metro] objects banging at 100 ms intervals to update the 4 individual audio arrays, but stopping those didn't seem to help a whole lot.
Everytime a sample has ended, it will bang and choose a new sample for immediate playback, sometimes the whole patch system seemed to stop, seemingly as if not being able to handle the stream of information. Again, no issues in Pd-extended.
I hope you'll be willing to help me out here. I suspect that the first order of business is to clean up the "path" and "startup" menus to clear up the system, but I'm unsure about how I would go about that.
Playing sound files based on numbers/sets of numbers?
@whale-av Hello, first I just want to say thank you very much for your help and sorry for not replying sooner, I read all the messages, I just didn't want to bother people before I had an actual issue or a question that I understood enough to know how to ask what to do next. So that's why I'm only replying now. And you're totally right, I have suffered and learned in the past day so my brain's kind of all over the place right now, I'm still struggling to get the hang of this and really understand the patches you sent me (thank you so much for taking the time to make them for me!).
To answer your questions, I will not be assessed for this part of the project, it doesn't matter much how I do it as long as it works because no one will look at the project anyway, the end result is what matters in this case. The only "limitation" is that it has to be done in Pd. Also, my version of Pd is Vanilla (I'm assuming that doesn't change your patch much since you said it'd work in that version), and actually no, there's not really a next stage to this project; all I'm supposed to do is get my sound files to play in a loop when I press Enter (after I've typed all my numbers) and to be able to stop the loop again with Enter. I probably should have mentioned that oops, does that mean I need another keyup object or would the one in the patch work for both starting and stopping the sound?
I actually had a patch of my own but it was very simple and mostly improvised based on what I managed to learn (like I said, completely new to this) and nothing like yours so it probably wouldn't have worked anyway... Is it ok if I use your patch as a starting point? If it is, I'm assuming the next step would be the abstractions. From what I understand, abstractions are used for referencing and reusing old patches in order to keep the new patch clean and not messy. I do need something like that, as I have 17 wav files ready to use. But not all 17 should be used in one loop. I actually only need 5 sound files per loop (like in your patch), but the total number of files I can choose from is 17. To be able to tell the program which file to play based on its corresponding number I probably need the select object, right? Would I need it within the calling patch or the patch being called, a.k.a. abstraction (if my thinking is right, it's probably the calling patch)? There's probably an easier way to do this than an x number of select objects but I'm just not familiar enough with the program, sorry... Also, what difference does it make if it's not 1-digit numbers, but 2-digit, 3-digit and 4-digit combinations? To be more precise, the first, second and fourth sound file should correspond to a 2-digit number, the third to a 3-digit number, and the fifth to a 4-digit number (and I can't change this unfortunately, it's part of the task).
Oh, and is there a way I can make this work on any computer, for example if I copy my files onto a flash drive? Or if I can't, would it drastically affect my main patch if I changed the sound file destinations later, once I know what computer is going to be doing all this? Would I need to change the file destinations in all the patches or would it be possible to do so automatically via abstractions, by changing them in the main patch only (probably not but eh I asked...)?
This is all probably waaay too advanced for a beginner (and I have no idea why they'd give me this task without any prior preparation.......) so I realize I might be asking for too much here, and maybe I'm getting ahead of myself, but I still hope you could give some advice on what to do from here, what's the next step, the elements I need to get this done etc. I'm not in too much hurry, I have time until the 5th of February, so it's ok if you don't have the time for me right now, I can wait a bit!
Thank you so so so much, even just sending me the first patch was such a huge help, thank you! And I hope you can guide me through this for a bit longer!
getting started with webPd
Hi all. I'm having trouble testing Pd patches via webPd as instructed in this step-by-step guide .
I've made a patch (using only the available objects) that includes a synth and a "dsp 1" message so that when the patch is loaded a middle C should start sounding. I included this patch in a folder with webPd.js and jquery.js libraries, and followed the example for the index.html file. To mock same origin policy, I used python through the terminal to enable a web server using the "python -m SimpleHTTPServer" command line, and got the following on the terminal:
Serving HTTP on 0.0.0.0 port 8000 ...
Which seems fine, however, whenever I access the link http://localhost:8000/index.html, I got no sound at all despite the fact everything seems ok in the terminal:
18.104.22.168.in-addr.arpa - - [16/Dec/2016 14:39:07] "GET /index.html HTTP/1.1" 200 -
22.214.171.124.in-addr.arpa - - [16/Dec/2016 14:39:08] "GET /js/jquery.js HTTP/1.1" 200 -
126.96.36.199.in-addr.arpa - - [16/Dec/2016 14:39:08] "GET /js/webpd-latest.min.js HTTP/1.1" 200 -
188.8.131.52.in-addr.arpa - - [16/Dec/2016 14:39:08] "GET /patches/myPatch.pd HTTP/1.1" 200 -
I tried as well running things locally in Firefox by changing the "security.fileuri.strict_origin_policy" to false. I'm using Firefix 48.0.2.
I wonder if I'm missing something very obvious but I've checked the index.html and it includes the Pd.start(), and so the patch should start sounding when the url is loaded (shouldn't it?). Also, I think the problem lives in the way I'm avoiding the same origin policy since b2renger webPd examples (which run online) also won't run locally on my machine.
Any hints on what I'm doing wrong? Here's my patch myProject.zip
Psychedellic Audioguide using MobMuPlat or PdParty
I make psychedelic audioadventures, guiding multiple, synchronized people with headphones into wonderlandish stories. Sometimes leading them to crazy places that I acoustically augment with soundtracks and binaural stereorecordings from the exact places where people walk bye to create pré- and déjà-vu-ish time-flashs (iE you hear the door infront of you and the white, invisible rabbit tells you that you are too late - so you open the door, hear/feel the exact sound again...and again…). Using synchronized instructions I puppeteer multiple participants into interactions.
I used to manually synch multiple mp3-players but also worked with free gps-audioguide software. Also I have a little yet not perfect web-app-flasmobgenerator to synchronize up to an infinite amount of players with individual audio streams.
One of my biggest inspirations was the RjDj-app that was released at the beginning of the iTimes but sadly shortly after taken from the app store - and now after all this years I finally discovered the Mobmuplat and PdParty-apps and the possibility to not only play the old RjDj-scenes but also to modify them …so I decided to learn some PD! ..which is really not easy at the very beginning, but it literally opens worlds and my brain is working hard to understand all this amazing scenes and different patches out there…
First I really want to thank you from my heart for all this amazing and inspiring works - especially for sharing it! This makes me so very happy and I feel this is really the way it should be (well, a little easier maybe)!
2nd I want to apologize for my questions - i feel still so stupid PD-wise…but:
I am trying to learn how to port a PD-patch to MobMuPlat or PdParty.
Mainly I try to trigger recordings, playbacks and live-effects by a clock.
Today I managed to write a patch that records two samples (A and and to plays them back later in a different order (BA).
I found a way to let the sec counter trigger a bang to the recordings/playbacks but I still don´t know how I could add the minutes into that trigger (iE record at 3m14s for 10s)?
In one of the tutorials I´ve heard that there are different ways to record sound: one to memory and one to disk and that a disk recording might stop audio playbacks?
How could I timetrigger live-effects - iE at 4m33s the reverb for the mic-in slowly gets bigger for 1min and then fades back to normal // or the same with a delay // or with a voicepitch rising or falling // or with the volume of the unfiltered live-monitoring (adc~ -> day~) or the volume of the audiofile that plays back simultaneously ->
Is there any way to play back an mp3/or Ogg-file with PdParty or MobMuPlat? I found some unofficial patches that seem to be able to let PD stream shoutcast/or icecast mp3-streams and also sth related to ogg(unofficial), but I don´t really understand if it is possible - and HOW? And on MubMuPlat/PdParty?? It´s just that I can´t put an 1hr wav-file onto peoples iThing.
I found a LANdini tutorial patch and an Ableton-link-patch and now I am wondering if i could somehow synch multiple phones at the same time to play back different audio files at each device while applying 1. /2. and 3. …and if it is maybe even somehow possible to do that via web?!
I am a bit confused about using PD-extended or unofficial or 0.47xyz(vanilla?) …Which one is better to use for the MobMuplat/PdParty development? PdParty seems to name several objects differently, which doesn’t´t allow me to run/test the scenes on my Mac - is there any editor or sth like->
I found an old app from the RjDj development: RJC-1000, but I can´t make it work. Anyone managed to use this app? It seems so much easier then MobMuPlat-editor(+PDwrapper) to connect the patches with a user interface. Did anyone managed to create a working MobMuPlat-interface? I couldn’t´t find any tutorials on that. Would be so great to understand that part.
I also found several scenes and patches that make use of the GPS-data and I would love to learn more about that and understand those patches to use GPS as triggers for my Audiotours. Is there anyone who could help me or maybe even make a tutorial on that?
Last but not least: when switching between apps (macSierra) with cmd+tab to PD (extended and 0.47, too) I have to do it everytime twice …drives me really mad - anyone has the same problem or any idea how to solve this ?!
Is there anyone in Berlin who I could meet to learn sth?
Thank you all for your help and if you come to Berlin one day, please let me guide you to Wonderland!
Serious Failure? Suddenly connections and abtractions were gone
@noise The sub-patches and arrays are stored inside the patch that contains them.
Abstractions are other patches that can be opened within the patch that they are "drawn" in, but have to be saved separately.
When you have a sub-patch visible and you save it you are actually saving the patch that "contains" it, and so you have to be careful (and of course when you save the patch it's sub patches are saved within it............ but the abstractions it contains are not re-saved if they have been edited.).
If connections are missing it is because the object that they connect to....... maybe an abstraction.... cannot be found, or dynamically created inlets or outlets within that abstraction have not been created, or have not been created before the lines are being drawn. Usually this happens because you have moved the abstractions somewhere outside of Pd's known path preferences, or you have zipped everything into a compressed folder.
The connection lines inside the patch are still there (e.g. #X connect 4 1 2 0;) but they cannot be drawn because the objects they connected to cannot be drawn.
So you should not need to rebuild your main patch.
You need to find out why Pd. cannot find the abstractions. Maybe it has lost it's path preferences?
libpd on mac: clarification requested on expected behavior of cpp sample
Thanks for those links Monetus. I'm pretty close with my existing setup and will first try to work with that when I have some more time. Some of the output from the samples/cpp/pdtest appears to be as expected.
However, from main.cpp
cout << endl << "BEGIN Patch Test" << endl; // open patch Patch patch = pd.openPatch("pd/test.pd", "."); cout << patch << endl; // close patch pd.closePatch(patch); cout << patch << endl; // open patch again patch = pd.openPatch(patch); cout << patch << endl; // process any received messages // // in a normal case (not a test like this), you would call this in // your application main loop pd.processFloat(1, inbuf, outbuf); pd.receiveMessages(); cout << "FINISH Patch Test" << endl;
BEGIN Patch Test Patch: "pd/test.pd" $0: 1003 valid: 1 Patch: "pd/test.pd" $0: 0 valid: 0 Patch: "pd/test.pd" $0: 1005 valid: 1 PD: PATCH OPENED: 1003 print: 0 PD: PATCH OPENED: 1005 print: 0 FINISH Patch Test
seems right but no patch was opened and if I already opened that patch before running the executable, none of the print messages (called later in the code) showed up in the console of pd. I'll focus on this and try to repost to the forum when I have a better idea of what is going on.
video playback framerate wrong
@jbvidigal Hello again......
Yes, you can load the audio ready to play...... it goes to the $0-soundfile table ready to be played from ram. The video though is played from disc, in sync with the audio. The video file cannot be "pre-loaded" as such......
I think the problem you have is that you are putting my patch (or yours probably) as a sub-patch [pd something] and so all of the $0's have the same value derived from the main patch.
You need to copy the contents of your [pd-something] into a new patch window and save that as "something.pd". Then in your main patch you retype your sub-patch objects as [something 1] for the first and [something 2] etc. (abstractions - not sub-patches) and then they will each have a different value for $0.
All that is of course a "maybe" as I have not seen your patch. Zip yours up without the media files if you still hit a brick wall, and we can all have a look and better let you know how to solve any problems.......