As I can understand, uPD enhances Unity with Pure Data engine, meaning that audio is compiled inside libpd inside Unity.
So PureData.Play(); PureData.PlayContainer(); etc are "scripts and methods" that tells libpd to play a sound, use a container (I don't know what this is but anyway) and the audio enhine is pure data. These "scripts and methods" have nothing to do with a pd patch or they control the patches that are in ../StreamingAssets/Patches.. folder. If it is the second, then I must not mesh up the "../StreamingAssets/Patches.." folder. meaning that if I delete something from that folders, some of the "scripts" (ex. PureData.Play("mplamplampla",sth, int, etc);) won't work.
Are all the above true or false?
And a second question please....:
The documentation does not explain is that, if I have my simple patch, something like
| . . . . . . [r myVo]
| . . . . . /
I must have a script with the PureData.OpenPatch(patchName) ;
Where do I place the patch is the projects file system?
More of that, what should I do in order to control the patch, sending int's, floats, messages, bangs, or receiving messages, chars, matrices and so on. Is there any documentation of the methods...?
I am aware of uPD~ and I was really amazed! I run the examples succesfully but I wasn 't able to figure out how was really working. That's why I was looking for a more step-by-step, simple way, to understand every piece of code in order to have full control and functionallity of my project.
Anyway, summer is coming, I have all the time to deconstruct uPD~ and find my steps.
Thanx for all the support (including the future one I 'll ask for)...*
Your projects are very intresting.
I lately checked out uPD, that is superd project, looking for a way to establish a simple communication between a simple pd patch and Unity.
After that, I run into LibPd4UnityTools, that looked exactly what I needed, but couldn't run it.
I loaded as a project and run / play it (the example scene) but I got error saying "all compiler errors must be fixed" to all the scripts.
I use a win 8.1 64-bit pc, and the latest version of unity (5.1.1 - 32bit)
While trying to make a pure-data synth, I have come to this problem, although I 've been using several filters.
Lets say I have an oscillator going το to a resonance / q filter.
Sometimes I get a "microphoning" (This is when sth goes wrong and you get a hissing sound with amplifying the wave's amplitude, just as you put the microphone in front of the speaker).
The solution to this problem is to change either the resonance or q (depending the filter) or changing (mostly dropping down) the cut-off frequency.
Why does this happen ?
What is the physics answer for this?
I need to know when a signal has zero frequency (0 Hz), but in pd vanilla an not extended version.
I know that this could be done by either [spigot~] or [<~] (/[>~]/ [=~]) objects, but none of them is part of pd-vanilla.
Is there a way to import them manually or can anyone think of a -very low cpu consuming- way to find out whether or not signal is 0 Hz ?
The question might be stupid,cause I am using processing with libpd. Libpd is a library that makes program languages and compilers read pd-patches.
So, I tried to make a sample based synthesizer.
To do that I used [soundfiler] to load multisamples in many arrays. For every organ I used from 12 to 20 arrays --> notes. Missing notes were created by shifting the existence arrays/notes using [e_pitchshift ] (rjdj library i think).
Anyway I used the message
[read -resize -maxsize 1e+06 note.wav arrayNote (
and i trigger the notes to play by a [select 22 23 ...midi_pitches..] to trigger [tabplay~ ] 's and inlet into select the midi pitches.
I tried to load 9 of these sets - meaning about 150 samples to 150 arrays. Its sample was about 550KB and 6 seconds.
The program was too slow. So I tried and delete all organs but one.
With one organ my program runs fine.
- Was it libpd, that couldn't handle the patch requirements or was it the patch too heavy from the beginning cause couldn't handle the samples?
- If it was the second from prev. question, I was mistaken by trying to load -too many samples? -too big samples? -both?
Or did I make wrong in this message arguments? : [read -resize -maxsize 1e+06 note.wav arrayNote (
Is there a limit in how many or how heavy samples can pd handle?
(Running in mac book snow leopard)
I am trying to run a pd set which includes many abstractions and subpatches. In order to manage space, I have used many many different [s~ $0-toSomewhere] objects in subpatches, with the [r~ $0-to Somewhere] object being in another subpatch.
Does this overload or just load a little bit more the cpu?
I f I have to choose for the less to max cpu consumption, what is the best practices:
- Use straight lines connecting inlets and outlets and abstructions in the set.
- Use [s~ $0-..] & [r~ $0..] objects in the main "page" where all abstractions are.
- Use [s~ $0-..] & [r~ $0..] objects in subpatches, where the object is in different subpatch from the [r] object.
...It doesn't matter the cpu how these connections happening (or little difference between the choices)...?
Lets say I make a sound, using many oscillators in many different ways (additively, fm, am, subtractively using filters) and forming a sound. Is there a way to save this complex waveform in an array and use it as a single waveform / sound?
I was thinking to take out the sine waveforms of the final sound via fft~ and form a waveform somehow, by using the
[; waveform sinesum * * *... (
Is this too much? Is there a simpler way to do this?
I ve been trying to figure out how i can get a simple Fourier analysis (frequency - amplitude in x-y axis) or in pairs in a matrix (ex
0 228Hz 78 --> (78/128 midi volume)
1 456Hz 67
2 912Hz 55
of complex input signal made from several oscillators and mp3 sounds.
I cannot figure out if i must use fiddle~, rfft~, or any other abstraction.
First of all, what is voice stealing (2nd argument) ?
Second. What there is to scroll, so to change the value of delay in milliseconds....(help patch)?
And the serious question. How does it work? What really happens inside it. How does it match the pairs to "reject: them afterwards?
Does it uses memory slots for pairs, as much as the polyphony voices and compares the pitches and if it is velocity ==0 it deletes it from the first memory slot or sth like that? And in what order..? Can i change the factor of velocity from 0 to another value, so to use it in other implementations far from polyphonic use..?