Easiest way to connect a MIDI keyboard to PD-l2ORK on Ubuntu 16.04
@NoDSP Yea, you are right, actually. The a2j bridge is what enables jack patching for midi in most programs. I suppose that's an important detail that I overlooked. Once a2j is up and running, it feels like part of jack, but yea technically it is alsa. Your also right in that Ive noticed mixing internal and external patching of inputs and outputs to be problematic. I think it's some kind of permissions conflict... Like each program wants to take ownership of the patching privelages and they block eachother out. Im still looking for a way to resolve that...
@casper I was thinking a bit about it, and you might check out the jackx library of externals. There is an object in there that lets you manipulate jack patching from within PD. for instance, my sound card is a bit weird, as the main outputs read as output 3 and 4 instead of 1 and 2. When pulseaudio connects to 1 and 2 on startup, theres no sound. So each time i'd restart, I would have to manually open some patching program (I prefer carla from kxstudio,) and route everything correctly. Eventually, I made a patch that uses jack-connect from jackx to automatically route everything properly via loadbang. I made another version of it that starts, connects everything and then closes itself. I put that in my startup applications, so now every time I reboot, everything is automatically routed properly. You could make an object like that for your colleagues so when they open up pd, the midi routing is right there for them. I'll let you take a look at the patch I made to do this. (note, open pd with the -noloadbang flag or the patch will open and close all instances of pd-l2ork in 10 seconds.) also, the ports that you will be connecting will likely have different names then the ones here, so adjust them accordingly, and finally make sure the jackx externals are loaded and working properly to make this work. jackconnect.pd
I'm going to have to plead myself stumped once more I'm afraid. I really like the concept of MIDI routing without using Audio/MIDI setup, and MidiPatchbay is easy enough to use, but the patch is still not connecting as I had expected it to (somebody only barely understands the basics of computer science if claiming so isn't hubris on my part). My process is as follows:
Start MIDIPatchbay, create a single universal MIDI strip with both input and output - name "PD-Input"/"PD-Output" for reference. Allows all notes, allows all messages, clocks in real-time.
The patch itself doesn't show up in Audio/MIDI setup. That's fine, as I understand it the MIDI signal is traveling through MIDIPatchbay anyways. IAC is turned off and no software instruments are installed. I can close down Audio/MIDI setup and ignore it.
Start Mainstage, make sure that the volume is up, a patch is readied, and that Mainstage recognizes that there is a MIDI input available. Mainstage recognizes "1 MIDI input available"
Start PD-Extended and open the Sequencer patch.
Go through the process of making sure all components of the patch are functioning (it has a sequence tempo set, all the notes are active, volume is up, all the usual goodies).
Check DSP to on (I don't think it's necessary, but I tend to idiot proof my processes).
Set MIDI output from PD-Extended to "PD-Input" from MIDIPatchbay.
At this point I have all three pieces of software running, I believe in the correct order, and connected to one another with the only glitch being that I don't get a lick of audio. I'll dump the patch here for reference:
I try to keep things fairly self-explanatory in terms of sends/receives and with comments within the object arrangement, but here's hoping it's legible. If the problem is in the coding of the patch I can take it across to that section of the forum. That said, even making a simple patch to create a note with set number, velocity, and duration on manual bang and send through the midiout doesn't seem to be arriving to Mainstage. I suppose I could use one of my other programs capable of MIDI synthesis, but that seems superfluous.
I really appreciate the help, I've worked with PD less frequently over the past five years or so than when I was first learning the ropes; it always seems like I have to re-learn a few things as well as double check on my knowledge of possible objects to use... Always something new.
Pitch-shift and normalization object for Ohm-Choir/innerDialogue-exposure.
we are working on an interactive sound-installation. It is a wooden bell that opens vertically by sliding up it´s segments to make space for one person that sits down to listen to a guided meditation after the bell closes again. It´s all about the perception of one self and how it changes when one isolates from society and vision. The people will hear themselves over headphones and be instructed by a voice to make an "Ohm" and say several things that are secretly recorded and played back later in a way to expose the inner dialogue.
... using a timer*, I time-trigger recordings, playback of those, and sound-effects (reverberation, pitch-shift). In the end the participants will hear their own voice talking to them, but in two different pitches, one voice a little lower pitched talking as the inner-enemy and then a higher pitched voice commenting on this, creating a dialogue, giving the participants the chance to observe that theatre-play inside of their head.
To close the session, they will be asked to make another Ohm...and as background they will hear the recorded Ohm they made when they started plus the recorded and looped Ohms of all the participants who were under the bell before them (if possible, first one om...then the next joins and another...and then maybe fading it to three or more other Oms, before the whole choir joines the megaOm).
*! I want to modify this patch to use it´s timer, recorder and playback- features. The karaoke-text-display is not needed, cause everything will be instructed by a backgroud-voice (lostintro.wav).
To test the patch simply click on start, to open the patch right-click in the window, then open the object pd audio, where the recorders and playbk objects are hiding.
I can´t find a pitch-shift object except one in an old RjDj library called e_pitchshift.pd, but I didn´t yet managed to make it work in the patch. Any suggestions of an object that shifts the pitch by two semitones up/down? ...also I wonder how to implement this to make the workflow as easy as possible, because there will be a lot of samples. I guess it is the easiest to include it in playbk.pd, and use two different ones, one with playing back the samples with a higher pitch and one with a lower pitch. (?)
To combine and loop all recorded "ohms" into one file, i will need sth like a looper-object/patch, I am sure there are plenty out there. My biggest concern is, the different volumes of peoples voices, thats why I am wondering if there is a normalization-object?
I once found a trigger for recordings in an RjDj patch (that I can´t find anymore), that checked the db of the incoming signal and only when detecting a sound it started to record - I was wondering if I could use it to control, if people really say/sing things and if not repeat the question (or give more time to record? ...maybe substitute that even with the timer-triggered recordings?)
well, not really top priority, but I would love to make the whole patch run on a raspi. I already struggeled with the raspi for a while - who knows...maybe there is someone in Berlin who could help me to set this up during the next weeks?
I want to timetrigger a change of the reverberation of the live-signal at the beginning ...the great @whale-av helped me once to optimize this patch (lostgeneration) and deactivated the reverb (found in the down-left corner of the pd audio -object) ..unfortunately I can´t figure out how to reactivate it. Where do i have to connect the "r revtime"? right to/between the "dac~" object???
last but not least a little stupid question, but as i don´t even know the name of this "~" symbol it is hard to google. How to make the keyboardshortcut for this little ~er ? tired of having to copy paste it each time ?
Bämgreetings and thanks for any help or suggestion!
Reduce latency when tabplay~ right after tabwrite~
Hi, I'm pretty new to pd, and there is the thing:
I'm trying to create some dynamic looper that loops a recording over and over and having some trouble with latency/delay between tabwrite~ and tabplay~.
- I prepare the table in advance with dynamic resizing and naming so it will be ready to record when i tell it to.
- I have in the background some sort of metronome patch (for tempo) that bangs to the track patch when to start the recording (the "track" patch is ready in advance and waits to a bang to start the record), metronome still plays.
- The metronome bangs in the right time to the track patch
- I am recording with tabwrite~ the number of samples that is pre-calculated in step 1. (I am recording the beats from the metronome to hear it play back without delay)
- the tabwrite~ ends the recording when the number of samples are all full and bangs right away to tabplay~.
here is the problem. when it plays the recording it can be noticed that there is a delay between the record playback and the metronome patch that ticks. this delay stays with the same margin over the loop.
I want to know how you handle this issue? or what can be the issue?
what cam to my mind is few options:
- start playing tabplay~ before (with offset of the latency) tabwrite~ finishes (is it even possible?)
- hang (make some delay) the metronome patch with the latency offset (seems like not right thing to do)
- I read about something with buffers that must be divided by 64 samples to be precise, do you have any information about it?
I can provide my patchs but they are a little bit messy because I use them in IOS application.
thanks so much!
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.
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:
22.214.171.124.in-addr.arpa - - [16/Dec/2016 14:39:07] "GET /index.html HTTP/1.1" 200 -
126.96.36.199.in-addr.arpa - - [16/Dec/2016 14:39:08] "GET /js/jquery.js HTTP/1.1" 200 -
188.8.131.52.in-addr.arpa - - [16/Dec/2016 14:39:08] "GET /js/webpd-latest.min.js HTTP/1.1" 200 -
184.108.40.206.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!