-
Maks
@caska This is helpful, thank you. Is there any way to seed the entire patch? I use a lot of random objects, so I'm guessing would have to seed every single one in the patch.
-
Maks
Hi everybody – so sorry for the multiple month delay. I got sidetracked in life and totally lost track of time.
Something I didn't previously note is that this issue is the same across the board with all of my other generative MIDI patches. The configuration of pitches changed for all of them. I thought it was this specific project, but that does not seem to be the case whatsoever. I'm beginning to wonder whether this is a computer-specific issue. I have the MacBook with the M1 chip. Could that be at play?
Also, I have tried to go back in Pd versions, and that did not fix anything.
My conclusion is twofold:
-
Next time, purposefully set up a random seed (how do I do that by the way?) so that my patch can be reproducible.
-
Embrace the randomness. My patch is meant to be generative MIDI music, so technically, I'm being anal retentive in trying to preserve this particular configuration. The whole point is that it's supposed to be random, I just fell in love with a certain configuration, which is ironic.
Thank you all for your help. All the help you've offered is beyond the scope of my knowledge, so I appreciate you all having a go at it.
-
-
Maks
Hi all, thanks for your responses.
I probably /should/ have generated a seed just for this patch so that I'm able to recall it again and again. I'm using random messages to create random note on/off messages + setting up parameters to alter note velocity. Otherwise, I'm not doing anything unique whatsoever – just good old "random" objects.
My process has been that I open up Pure Data and my VST of choice, then have the notes output right into the VST, producing sound. I'm absolutely confident I have no other patch open, as I literally quit out of Pd every time, a habit I formed because I didn't want some background patch to alter the arrangement of tones.
The patch has remained entirely unchanged for the last few months, and yet when I opened it last week, the note arrangement that was produced was entirely different. Not sure what this is about, but I suspect I lost that specific configuration somehow along the way.
-
Maks
Hello everybody,
I've made a post regarding random seed in the past, but I found that recently, it seems that the way random seed works in Pd has changed. For context, I've had a generative MIDI patch for a couple of months now, and each time I open it, I'm able to consistently get the exact same tone arrangement each time.
I don't know what happened, but when I open the exact same patch, I now get a totally different array of tones, and I'm not quite sure what happened. The patch is the same – but something changed and the tones are no longer the same. I know this is a vague issue to have without something more concrete, but I'm generally wondering whether anything did change in recent versions of Pure Data.
Does anybody know what might be going on?
-
Maks
@whale-av Thank you SO much for including this and helping me to answer my questions. I think this should certainly be useful for my project. Thank you!
-
Maks
@seb-harmonik.ar Thanks for the response! Just so I'm understanding – each time a
[random]
object is added to the patch, it modifies the seed? Is there a way to pull that number out or "save" it in a text document or something of the sort?As for #3, I just meant any Pd-specific documentation for random seed. Thanks for the Wikipedia article – I think it's WAAYY over my head though. I'll still take a peek though. Thanks!
-
Maks
Hello everyone,
I'm currently working on a generative piece of music in Pd and have a lovely array of MIDI notes. I find that every time I open the patch, I get the exact series of pitches, despite the patch's supposed "randomness." I do recall reading something about this way back when, but can't seem to find the specifics. My questions are:
- How does one set a new random seed?
- Is there a way to save a random seed? (I find that at times, when I edit the patch, it alters the random seed and I get different results. I want to be able to improve the patch while retaining the same pre-assigned note sequence.)
- Where can I learn more about the way random seed is utilized in Pd?
Apologies if I'm asking a question that's already been asked. I searched the forums but couldn't quite find the answer I am looking. Thank you for your time!
-
Maks
Hello everyone,
I am trying to figure out how to create a directional knob, and I've found that it's harder than it sounds.
Basically, I have 79 tables. The idea is that as I turn the knob to the right, it turns samples on, as I turn to the left, it turns them off.
As I've continued to ideate about it, I've realized that each number has to be assigned to a number (I am randomizing which tables play). So when I turn the knob to the right and we hit 0, it randomizes and plays sample 55. When I turn to 1, it plays sample 28, 2 is 38, and so on. However, when I turn to the left from 2 to 1, 2 turns off, When I turn from 1 to 0, 1 turns off.
I've been thinking about this for a while now and have been creating a total mess of "moses" objects and "select" objects. I can't seem to figure this out. Any ideas about this would be incredibly helpful. Thanks everyone!
-
Maks
I'm dealing with detecting monophonic signals, in this case a voice. I also want to capture the natural rhythm of human speech, record that information, and therefore have access to variable incoming speed of notes and so on. It needs to be able to detect natural speech patterns as much as possible and be able to replicate it (play it back through a speaker).
Ideally, this would be set up in a place where there might be background noise, but the patch should be able to distinguish the main melodic content from just background static.
Thanks for the recommendation regarding the window size! That is good information to know.
-
Maks
Hello everybody!
I wanted to get some advice in regards to using pitch detection using the "sigmund~" object.
Essentially, I am trying to create a system that:
- Detects incoming pitch
- Records said pitch information
- Plays back its own tune based on received pitch data (variable)
I'd like to emphasize that I am not talking about audio recording, but specific pitch in the form of midi data.
I've done some tests by playing samples into the object, and I have to say that it's pretty decent at being able to pick up the main melodies, but it is hard to have it working reliably.
Any further information or advice on pitch detection or any Pd objects/libraries I should check out would be tremendously appreciated.
Thanks everyone!
-
Maks
Hello everyone,
I'm having a major issue at the moment. I just simply don't understand how to load in libraries into pd vanilla on my mac. As a pd-extended user, I've never had to think about this, but now it has become problematic.
I downloaded 'iemlib,' (the library responsible for the 'any' object) from dekken. I have a dedicated folder on my computer for the externals, so I store it in this folder. In pd vanilla, I go to Preferences->Path and enter the path where all the externals are located.
Now, when I try to load in the 'iemlib' library, it won't let me. I've declared it as 'declare -lib _pd-externals/iemlib' and it still refuses to work. I've tried going into preferences->startup, and typing in 'iemlib,' and it still refuses. I feel like I've tried everything that I could think of and I'm out of options here. I've been banging my head against the wall for the past few hours now.
Can anybody please run me through this process? Looking at other tutorials on the forum haven't really helped.
-
Maks
My operating system is OS X. Yeah I'm using Pd Extended. Haven't switched over to Pd Vanilla, but still have the same issue if I open it in that one too.
-
-
Maks
Yeah, and the weird thing is that the "sample-#-curve' works just fine. I'm wondering if it's messing up the other one?
-
Maks
Hello everyone,
I am currently experiences issues in Pd relating to the xticks, yticks, xlabel, and ylabel. Essentially, this console window spews out all of this information as soon as I load the patch. I am not sure why it isn't working for the "space-curve" array but it works for the "sample-#-curve" array.
Console:
Actual patch which instructs to change the labels:
Outside patch that tells my two arrays to loadbang. The "sample-curve" is the one that doesn't work:
My arrays:
I still can't figure out what isn't working properly. I've check and double checked everything and so I wonder if this is some kind of a bug. It's important to note though that it looks like it actually works. This is even more confusing. Please let me know if you have any ideas!
Thank you!
-
Maks
@LiamG No worries. Simply put, I'm trying to avoid popping and clicking. In my case, it happens when the loop is randomly told to stop playing without verifying that the playback is complete. So I somehow have to find a way to make sure that looping ends only when the playback ends without knowing when the stop looping message arrives.
I've been banging my head against the wall for a while about this. I may just come back to it tomorrow. I think you have a point though that the select and float objects will probably come in handy.
-
Maks
@LiamG The thing is that the tabplay~ is looping indefinitely. If I'm looking at what you wrote correctly, that would stop the playback only after one loop. The looper needs to be ready to stop at any second whenever the indefinite stop bang is sent out.
-
Maks
Hello everybody,
I was wondering whether anybody knew of a good way to hold off a bang until the right conditions have been met.
It's kind of hard to explain, but essentially I have a looping patch. The loop repeats over and over again until a random parameter tells it to stop looping. The problem? The bang that stops the loop doesn't consider where it is stopping in the sample. So I have a tablplay~ that is looping, and suddenly it stops and pops/clicks right in the middle of it. The goal is to create a kind of check that only sends a bang when the sample is done playing.
When a bang is sent at the end of the tabplay~, check whether the spigot object has been opened. If it has, pass through the bang, and stop the playback. If not, WAIT until it has opened, and THEN pass it through. Does anybody have a good idea of doing this?
This is a simplified version of the looper subpatch. Notice a couple of things.
- Select objects sends a 1 which starts the loop
- The delay object delays the bang from the end of the tabplay to start the loop all over again (it increases over time actually)
- Select object sends a 0 (at some random point (we don't know when)) but the bang will go through only when the spigot is open. So the sample needs to have stopped playing when this happens.
The tricky part about all of this is that the looper needs to stop IN BETWEEN the start of the next loop, and the end of the sample.
Help would be tremendously appreciated.
-
Maks
Hello everyone,
I am trying to find a way around making a bunch of "read -resize" messages and instead just make one where it reads 130 separate files (which by the way are all named cuts-0, cuts-1, cuts-2, etc.)
This is what that idea looks like:
Along with that, I also have 130 tables already set up, and am working on the actual tabplay~ objects that I'm going to use.
However, I keep receiving these errors and I don't completely understand why. It obviously won't recognize the "$1" in my previous message. It does however, load only the first table.
What do you guys think? Thanks again!
-
Maks
@whale-av Thanks for the great info! I'll be sure to look into it.