Hi all,
A few days into Pd I've finished a couple of small patches (see http://claudiusmaximus.tk -> Paula) and learnt a lot about how it all works, thanks to the huge set of documentation (and useful documentation at that) provided. I must express my thanks to the authors.
However I've found some issues, either with the way I'm trying to do things or with Pd itself:
The block size is set to 64 instead. Moreover:
C:>pd -version Pd version 0.37.0 compiled 14:20:00 Sep 17 2003 caught an exception; stopping
C:>pd -blocksize 1 D:/pd not using MIDI input (use 'pd -midiindev 1' to override) pd: audio buffering maxed out to 2 100 audio buffers main Pd window appears pd.exe - Application Error The instruction st 0x1004b801 referenced memory at 0x0014c000. The memory could not be written. Click on OK to terminate the program. caught an exeption; stopping pd.exe - Application Error The instruction at 0x77fc9789 referenced memory at 0xfffffff8. The memory could not be read. Click on OK to terminate the program. pd terminates C:>
I'm using Windows 2000 Professional. The hex numbers in the errors are constant, even over reboots.
I have found a workaround, using [until], [tabwrite] and [tabreceive~], but my patch would look prettier if [block~ 1] worked ;-]
error: sysexin: works under Linux only Same with [midiin] - and trying to use them just gives 240 and 2 on the left and right outlets when a sysex message arrives. I would very much like to receive sysex messages for my Novation BassStation Rack patch editor that I'm working on.
array?
Treating them as integers from 0 to 255.
|set $1( doesn't work as expected when I send it a symbol.
|;$0-name x y z( doesn't work.
Many thanks for your consideration and help,
Claude
Want to chat instantly with your online friends? Get the FREE Yahoo! Messenger http://mail.messenger.yahoo.co.uk
Hallo, Claudius Maximus hat gesagt: // Claudius Maximus wrote:
- [block~ 1] doesn't work
The block size is set to 64 instead. Moreover:
block~ can not be used in the patch with the adc~/dac~, you need a subpatch then. Block also does not change the lowest message speed in objects like [del], which is limited below by 64 samples.
- How do I read bytes from a binary file into an
array?
Treating them as integers from 0 to 255.
I don't know an object that opens files in bin-mode, but it could be written as an external.
- How do I build messages out of symbol arguments?
|set $1( doesn't work as expected when I send it a symbol.
What did you expect it to work like?
- How do I send messages to $0-name arrays?
|;$0-name x y z( doesn't work.
There is no $0 in messages, you just invented this. ;) To send to local variable, need to make a message that accepts a variable:
[; $1-name x y z(
and send $0 as first argument to that:
[f $0] | | [; $1-name x y z(
you also could use [symbol $0-name] directly. Example attached.
Frank Barknecht _ ______footils.org__
Zitiere Claudius Maximus gloriousclaudiusmaximus@yahoo.co.uk:
Hi all,
However I've found some issues, either with the way I'm trying to do things or with Pd itself:
- [block~ 1] doesn't work
it does. (at least in pd-0.36; i'll have to make the pc i am sitting at compile first, before i can try 0.37)
The block size is set to 64 instead. Moreover:
how do you know ? i tested it with [pack~].
C:>pd -blocksize 1
i don't think that this is a working setting. pd's dac/adc-blocksize used to be somewhat hardcoded to 64 samples (but this might have changed with 0.37; i'm a little bit behind in that matters) and of course your soundcard/driver would have to support such small blocksizes.
- How do I read bytes from a binary file into an
array?
Treating them as integers from 0 to 255.
there was something like [read16 /path/to/my/file.dat(
- How do I build messages out of symbol arguments?
|set $1( doesn't work as expected when I send it a symbol.
depends on what you expect. you might argue, that when setting a message with [set $1( where $1 is a symbol the set message should output a symbol when banged/clicked. However you easily acchieve this by using [set symbol $1(. It is often quite hard to distinguish between "symbols" and so called anythings , especially for newbies. There is really a difference between [hallo( (being an identifier "hallo") and [symbol hallo( (being the symbol (identified by "symbol") "hallo")
- How do I send messages to $0-name arrays?
|;$0-name x y z( doesn't work.
there is a big difference between $-args in objects and messages. for instance in [symbol $1-name] the $1 is substituted by the 1st argument of the abstraction this object resides in (say: you have made an abstraction "argtest" that contains [symbol $1-name]; if you now create [argtest cool], the content of the [symbol] will actually be "cool-name"). when using messages, the $-arguments will expand to the specified element of the list that is send into the message (if you send a symbol "bad" into a message [symbol $1-name( you will get "bad-name" out of the message-box) this would apply the $0 too, but since there is no 0th argument of a list, this is set to "0" (which is not very consistent: actually i think it should rather expand to the identifier of the list (which is either "list" or "float" or "symbol" or whatever))
to send something to your array named "$0-name" use:
[x y z( | [send $0-name]
mfg.as.dr IOhannes