-
Busnoise
Hi,
What exactly do the outlets of sysexin output?
I'm trying to debug the sysex learning of my MIDI controller. I've made the controller learn a couple of sysex controls of the format f0 10 06 06 xx yy f7. When I send control changes using any of these to pd, sysexin always prints 247 in the first outlet and 2 in the second. What am I to make of that? Is there a more verbose way to read midi input? Do you have any tips to using pd for things like this?
FWIW, the controller and synth are the Behringer BCR2000 and Oberheim Matrix 6.
-
Busnoise
Hello,
I'm trying to implement my first Serious Idea in pd but I'm stumbling in the basics.
One abstraction would take a filename and a table name, load the file into the table and do stuff. So I'd like to send the soundfiler inside the abstraction this message:
"read -resize $1 $2"
But how do I pack that into a message? I can't make a "pack symbol symbol symbol symbol" with four message parameters "symbol read", "symbol -resize", "symbol $1" and "symbol $2", because (if I understand right) in a message $1 is a list index, not the first abstraction input parameter.
-
Busnoise
Thanks! I eventually found the problem — the synth has to be in 'patch edit' mode to accept parameter changes from outside, and both the knob board and now pd are sending working sysex strings. The original question of what [sysexin] is good for does remain, in case anyone has the straight dope on it.
JSynthLib fortunately has an ostensibly complete patch editing support for the Matrix 6 and 1000 so there's no immediately apparent reason to have to do it all over.
-
Busnoise
Oops, miscalculation. Divide and multiply by 256, not 512. 512 would give you 7 bits of resolution.
-
Busnoise
Take a 16-bit signal, divide by 512, multiply by 512 -> only 8 bits of resolution preserved, right? (analogously to shrinking and re-enlarging a pixel image)
-
Busnoise
I had the same problem. I duct-taped it by opening the configuration file in a text editor, removing the "AST_EXT_LIB_CHECK(whatever)" lines (there were four or five of them in a row, IIRC) and re-running configure.
-
-
Busnoise
I have a closely related problem with passing symbol parameters. The attached zip file contains a minimal example.
The soundfiler object in the abstraction should get the message "read -resize ../samples/20.wav testtable" when I hit the bang in the main patch.
The first time I hit the bang, the constructed message is "read -resize symbol", causing an error.
On the second bang the soundfiler gets the message "read -resize ../samples/20.wav", and causes another error.
It's only on the third bang that the object gets the correct instruction string and loads the wave file into the table.
What am I doing wrong here?
-
-
Busnoise
This is paratest2.pd:
[inlet]
|
[read -resize $1 $2(
|
[print]When I instantiate that with
[O]
|
[paratest2 foo bar]the printout is "read -resize 0 0".
This is paratest.pd:
[inlet]
| \ \ \
[symbol read] [symbol -resize] [symbol $1] [symbol $2]
| / / /
[pack symbol symbol symbol symbol]
|
[print]This version works, now that I realized that there's a 'symbol' object. Problem solved for now.