Ear Training Program
you want to take entire sections of code and put them inside subpatches by creating a subpatch object (with any name) i.e. [pd NAME-OF-SUBPATCH] use the [inlet]/[inlet~] and [outlet]/[outlet~] objects to hook wires in and out of them. then you will have saved space in your main window.
typically, put bits of code that represent a certain function or algorithm into subs. and don't be afraid of making subpatches within subpatches within subpatches e.t.c.
More Graph On Parent...
@evilsheep23 said:
Every time I expand/contract or move the area of the canvas, the objects that should now be covered remain there (and persist even after the sub-patch they are in no longer exist).
Here's the trick: If you open the subpatch on the patch you posted here, and select all, you'll see there's a canvas at the background of the part of the patch that is expanded/contracted. Putting a canvas at the background that is big enough to cover all of the objects that you need to show/hide solves the problem you've mentioned.
There is another problem though: If you have some other objects on the main patch that are located exactly where the subpatch is being expanded to, as soon as you expand the subpatch, they disappear and never come back until you erase the subpatch! It's because the hidden canvas somehow remains in there. You can of course adjust the size of it, so it expands/contracts together with the pacth, but in that case the objects that are supposed to be hidden reappears on the main patch! I don't know how to deal with this... Making another subpatch inside the subpatch that includes all of the objects, then moving the entire thing maybe, which I don't know-how though...
"Morphine" - fx-morphing engine
hehe, i know, some weeks ago, i asked myself how to do that:
it's quite easy, the "graph on parent" option for canvases does the the trick! i build an instrument from the very beginning inside a subpatch, then right-click on the empty background and choose properties. there you can edit the properties of your subpatch. choose "graph on parent". by default the x size is set to 85, y size is set to 60 px, a red frame with 85x60 px will appear on the background of your subpatch. when you go back to your main patch , you will see that your subpatch is now a 85x60 px frame. back inside your subpatch you can place all your gui elements like faders, visual bangs, toggles and background canvases inside the red frame, in the main patch the cables, objects and message boxes wont be displayed.
\#DEFINE
So, I'm working on an interface that will translate gamepad inputs to certain MIDI controls that will control the routing and properties of an audio effects chain in Logic, including loop plugins within logic.
My main patch receives the input and sends it to one of many different subpatches that each deal with the same input in different ways.
For example, if subpatch 1 is active and button 1 is pressed, I want to send MIDI message 1 1 1 to logic, which converts that message in the logic environment to the correct message to, say, start recording loop one. If I want another button on another subpatch to perform the same function (loop one record-on), I would want the same message to be sent to Logic (1 1 1) from a different point in the chain.
Now, to make passing these MIDI messages within my patches easier, I have the digits shifted and parts summed so that MIDI message 1 1 1 would be passed within the patch as 0010101 and 127 5 8 would be passed as 1270508.
I expect to be cranking out more subpatches every week for possible input sets, all leading back to the same output to logic for the same message ("loop one record-on" will be 1 1 1 for every subpatch), and to make writing subpatches more intuitive, I'd like to do some sort of analogous function to #DEFINE in C, such as:
#DEFINE lp1RecOn 0010101
and my subpatches could use the name instead of the number. This also would make it easier to change my MIDI message processing scheme later. If I decide that some other function needs to be 1 1 1, and I change the "loop one record-on" function to use 1 5 4, I would only need to change the definition of the constant in one central reference file (an the routing in logic) instead of crawling through all of my patches, changing every instance of it in them.
Is there any way to #DEFINE constants in Pd?
(Or do something funcitonally equivalent?)
SubPatch: parameters
yeah, i always wanted subpatches to be able to have creation arguments too, and never understood why they couldn't.
but actually there are lots of advantages to subpatches taking the creation arguments of the parent patch which i have discovered, and realised that it's probably quite well designed the way it is.
but i think an improvement would be that if a subpatch has creation arguments entered, then those would overwrite the arguments of the parent. but if no creation arguments are entered, then the subpatch would inherit those of the parent. not sure if anyone has mentioned this idea on the pd mailing list or if it would even be feasible.
for one,. i'd still like it if subpatches could take $0 arguments to make themselves unique.
anyway, a workaround is to put an inlet on the right side of the subpatch, followed by an upack for as many parameters as you need, and then send those parameters as a message from outside the patch.
Savepanel/openpanel
i'm sorry to post another help request about this, anyway i really can't solve my problem. I've tried out everything i could read on this forum and obviously i debugged all my patch.
I want to save some presets on .txt file so i create a subpatch in witch parameters are receive-d and writed in a table. every number has his location on the table. then:
[bang (
|
[r array1]
|
[savepanel]
|
[symbol]
|
[write $1.txt (
|
and 'till here all works fine (i.e. the .txt is written well)
then i use openpanel:
[bang (
|
[r array1]
|
[savepanel]
|
[t b b s]
| | |
| [symbol]
| |
[write $1.txt (
| |
|
|
[subpatch in where all parameters are rerouted to their destination (in the same order of the previuos subpatch)]
This seems to work fine, but somewhere the parameters are correctly received somewhere only some, somewhere else not at all (i've noticed it behaves following a routine: what works will continue working and viceversa) and it's strange: i've used copy and paste.
please help me, i'm driving crazy!
Controlling a synth with a keyboard
hi spacedad (nice name 
what you need to do is open the casio.pd patch, turn edit mode on (ctrl E), and then click once on an area just above the [pd pianokeys] subpatch*
then, with your mouse still clicked down, move over the subpatch, and it will turn blue. ..unclick
you have now selected the subpatch and can do a ctrl-x or control c to cut or copy it.
ctrl-p will paste it in another patch or anywhere you want.
* quick explaination of objects, externals, abstractions, subpatches:
-
object : anything included in the basic pd distribution (miller vanilla) - examples = [+ ] , [f ] , [tabread] ...etc
-
externals : basically the same as objects, but written by people other than miller... these live in your "extra" folder.. examples = [gemhead] , [makesymbol] , [freeverb~]
-
abstraction : a patch that is saved somewhere on your hard disk to be used inside other patches. you can tell that it is not an object because if you click on it , it will open to show the pd patch inside
-
subpatch : anything that looks like this -> [pd blah-blah-blah] - basically it is a patch within a patch, hence "subpatch"
Compiling new external
i have similar problem, like your suggest i try to compile and the message that return to me is this: (i have ubuntu 7.04)
viniciolindo@ASUSPRO70V:~/pd-wii$ sudo gcc -c wiimote.c -o wiimote.o
wiimote.c:24:19: error: stdio.h: Nessun file o directory
wiimote.c:25:20: error: unistd.h: Nessun file o directory
wiimote.c:26:24: error: sys/select.h: Nessun file o directory
wiimote.c:27:33: error: bluetooth/bluetooth.h: Nessun file o directory
wiimote.c:29:18: error: math.h: Nessun file o directory
wiimote.c:31:21: error: wiimote.h: Nessun file o directory
wiimote.c:47: error: expected specifier-qualifier-list before 'wiimote_t'
wiimote.c: In function 'wiimote_debug':
wiimote.c:89: error: 't_wiimote' has no member named 'connected'
wiimote.c:89: error: 't_wiimote' has no member named 'wiimoteID'
wiimote.c:90: error: 't_wiimote' has no member named 'wiimoteID'
wiimote.c:91: error: 't_wiimote' has no member named 'toggle_acc'
wiimote.c:93: error: 't_wiimote' has no member named 'toggle_ir'
wiimote.c:95: error: 't_wiimote' has no member named 'toggle_nc'
wiimote.c:98: error: 't_wiimote' has no member named 'acc_zero'
wiimote.c:98: error: 't_wiimote' has no member named 'acc_zero'
wiimote.c:98: error: 't_wiimote' has no member named 'acc_zero'
wiimote.c:98: error: 't_wiimote' has no member named 'acc_one'
wiimote.c:98: error: 't_wiimote' has no member named 'acc_one'
wiimote.c:98: error: 't_wiimote' has no member named 'acc_one'
wiimote.c:99: error: 't_wiimote' has no member named 'nc_acc_zero'
wiimote.c:99: error: 't_wiimote' has no member named 'nc_acc_zero'
wiimote.c:99: error: 't_wiimote' has no member named 'nc_acc_zero'
wiimote.c:99: error: 't_wiimote' has no member named 'nc_acc_one'
wiimote.c:99: error: 't_wiimote' has no member named 'nc_acc_one'
wiimote.c:99: error: 't_wiimote' has no member named 'nc_acc_one'
wiimote.c: At top level:
wiimote.c:107: warning: 'struct wiimote_btn_mesg' declared inside parameter list
wiimote.c:107: warning: its scope is only this definition or declaration, which is probably not what you want
wiimote.c: In function 'wiimote_btn':
wiimote.c:110: error: 't_wiimote' has no member named 'btn_atoms'
wiimote.c:110: error: 't_wiimote' has no member named 'btn_atoms'
wiimote.c:110: error: dereferencing pointer to incomplete type
wiimote.c:111: error: 't_wiimote' has no member named 'btn_atoms'
wiimote.c:111: error: 't_wiimote' has no member named 'btn_atoms'
wiimote.c:111: error: dereferencing pointer to incomplete type
wiimote.c:112: error: 't_wiimote' has no member named 'outlet_btn'
wiimote.c:112: error: 't_wiimote' has no member named 'btn_atoms'
wiimote.c: At top level:
wiimote.c:128: warning: 'struct wiimote_acc_mesg' declared inside parameter list
wiimote.c: In function 'wiimote_acc':
wiimote.c:130: error: 't_wiimote' has no member named 'toggle_acc'
wiimote.c:134: error: dereferencing pointer to incomplete type
wiimote.c:134: error: 't_wiimote' has no member named 'acc_zero'
wiimote.c:134: error: 't_wiimote' has no member named 'acc_one'
wiimote.c:134: error: 't_wiimote' has no member named 'acc_zero'
wiimote.c:135: error: dereferencing pointer to incomplete type
wiimote.c:135: error: 't_wiimote' has no member named 'acc_zero'
wiimote.c:135: error: 't_wiimote' has no member named 'acc_one'
wiimote.c:135: error: 't_wiimote' has no member named 'acc_zero'
wiimote.c:136: error: dereferencing pointer to incomplete type
wiimote.c:136: error: 't_wiimote' has no member named 'acc_zero'
wiimote.c:136: error: 't_wiimote' has no member named 'acc_one'
wiimote.c:136: error: 't_wiimote' has no member named 'acc_zero'
wiimote.c:147: error: 't_wiimote' has no member named 'acc_atoms'
wiimote.c:147: error: 't_wiimote' has no member named 'acc_atoms'
wiimote.c:148: error: 't_wiimote' has no member named 'acc_atoms'
wiimote.c:148: error: 't_wiimote' has no member named 'acc_atoms'
wiimote.c:149: error: 't_wiimote' has no member named 'acc_atoms'
wiimote.c:149: error: 't_wiimote' has no member named 'acc_atoms'
wiimote.c:150: error: 't_wiimote' has no member named 'outlet_acc'
wiimote.c:150: error: 't_wiimote' has no member named 'acc_atoms'
wiimote.c: At top level:
wiimote.c:155: warning: 'struct wiimote_ir_mesg' declared inside parameter list
wiimote.c: In function 'wiimote_ir':
wiimote.c:159: error: 't_wiimote' has no member named 'toggle_ir'
wiimote.c:162: error: 'WIIMOTE_IR_SRC_COUNT' undeclared (first use in this function)
wiimote.c:162: error: (Each undeclared identifier is reported only once
wiimote.c:162: error: for each function it appears in.)
wiimote.c:164: error: dereferencing pointer to incomplete type
wiimote.c:166: error: 't_wiimote' has no member named 'ir_atoms'
wiimote.c:166: error: 't_wiimote' has no member named 'ir_atoms'
wiimote.c:167: error: 't_wiimote' has no member named 'ir_atoms'
wiimote.c:167: error: 't_wiimote' has no member named 'ir_atoms'
wiimote.c:167: error: dereferencing pointer to incomplete type
wiimote.c:168: error: 't_wiimote' has no member named 'ir_atoms'
wiimote.c:168: error: 't_wiimote' has no member named 'ir_atoms'
wiimote.c:168: error: dereferencing pointer to incomplete type
wiimote.c:169: error: 't_wiimote' has no member named 'ir_atoms'
wiimote.c:169: error: 't_wiimote' has no member named 'ir_atoms'
wiimote.c:169: error: dereferencing pointer to incomplete type
wiimote.c:170: error: 't_wiimote' has no member named 'outlet_ir'
wiimote.c:170: error: 't_wiimote' has no member named 'ir_atoms'
wiimote.c: At top level:
wiimote.c:177: warning: 'struct wiimote_nunchuk_mesg' declared inside parameter list
wiimote.c: In function 'wiimote_nunchuk':
wiimote.c:181: error: dereferencing pointer to incomplete type
wiimote.c:181: error: 't_wiimote' has no member named 'nc_acc_zero'
wiimote.c:181: error: 't_wiimote' has no member named 'nc_acc_one'
wiimote.c:181: error: 't_wiimote' has no member named 'nc_acc_zero'
wiimote.c:182: error: dereferencing pointer to incomplete type
wiimote.c:182: error: 't_wiimote' has no member named 'nc_acc_zero'
wiimote.c:182: error: 't_wiimote' has no member named 'nc_acc_one'
wiimote.c:182: error: 't_wiimote' has no member named 'nc_acc_zero'
wiimote.c:183: error: dereferencing pointer to incomplete type
wiimote.c:183: error: 't_wiimote' has no member named 'nc_acc_zero'
wiimote.c:183: error: 't_wiimote' has no member named 'nc_acc_one'
wiimote.c:183: error: 't_wiimote' has no member named 'nc_acc_zero'
wiimote.c:194: error: dereferencing pointer to incomplete type
wiimote.c:194: error: 'WIIMOTE_NUNCHUK_BTN_C' undeclared (first use in this function)
wiimote.c:195: error: dereferencing pointer to incomplete type
wiimote.c:195: error: 'WIIMOTE_NUNCHUK_BTN_Z' undeclared (first use in this function)
wiimote.c:196: error: 't_wiimote' has no member named 'outlet_nc_btn'
wiimote.c:196: error: dereferencing pointer to incomplete type
wiimote.c:198: error: 't_wiimote' has no member named 'nc_acc_atoms'
wiimote.c:198: error: 't_wiimote' has no member named 'nc_acc_atoms'
wiimote.c:199: error: 't_wiimote' has no member named 'nc_acc_atoms'
wiimote.c:199: error: 't_wiimote' has no member named 'nc_acc_atoms'
wiimote.c:200: error: 't_wiimote' has no member named 'nc_acc_atoms'
wiimote.c:200: error: 't_wiimote' has no member named 'nc_acc_atoms'
wiimote.c:201: error: 't_wiimote' has no member named 'outlet_nc_acc'
wiimote.c:201: error: 't_wiimote' has no member named 'nc_acc_atoms'
wiimote.c:203: error: 't_wiimote' has no member named 'nc_stick_atoms'
wiimote.c:203: error: 't_wiimote' has no member named 'nc_stick_atoms'
wiimote.c:203: error: dereferencing pointer to incomplete type
wiimote.c:204: error: 't_wiimote' has no member named 'nc_stick_atoms'
wiimote.c:204: error: 't_wiimote' has no member named 'nc_stick_atoms'
wiimote.c:204: error: dereferencing pointer to incomplete type
wiimote.c:205: error: 't_wiimote' has no member named 'outlet_nc_stick'
wiimote.c:205: error: 't_wiimote' has no member named 'nc_stick_atoms'
wiimote.c: At top level:
wiimote.c:219: warning: 'union wiimote_mesg' declared inside parameter list
wiimote.c: In function 'wiimote_callback':
wiimote.c:223: error: dereferencing pointer to incomplete type
wiimote.c:224: error: 'WIIMOTE_MESG_STATUS' undeclared (first use in this function)
wiimote.c:225: error: dereferencing pointer to incomplete type
wiimote.c:225: error: 'WIIMOTE_BATTERY_MAX' undeclared (first use in this function)
wiimote.c:226: error: dereferencing pointer to incomplete type
wiimote.c:227: error: 'WIIMOTE_EXT_NONE' undeclared (first use in this function)
wiimote.c:230: error: 'WIIMOTE_EXT_NUNCHUK' undeclared (first use in this function)
wiimote.c:232: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:232: error: 'WIIMOTE_RW_REG' undeclared (first use in this function)
wiimote.c:232: error: 'WIIMOTE_RW_DECODE' undeclared (first use in this function)
wiimote.c:236: error: 't_wiimote' has no member named 'nc_acc_zero'
wiimote.c:237: error: 't_wiimote' has no member named 'nc_acc_zero'
wiimote.c:238: error: 't_wiimote' has no member named 'nc_acc_zero'
wiimote.c:239: error: 't_wiimote' has no member named 'nc_acc_one'
wiimote.c:240: error: 't_wiimote' has no member named 'nc_acc_one'
wiimote.c:241: error: 't_wiimote' has no member named 'nc_acc_one'
wiimote.c:244: error: 'WIIMOTE_EXT_CLASSIC' undeclared (first use in this function)
wiimote.c:247: error: 'WIIMOTE_EXT_UNKNOWN' undeclared (first use in this function)
wiimote.c:252: error: 'WIIMOTE_MESG_BTN' undeclared (first use in this function)
wiimote.c:253: error: dereferencing pointer to incomplete type
wiimote.c:255: error: 'WIIMOTE_MESG_ACC' undeclared (first use in this function)
wiimote.c:256: error: dereferencing pointer to incomplete type
wiimote.c:258: error: 'WIIMOTE_MESG_IR' undeclared (first use in this function)
wiimote.c:259: error: dereferencing pointer to incomplete type
wiimote.c:261: error: 'WIIMOTE_MESG_NUNCHUK' undeclared (first use in this function)
wiimote.c:262: error: dereferencing pointer to incomplete type
wiimote.c:264: error: 'WIIMOTE_MESG_CLASSIC' undeclared (first use in this function)
wiimote.c: At top level:
wiimote.c:272: warning: 'union wiimote_mesg' declared inside parameter list
wiimote.c: In function 'wiimote_callback_0':
wiimote.c:272: warning: passing argument 2 of 'wiimote_callback' from incompatible pointer type
wiimote.c: At top level:
wiimote.c:273: warning: 'union wiimote_mesg' declared inside parameter list
wiimote.c: In function 'wiimote_callback_1':
wiimote.c:273: warning: passing argument 2 of 'wiimote_callback' from incompatible pointer type
wiimote.c: At top level:
wiimote.c:274: warning: 'union wiimote_mesg' declared inside parameter list
wiimote.c: In function 'wiimote_callback_2':
wiimote.c:274: warning: passing argument 2 of 'wiimote_callback' from incompatible pointer type
wiimote.c: At top level:
wiimote.c:275: warning: 'union wiimote_mesg' declared inside parameter list
wiimote.c: In function 'wiimote_callback_3':
wiimote.c:275: warning: passing argument 2 of 'wiimote_callback' from incompatible pointer type
wiimote.c: At top level:
wiimote.c:276: warning: 'union wiimote_mesg' declared inside parameter list
wiimote.c: In function 'wiimote_callback_4':
wiimote.c:276: warning: passing argument 2 of 'wiimote_callback' from incompatible pointer type
wiimote.c: At top level:
wiimote.c:277: warning: 'union wiimote_mesg' declared inside parameter list
wiimote.c: In function 'wiimote_callback_5':
wiimote.c:277: warning: passing argument 2 of 'wiimote_callback' from incompatible pointer type
wiimote.c: At top level:
wiimote.c:278: warning: 'union wiimote_mesg' declared inside parameter list
wiimote.c: In function 'wiimote_callback_6':
wiimote.c:278: warning: passing argument 2 of 'wiimote_callback' from incompatible pointer type
wiimote.c: At top level:
wiimote.c:279: warning: 'union wiimote_mesg' declared inside parameter list
wiimote.c: In function 'wiimote_callback_7':
wiimote.c:279: warning: passing argument 2 of 'wiimote_callback' from incompatible pointer type
wiimote.c: In function 'wiimote_setReportMode':
wiimote.c:292: error: 'WIIMOTE_RPT_STATUS' undeclared (first use in this function)
wiimote.c:292: error: 'WIIMOTE_RPT_BTN' undeclared (first use in this function)
wiimote.c:293: error: 't_wiimote' has no member named 'toggle_ir'
wiimote.c:293: error: 'WIIMOTE_RPT_IR' undeclared (first use in this function)
wiimote.c:294: error: 't_wiimote' has no member named 'toggle_acc'
wiimote.c:294: error: 'WIIMOTE_RPT_ACC' undeclared (first use in this function)
wiimote.c:295: error: 't_wiimote' has no member named 'toggle_nc'
wiimote.c:295: error: 'WIIMOTE_RPT_EXT' undeclared (first use in this function)
wiimote.c:298: error: 't_wiimote' has no member named 'connected'
wiimote.c:300: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:300: error: 'WIIMOTE_CMD_RPT_MODE' undeclared (first use in this function)
wiimote.c: In function 'wiimote_reportAcceleration':
wiimote.c:308: error: 't_wiimote' has no member named 'toggle_acc'
wiimote.c: In function 'wiimote_reportIR':
wiimote.c:314: error: 't_wiimote' has no member named 'toggle_ir'
wiimote.c: In function 'wiimote_reportNunchuck':
wiimote.c:320: error: 't_wiimote' has no member named 'toggle_nc'
wiimote.c: In function 'wiimote_setRumble':
wiimote.c:326: error: 't_wiimote' has no member named 'connected'
wiimote.c:328: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:328: error: 'WIIMOTE_CMD_RUMBLE' undeclared (first use in this function)
wiimote.c: In function 'wiimote_setLED':
wiimote.c:339: error: 't_wiimote' has no member named 'connected'
wiimote.c:341: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:341: error: 'WIIMOTE_CMD_LED' undeclared (first use in this function)
wiimote.c: In function 'wiimote_doConnect':
wiimote.c:361: error: 'bdaddr_t' undeclared (first use in this function)
wiimote.c:361: error: expected ';' before 'bdaddr'
wiimote.c:364: error: 'bdaddr' undeclared (first use in this function)
wiimote.c:364: error: 'BDADDR_ANY' undeclared (first use in this function)
wiimote.c:369: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:370: error: 't_wiimote' has no member named 'wiimoteID'
wiimote.c:374: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:375: error: 't_wiimote' has no member named 'wiimoteID'
wiimote.c:379: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:380: error: 't_wiimote' has no member named 'wiimoteID'
wiimote.c:384: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:385: error: 't_wiimote' has no member named 'wiimoteID'
wiimote.c:389: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:390: error: 't_wiimote' has no member named 'wiimoteID'
wiimote.c:394: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:395: error: 't_wiimote' has no member named 'wiimoteID'
wiimote.c:399: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:400: error: 't_wiimote' has no member named 'wiimoteID'
wiimote.c:404: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:405: error: 't_wiimote' has no member named 'wiimoteID'
wiimote.c:413: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:417: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:417: error: 'WIIMOTE_RW_EEPROM' undeclared (first use in this function)
wiimote.c:420: error: 't_wiimote' has no member named 'acc_zero'
wiimote.c:421: error: 't_wiimote' has no member named 'acc_zero'
wiimote.c:422: error: 't_wiimote' has no member named 'acc_zero'
wiimote.c:423: error: 't_wiimote' has no member named 'acc_one'
wiimote.c:424: error: 't_wiimote' has no member named 'acc_one'
wiimote.c:425: error: 't_wiimote' has no member named 'acc_one'
wiimote.c:428: error: 't_wiimote' has no member named 'connected'
wiimote.c: In function 'wiimote_discover':
wiimote.c:441: error: 't_wiimote' has no member named 'connected'
wiimote.c: In function 'wiimote_doDisconnect':
wiimote.c:449: error: 't_wiimote' has no member named 'connected'
wiimote.c:451: error: 't_wiimote' has no member named 'wiimote'
wiimote.c:454: error: 't_wiimote' has no member named 'wiimoteID'
wiimote.c:455: error: 't_wiimote' has no member named 'connected'
wiimote.c: In function 'wiimote_new':
wiimote.c:466: error: 'bdaddr_t' undeclared (first use in this function)
wiimote.c:466: error: expected ';' before 'bdaddr'
wiimote.c:471: error: 't_wiimote' has no member named 'outlet_btn'
wiimote.c:472: error: 't_wiimote' has no member named 'outlet_acc'
wiimote.c:473: error: 't_wiimote' has no member named 'outlet_ir'
wiimote.c:474: error: 't_wiimote' has no member named 'outlet_nc_btn'
wiimote.c:475: error: 't_wiimote' has no member named 'outlet_nc_acc'
wiimote.c:476: error: 't_wiimote' has no member named 'outlet_nc_stick'
wiimote.c:479: error: 't_wiimote' has no member named 'toggle_acc'
wiimote.c:480: error: 't_wiimote' has no member named 'toggle_ir'
wiimote.c:481: error: 't_wiimote' has no member named 'toggle_nc'
wiimote.c:483: error: 't_wiimote' has no member named 'connected'
wiimote.c:484: error: 't_wiimote' has no member named 'wiimoteID'
can you help me? sorry for my english
Automation
personally, i wouldn't bother with saving the generated abstractions to a location on disk. i've revisited the patch i did a few months ago and what happens in my is that i have an abstraction that it set up to generate a subpatch on its own canvas (not the main patches canvas). so what happens is on the main patch, i create an instantiation of that abstraction with various creation arguments to make it unique. when that abstraction is instantiated, it goes through a sequence of events:
a. create the new subpatch on the abstraction's canvas. something like this:
[loadbang]
|
[symbol $1] ($1 is the name of the sub patch to be created)
| \
| [makefilename pd-%s] (you will need this symbol for referencing)
| |
[pack s s]
|
[ ; (
[ pd-abstraction.pd obj 83 500 pd-abstraction.pd $1; ( (create it)
[$2 vis 0 ( (hide it)
b. fill the subpatch with whatever it needs to function. e.g.
first you need to pack any parameters together that will govern how the subpatch is created. the only parameter you absolutely need is the name of the subpatch window prefixed by 'pd-'. you'll make this symbol as above with the makefilename object so it looks like pd-subpatch. other paremeters i used were a send/receive name, and one other numerical parameter. after you have your parameters packed, send them to a message like this ($1 is the window name, $2 and $3, are other parameters):
[pack s s f]
|
[ ; (
[pd-abstraction.pd vis 1, $1 vis 1 (
[$1 obj 10 10 r $2, obj 40 40 * $3; (
[$1 connect ....etc.... (
[ create and connect more objs (
[ $1 vis 0 (
[pd-abstraction.pd vis 0 (
note that i have included messages to show and hide windows. i don't know why it's necessary, but i ran into problems when the window wasn't visible. it probably has something to do with the coordinate system. another thing i did in my patch was before i sent this message, i ran a few messages to clear the contents of the subpatch just in case a subpatch with that name had already been created.
and that's about it. my actually patch was a little bit more complicated. i have simplified here for easier explanation. my patch had more complex naming conventions and more parameters were passed to the message box that created the contents of the new subpatch.
i hope this helps.
'instance handles' for abstractions
hi all,
i was wondering if anyone has advice/comments/questions on the following.
i am working on a that patch is set up with my synthesis/sampling algorithms nested in subpatches. i control them using 'command lines'. for example, to play a sample named x-sample, at pitch y and amplitude z, (x, y, and z being numerical parameters), i send a message such as [ ; sampler play x y z (. in the sampling subpatch, a recieve named sampler 'routes' the message and sends the parameters to the playback algorithm.
because the nature of my project will involve looping sequences of these 'command lines' i am working on an abstraction that takes creation arguments and loops whatever parameter accordingly. for the looping abstractions, i would like to use a similar message oriented command line interface, but i would also like to be able to use more that one instance of the looping abstraction at a time to sequence and loop various parameters at different phases.
how can i avoid jumbling up my 'command lines'--the abstractions will receive the messages and not understand to which loop or sequence the message corresponds. is there a way to assign each instance of an abstraction a unique handle or signature and then filter messages accordingly?
any discussion on such issues would be appreciated. i am open to help/suggestions/comments/criticism. thanks!
--zacha-dee