\[zerox~\]
If you plan on using [xerox~] to phase sync two oscillators, it probably won't cut it. Generally, you want those things to be sample accurate. [xerox~] will give you a click corresponding to zero crossings out its right outlet, but, as far as I know at least, Pd's oscillators can't really use that for phase syncing ([xerox~] is actually based on a Max object, yet strangely Max's oscillators can't use it either). It would require a conversion to message rate to reset the phase, which kills sample accuracy, not to mention the fact that the phase input of [phasor~] quantizes to block boundaries (default 64 samples in Pd), which also kills sample accuracy.
However, if you know the ratio between your two oscillators, phase syncing can be achieved using a master [phasor~] to run both oscillators. Use the master sync frequency to drive the [phasor~], then multiply the output of the [phasor~] by the ratio between the synced (slave) oscillator and the master one. In other words, it should be multiplied by:
slave frequency / master frequency
Then, you just [wrap~] the signal and viola, you have a new synced phasor signal to drive the slave oscillator. The attached patch should hopefully clarify.
How to populate 1 array with 4 incomming number streams
Hi all,
This should be the easiest thing in the world, but I cant for the life of me figure it out.
I need to populate an array with input from four different number streams were the order of appearence of numbers in the stream puts them into an queue to bang messages from 0,1,2 etc.
A brief explanation
I presume is pretty
easy when you know how, but A brief explanation of the project might be in order
The idea is to back project onto a series of screens and give people
IR LED "paintbrushes" so they can paint with procedural graphics and
sound.
We're using "touchlib" blob tracking software (and webcams)to
differentiate between the blobs. the software assigns each blob a
numbered ID for the length of its lifetime, based on the order in
which they come into existence : so the first blob in existence is "ID
0" (until it dies, when it takes its pace in the queue), the second
is "ID 1" etc.
These IDs allow us to assign specific graphics to different blobs in
Processing, and also to give each an individual piece of audio.
Its easy with just one machine sending these messages as each ID
corresponds nicely to the order of tracks to be triggered in the
sequencer,
but we're using four separate modular machines each running touchlib
and we want the sound to be global.
We have networked the machines and each of the four graphics modules
can talk to the machine running the sound. The sound module is running
PD which receives messages from the other machines and then sends MIDI
messages to the sequencer. So PD is getting four streams of numbers -say from zero to three- which correspond to the order in which touchlib blob IDs pop into existence - (each stream local to its own machine)
these numbers trigger a fade in/out of a
mixer track in say for example Reason). Ideally the first person who enters the space will
trigger some pad sounds (fader 1 in reason say) regardless of which
screen they paint on.
that way it will work if there is only one person in the space. The
next person would trigger some percussion, and the full track would
build naturally. The alternative is to have every ID locked to a
sound, meaning it would really only work for four people in the space.
So to the question. There are 4 data streams coming into PD, literally
numbers 0 - 3 in each number box. as you can see in the
"four_machine_dilemma"patch attached.
what I need to do is fix it so that if (and only if) computer A has
sent a message triggering track 1 that computer B, or the next stream,
when it sends its own "ID number 1" is converted to ID number 2 , that
is, it occupies the next position in the global array, triggering
track two (because track 1 is occupied) even though it thinks it is
"ID number 1", and so on down the chain.
is there some way to store a boolean for the track's on state and use
it to reassign a value to the next incoming message?
Or just to fill positions in an array with the incoming messages in
the order they are received. It seems like it it should be
straight-forward but I'll be buggered blind if I can figure it out.
Hope this is not to long winded for a simple question.
Thanks in advance,
wadeorz
Unicode
has anyone had any success utilizing unicode characters in pd? Specifically, I want to use the chess pieces:
var K = '\u265a'
var Q = '\u265b'
var R = '\u265c'
var B = '\u265d'
var N = '\u265e'
var P = '\u265f'
var MT = '\u00a0'
but of course, the '\' is dropped- so any ideas?
Neural network in PD
The hyperlink still work for me ...
Here is the general info page :
[url=http://www.la-kitchen.fr/augmented_mapping.html
]http://www.la-kitchen.fr/augmented_mapping.html
Papers listening :
"Augmented Mapping: Towards an intelligent user-defined gesture mapping"
Arshia Cont, Thierry Coduys and Cyrille Henry.
Sound and Music Computing 2004 (SMC04), IRCAM - Centre George Pompidou, Paris, France.
The file :
[url=http://filebox.vt.edu/users/acont/html/SMC_Article.pdf
]http://filebox.vt.edu/users/acont/html/SMC_Article.pdf
"Real-time gesture mapping in Pd environment using Neural Networks"
Arshia Cont, Thierry Coduys and Cyrille Henry.
New Interfaces for Musical Expressions 2004 (NIME04), SUAC, Hamamatsu, Japan.
The file :
[url=http://filebox.vt.edu/users/acont/html/LaKitchen_NIME04.pdf
]http://filebox.vt.edu/users/acont/html/LaKitchen_NIME04.pdf
And some pd abstraction :
[url=http://www.la-kitchen.fr/NNgesture.zip
]http://www.la-kitchen.fr/NNgesture.zip
Everything is working fine for my part, even the pdf files.