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.
abs_sequences_by_formula: Sequences by Formula Abstraction, ex. Collatz
abs_sequences_by_formula: Sequences by Formula Abstraction, ex. Collatz
Really I was just curious to see if I could do this.
As to practical purpose: unknown (tho I Do think it's cool to stack sequences with a function router and might come in handy for those folks pursuing Sequencers)
The abstraction has one inlet which takes a list and sets all the values on the gui.
One example is given in the list, which sets the abstraction to run the Collatz sequence starting at 11, and decrementing the seed when it reaches 1 until the seed value reaches 1.
The sequences are calculated by passing values thru either a left or right sequence of three operators which are either +,-,*,/,sin,cos,tan,log,exp, or pow depending on whether the current N is (depending on the splitter) mod=0,!=0 or =0,!=0 and increments the seed value if N exceeds either of the set min or max values.
seed-num: sets the initial value of the sequence;
minN: if the calculate N is <= it the next seed is sent;
maxN: same as minN but >=;
incr: the number to increment the seed value when minN or maxN are exceeded;
mod|==: when to split the sequence: if the mod==0 or !=0 OR == or != this value;
operX1-3 (on both sides): is an abstraction ("abs_function_router.pd") with the following 3 inlets (from left to right): N, a constant, and an index. It then takes N and chooses depending on the index to either: +,-,*,/,sin,cos,tan,log,exp,pow the value with the cold inlets of those functions (where available) set to the constant value;
If mod|== is reached it sends it to the left set of functions in all other cases it sends it to the right set of functions.
met: sets the metro (i.e. how fast the N's are calculated) (log 10 to 1000 milliseconds).
My intention here was to make a tool available which might allow us as pd users to show non-pd users what we mean when we say "Mathematics is 'Musical'".
Have fun. Let me know if you need any help.
Context sequencer v3.0.1
Dear PD community
I am happy to announce the beta release of Context, a powerful new sequencer for PD. Context is a modular sequencer that re-imagines musical compositions as a networks. It combines traditional step sequencing and timeline playback with non-linear and algorithmic paradigms, all in a small but advanced GUI.
Unlike most other sequencing software, Context is not an environment. It is a single abstraction which may be replicated and interconnected to create an environment in the form of a network. There are literally endless possibilities in creating Context networks, and the user has a great deal of control over how their composition will function.
From a technical perspective, Context features a lot of things that you don't often see in PD, such as click + drag canvas resizing, dynamic menus, embeddable timelines, and fully automatic state saving. It also boasts its own language, parsed entirely within PD.
Context is work in progress--there are still lots of bugs in the software and lots of holes in the documentation. However, I have gotten it to a place where I feel it is coherent enough for others to use it, and where it would benefit from wider feedback. I am especially looking for people who can help me with proof reading and bug tracking. Please let me know if you want to join the team! Even if you can't commit to much, pointing out typos or bits of the documentation that are confusing will be very helpful to me.
Some notes on the documentation: I have been putting 90% of my efforts recently into writing the manual, and only 9% into writing the .pd help files (the remaining 1% being sleep). The help files are pretty, but the information in them is not very useful. This will be corrected as soon as I have more time and better perspective. In the mean time, please don't be put off by the confusing help files, and treat the manual as the main resource.
Context is available now at https://github.com/LGoodacre/context-sequencer.
A few other links:
The debut performance of Context at PDCon16~:
An explanation of this performance: http://newblankets.org/liam_context/context-patch.webm
A small demo video:
My paper from PDCon16~: https://contextsequencer.files.wordpress.com/2016/11/goodacre-context.pdf
Finally, I should say that this project has been my blood sweat and tears for the past 18 months, and it would mean a great deal to me to see other people using it. Please share your patches with me! And also share your questions--I will always be happy to respond.
Context only works on PD Vanilla 0.47, and it needs the following externals:
iemguts (v 0.2.1 or later)
Hopefully one day it will work on L2Ork and Purr Data, but not yet.
I would like to thank the PD community for their support and inspiration, in particular Joe Deken and the organizers of PDCon16.
# in canvas label
I guess # is a special character in Pd. If you open a Pd patch in a text editor, you'll see that all lines begin with #. I tried what you describe (I just set the name "test#" through canvas' properties, didn't send a symbol to it) and it's true indeed. I did save a test patch and then edited it in nano (terminal based text editor) like this:
#N canvas 343 280 450 300 10; #X obj 107 93 cnv 15 100 60 empty empty test\# 20 12 0 14 -233017 -66577 0;
Notice that I put a "" before # which is an escape character for special characters. Now, when I open the patch, the canvas reads "test#".
I tried to simulate this in a patch by sending the message "list 92 70 35" to [list tosymbol] (these values are ASCII "", "F", and "#") and then to a message "set label $1", which is sent to an empty message, but this results in "\F#", and when sent to a canvas, it results in "\F$".
I think # (and ) is out of the question for use inside Pd patches, but if someone can prove me wrong, I'd be happy to see that.
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.
GEM couldn't create... errors
I've used PD for audio for years, but this is the first time I've tried to use Gem. This is a new Windows 10 machine, as far as I can tell I've installed PD itself OK - I'm having no problems with any audio patches.
However - I've tried to use Gem it's not working - giving me gemwin ... couldn't create errors:
I've added the library to startup as per the Gem Readme, I've reinstalled both PD and Gem, and I've tried following all the help other people have had with this - but no luck.
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?