-
Pspiroz
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 myFreq]
|
{osc~ ]
|
| . . . . . . [r myVo]
| . . . . . /
[*~ 0.5]
|
[dac~]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...?
PSpiroz -
Pspiroz
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)...* -
Pspiroz
Hi Magicolo!
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) -
Pspiroz
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? -
Pspiroz
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 ? -
Pspiroz
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 (
|
soundfilerand 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.The questions:
- 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)
-
Pspiroz
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.
Or
...It doesn't matter the cpu how these connections happening (or little difference between the choices)...? -
Pspiroz
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 * * *... (
object.
Is this too much? Is there a simpler way to do this? -
Pspiroz
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
.................etc.
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.
Any suggestions...? -
Pspiroz
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..? -
Pspiroz
This is a patch that i want to use it as an lfo. It is doubled because i want to save the array to a 256 block size array [pd lfo] (right up), in order to send it to processing.
I also want the oscillators to produce prices between -1 ~ 1 (in max amplitube (lofAmount == 1). I also pictured them one by one at the down right pic.
So far so good. My problem is that iventually , and although it looks fine to me, it doesn't produces prices between -1~1 but depending on the lfo amount, it produces whatever. Ex. the lfo if lfoAmount == 0, is the line y=0 (straigth line) (expected) but if lfoAmount == 0.5 it shows prices 0.5 ~ 1 and if lfoAmount == 1 then it produces prices >1.
What do i do wrong?
Also, whatever i write, must be written with pd vanilla and only with pd patches - based library (not c - based abstractions). -
Pspiroz
Which of these is the right way to get an lfo on frequency?
How much the lfo's amount range and frequency?
Should I add [+~ ] or multiply [*~ ] lfo's frequency to osc's frequency value? Or I have to unsig~ it first and then add or multiply it?[osc's freq\
|
| [lfo's frequency\ == 0~20 Hz ....?
| |
| [osc~ ]
| |
| |
| | [lfo amount\ == range value.....?
| | / . .
| | / . | |
| [*~ ] .' [unsig~ ] [unsig~ ]
| / / / /
| / / / /
[+~ ] ..... or .....[*~ ]....... or ........[+ ] ............... or ........- .........................?
| | | |
[osc~ ] ' ' '
|
[*~ 0.5]
|\
| \
| \
[dac~]
- .........................?
-
Pspiroz
Is there a way of writing multiple samples in an array or a table, so the "reading~" of the array will "output~" both sound files?
I want to optional write from 1 to 8 samples from wav. files to a single array/ table ?
Is this posible?, because all i have tried so far, the one sample file always overWrite the previous. -
Pspiroz
Hello,
The quest is to transfer the audio signal to processing (or later to another program) which is running to another pc.
My thought is turn signal 's blocks to arrays or lists and transfer them via OSC with [sendtyped/ f**...(I can see the block with [print~] and all blocks with sth like this:
[osc~ ]
|
| [bang~]
| /
| /
|/
[print~]but how do i turn blocks into arrays or lists?
Also any other thought about how to accomplish my task will be great to hear them. My purpose is to produce the waveform in processing of any complex sound i produce in Pd, and play with it in processing.
-
Pspiroz
The question is:
Can i somehow find / count how many pixels, in a certain dimensions gem window, pd uses to complete a cycle of a given frequency wave?
or
How many gem units a certain frequency needs to complete one circle?
(relationship between gem units or pixels and wavelength of a frequency)
Here is the problem:
I want to draw a wave in gem, and i do it by using the [gems.curve.n] object. But i want to be able to adjust the graph for as many periods i want, so it looks sorter or longer. I can manage this by repeating the [gems.curve.n] .[gemhead]
|
[repeat X]
|
[translateXYZ 1 0 0]
|
[gems.curve.n]but if i do this, i just repeat the rendering area ("box") in where the wave is being rendered, so every new box begins the wave of a standard phase but it ends at an unknown phase depending on the frequency.T
he visual outcome of this, is not a constant line as wanted but many same lines repeated on a row with gaps among them.This can be faced by calculating its frequency 's wavelength in the gem window.
This way i can calculate how long is a simple circle of the wave and repeat it every that quantity of space at the X axis:[gemhead]
|
[repeat X]
|
[translateXYZ "waveLength" 0 0] //** wavelength in gem units
|
[gems.curve.n]so every new repetition starts at the same phase the previous ended and the visual outcome is a constant line.
Has anybody any idea of how do i do this? (or any other solution to this problem..)
-
Pspiroz
My question is simple, if i have a 5.1 speaker system on my pc (and supported by the motherboard / soundcart off course), can i direct from pd what to send to each speaker & subwoofer separately ?
(ps1/ I 'm asking cause i don 't have and cannot try it)
(ps2/ A "Yes" or "No" answer is ok, just to know) -
Pspiroz
Here is the question:
How do we connect 2 pc 's running pure data, so they can exchange data realtime (ex. one sending arrays to other, and the other translate then to sound and sending it back),
first in a home lan,
and second over the internet? -
Pspiroz
If anyone knows what to do step by step to install these things?
Because i have installed Xcode in my mac. And i don't know how to compile the flext build file in order to get started.
Extra info: pd so far does not read py and pyext library even though they are in the library but i suppose its because of all the aforementioned reasons.EG./ Also my knowledge is more in simple c , java and little openGl so i am familiar with terms but not with hard programming, but i hope i ll come through..
-
Pspiroz
I want to make a patch that sets the elements (unique floats actually) of a list in accelarating order.
I have written this loop in fake-pd-code, where "i" and "k" are list's indeces.
What actually does is to take all elements, one by one ( from index=0 until the last element (index=-1)) and compare it with the rest af the lists' elements. As long as our ellement is bigger than the one is been compared with, we compare it with the next element of the list.
As soon as it finds itself or bigger float in its quest, then we put it before that float,
delete it from the previus position that is allways its index pos+1
exit "quest"
and
do the same seartch for the next ellement of the list.
So here it is:.----------->For(i=0, until i==list lenght)
| -------> do {
| | for (k=0, until do-is-exit)
| | do {
| | if (list-idx(i) > list-idx(k)) {
| | k++;
| | }
| | else {
| | list-insert(in pos -> k)=list-idx(i);
| | list-delete(pos -> i+1);
| <------------------------- exit do;
|
.<--------------------------------------- i++;
I use [list-idx], [list-insert], [list-delete] & Has someone have any idea how to do it, because so far i only get stack overflows from everywhere,
or any other idea of how we order a list of floats.EG/, Actually i want to order a list of pairs where we compare the second element of every pair and order it:
ex. list [2 2.5 3 7.8 8 1.1 4 4.2 1 2] --> [8 1.1 1 2 4 2.2 2 2.5 3 7.8] (ordered by 1.1 2 2.2 2.5 7.8 )