Going from a max patch to Maple code
-
Satellite Icarus Satellite Icarus https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=260709
- KVRer
- 7 posts since 15 Jul, 2011
Hello,
I did my best to make sure I was going about this right, feel free to redirect me/move this thread if necessary.
I'm currently in my final year as an undergrad, and I'm dedicating my last semester to designing/assembling/testing music performance hardware. One of my ideas, if it's even reasonable at all, would be to find a way to upload a max/msp patch of limited size to a user friendly platform such as Arduinos, or more likely, a Maple board:
http://leaflabs.com/devices/maple/
I sadly enough don't have the programming knowledge to go about this effectively (I'm more of an analog electronics person). Any suggestions/help would be immensely appreciated. Here's the IDE info for the Maple: http://leaflabs.com/docs/ide.html
The goal would basically be a pedal that could be uploaded with whatever effect you need. MaxMSP and Maple boards aren't requirements, just ways to make my explanation clearer, although if that combination could work that would be great - MaxMSP's interface with Maple's Arduino style interface seems like a really convenient combination. If anything's still fuzzy, or if this idea is ludicrous, feel free to point that out - I'll answer as best I can.
Thanks in advance!
Best,
Satellite Icarus
I did my best to make sure I was going about this right, feel free to redirect me/move this thread if necessary.
I'm currently in my final year as an undergrad, and I'm dedicating my last semester to designing/assembling/testing music performance hardware. One of my ideas, if it's even reasonable at all, would be to find a way to upload a max/msp patch of limited size to a user friendly platform such as Arduinos, or more likely, a Maple board:
http://leaflabs.com/devices/maple/
I sadly enough don't have the programming knowledge to go about this effectively (I'm more of an analog electronics person). Any suggestions/help would be immensely appreciated. Here's the IDE info for the Maple: http://leaflabs.com/docs/ide.html
The goal would basically be a pedal that could be uploaded with whatever effect you need. MaxMSP and Maple boards aren't requirements, just ways to make my explanation clearer, although if that combination could work that would be great - MaxMSP's interface with Maple's Arduino style interface seems like a really convenient combination. If anything's still fuzzy, or if this idea is ludicrous, feel free to point that out - I'll answer as best I can.
Thanks in advance!
Best,
Satellite Icarus
- Beware the Quoth
- 35449 posts since 4 Sep, 2001 from R'lyeh Oceanic Amusement Park and Funfair
What's your familiarity with MAX/MSP?
If you're just looking for the translation between a graphical environment like MAX to hardware, could I suggest that PD and a port of pdlib might be an easier route to take?
If you're just looking for the translation between a graphical environment like MAX to hardware, could I suggest that PD and a port of pdlib might be an easier route to take?
An idiot on Set Theory:
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."
-
Satellite Icarus Satellite Icarus https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=260709
- KVRer
- Topic Starter
- 7 posts since 15 Jul, 2011
I'm good enough with Max that I can get it to do what I want, why?
I'm fine with using pd. It seems to be crashing easily on my setup, but I'll deal with it it means I can easily upload stuff to stand-alone hardware.
Could you please elaborate on interfacing pd with hardware through pdlib? Specifically, could I use a maple board as the hardware?
Thanks,
Satellite Icarus
I'm fine with using pd. It seems to be crashing easily on my setup, but I'll deal with it it means I can easily upload stuff to stand-alone hardware.
Could you please elaborate on interfacing pd with hardware through pdlib? Specifically, could I use a maple board as the hardware?
Thanks,
Satellite Icarus
- Beware the Quoth
- 35449 posts since 4 Sep, 2001 from R'lyeh Oceanic Amusement Park and Funfair
just wondering whether or not part of your work would be the time invested in learning it, that's all.Satellite Icarus wrote:I'm good enough with Max that I can get it to do what I want, why?
its not, imo, the ideal development tool for cross-platform work; its graphical, its dataflow-driven, its incredibly complex with multiple methods for building components (javascript, java, native code, subpatches). none of these things tend to make it easy to port code to a different language/environment.
so, i guess im also wondering how you intend to 'port' from MAX to your target hardware...? MAX currently doesnt export any kind of code that'd be reusable, so I'd expect you'd at minimum have to replicate its message-passing, a subset of its objects, and its dataflow system for yourself... all the stuff that pdlib already does, fwiw.
well pdlib allows pd patches to run on certain existing hardware. im thinking that it'd be easier to choose hardware that you could use already, or port pdlib to, than some other porting strategy where there's no intermediate runtime that would help you.I'm fine with using pd. It seems to be crashing easily on my setup, but I'll deal with it it means I can easily upload stuff to stand-alone hardware.
Could you please elaborate on interfacing pd with hardware through pdlib?
Not at present, AFAIK. But it might be easier to port it to maple than build an equivalent from scratch...Specifically, could I use a maple board as the hardware?
An idiot on Set Theory:
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."
-
Satellite Icarus Satellite Icarus https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=260709
- KVRer
- Topic Starter
- 7 posts since 15 Jul, 2011
To be honest, I'm not enough of a programmer to understand the subtleties of porting code. I had read of a VST plugin maker who used maxMSP as a prototyping tool, but coded his VSTs in C++ (if I remember correctly), so I assumed there was a way to get transform Max code into C++ easily.
I'm all for using pd and pdlib for this project. I am however opposed to having to use androids, ipods and the like, unless absolutely necessary - I would like to have the final device hosting the code be stageworthy and cheaper then most of those.
How would I go about using pdlib and port pd to the Maple board?
I'm all for using pd and pdlib for this project. I am however opposed to having to use androids, ipods and the like, unless absolutely necessary - I would like to have the final device hosting the code be stageworthy and cheaper then most of those.
How would I go about using pdlib and port pd to the Maple board?
- KVRAF
- 9590 posts since 17 Sep, 2002 from Gothenburg Sweden
There isn't.Satellite Icarus wrote:To be honest, I'm not enough of a programmer to understand the subtleties of porting code. I had read of a VST plugin maker who used maxMSP as a prototyping tool, but coded his VSTs in C++ (if I remember correctly), so I assumed there was a way to get transform Max code into C++ easily.
Unless you're really good at programming (and you aren't) just forget about this. It won't happen.Satellite Icarus wrote:How would I go about using pdlib and port pd to the Maple board?
I believe your only shot at getting this to work would be a much more expensive card like the Beagle or Panda Board (150-175ish $). They can run Linux which means there's a possibility that they will run PureData without any porting. How well that works in practice i have no idea.Satellite Icarus wrote:I'm all for using pd and pdlib for this project. I am however opposed to having to use androids, ipods and the like, unless absolutely necessary - I would like to have the final device hosting the code be stageworthy and cheaper then most of those.
EDIT: http://therandomlab.blogspot.com/
These guys run PD on a BeagleBoard and it seems reasonably straightforward.
They're pretty expensive though and it is pretty much a small computer.
- Beware the Quoth
- 35449 posts since 4 Sep, 2001 from R'lyeh Oceanic Amusement Park and Funfair
yeah, i'd agree with what jupiter8 has said.jupiter8 wrote:There isn't.Satellite Icarus wrote:To be honest, I'm not enough of a programmer to understand the subtleties of porting code. I had read of a VST plugin maker who used maxMSP as a prototyping tool, but coded his VSTs in C++ (if I remember correctly), so I assumed there was a way to get transform Max code into C++ easily.Unless you're really good at programming (and you aren't) just forget about this. It won't happen.Satellite Icarus wrote:How would I go about using pdlib and port pd to the Maple board?I believe your only shot at getting this to work would be a much more expensive card like the Beagle or Panda Board (150-175ish $). They can run Linux which means there's a possibility that they will run PureData without any porting. How well that works in practice i have no idea.Satellite Icarus wrote:I'm all for using pd and pdlib for this project. I am however opposed to having to use androids, ipods and the like, unless absolutely necessary - I would like to have the final device hosting the code be stageworthy and cheaper then most of those.
EDIT: http://therandomlab.blogspot.com/
These guys run PD on a BeagleBoard and it seems reasonably straightforward.
They're pretty expensive though and it is pretty much a small computer.
not sure why you'd expect a maple board to be more 'stageworthy' than a mobile phone device designed to be carried around in someone's pocket day in day out though.
can i ask what you're an undergrad in?
An idiot on Set Theory:
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."
-
Satellite Icarus Satellite Icarus https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=260709
- KVRer
- Topic Starter
- 7 posts since 15 Jul, 2011
thanks for the info/links so far, I appreciate it
@ jupiter 8: What kind of programming are you thinking of? Would it be manageable if I got one or two programming people to help me out?
Were I to go the pdlib+itouch way (If I understood correctly, that's one of the pdlib ports already developed), do you think I can get decent sound processing capabilities from a setup like that? I'd probably go that way rather than using the beagle/panda linux boards.
If none of this works, would writing my own dsp programs as maple code be a viable alternative?
@ whytherabbit: Stageworthy - I could have put the maple in a metal box and not worried much about dropping/throwing/stomping/liquids, but that becomes difficult if I use a phone/ipod. Also, as cool as that sounds, I'd rather not have the only controls on the thing be through a touchscreen.
My focus as an undergrad has been a mix of electrical engineering and acoustics. Why?
@ jupiter 8: What kind of programming are you thinking of? Would it be manageable if I got one or two programming people to help me out?
Were I to go the pdlib+itouch way (If I understood correctly, that's one of the pdlib ports already developed), do you think I can get decent sound processing capabilities from a setup like that? I'd probably go that way rather than using the beagle/panda linux boards.
If none of this works, would writing my own dsp programs as maple code be a viable alternative?
@ whytherabbit: Stageworthy - I could have put the maple in a metal box and not worried much about dropping/throwing/stomping/liquids, but that becomes difficult if I use a phone/ipod. Also, as cool as that sounds, I'd rather not have the only controls on the thing be through a touchscreen.
My focus as an undergrad has been a mix of electrical engineering and acoustics. Why?
- KVRAF
- 9590 posts since 17 Sep, 2002 from Gothenburg Sweden
Hard to tell. I haven't really looked at the PD source code (actually i have some but only briefly) so it could be straight sailing or like a years project for 2 people. I don't really know.Satellite Icarus wrote:thanks for the info/links so far, I appreciate it
@ jupiter 8: What kind of programming are you thinking of? Would it be manageable if I got one or two programming people to help me out?
I'm thinking the Maple board has to little memory to run something like pd.
Yeah surely. There's tons of code out there already so that's certainly an option. Should be fairly simple to port to Wiring. You could even borrow stuff from the PD source code if there's anything in particular you like.Satellite Icarus wrote: If none of this works, would writing my own dsp programs as maple code be a viable alternative?
I'm still worried about the memory though, as far as i can tell it has 20 kb of memory,that's not a lot. A few buffers and you're out of memory.
-
Satellite Icarus Satellite Icarus https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=260709
- KVRer
- Topic Starter
- 7 posts since 15 Jul, 2011
would finding a way to add an SD card for storage be too easy of a solution? Maples are compatible with arduino shields, some of which include SD card holders...
Having to write the DSP code directly makes the final device less user friendly than being able to run something straight out of pd/max, but if that's what's needed for a prototype, I'll give it a shot. Now to look into how to program a phaser...
Having to write the DSP code directly makes the final device less user friendly than being able to run something straight out of pd/max, but if that's what's needed for a prototype, I'll give it a shot. Now to look into how to program a phaser...
- KVRAF
- 9590 posts since 17 Sep, 2002 from Gothenburg Sweden
It needs more RAM to function.SD is more like harddisk storage. It is possible it can write and read to SD fast enough for say a delay effect but i doubt it is capable of much more.Satellite Icarus wrote:would finding a way to add an SD card for storage be too easy of a solution? Maples are compatible with arduino shields, some of which include SD card holders...
http://www.musicdsp.org/files/phaser.cppSatellite Icarus wrote:Having to write the DSP code directly makes the final device less user friendly than being able to run something straight out of pd/max, but if that's what's needed for a prototype, I'll give it a shot. Now to look into how to program a phaser...
Here's one to get you started. Should be fairly straight forward to program for yourself. Half of the code is just for setting up parameters.
-
- KVRian
- 882 posts since 24 Jun, 2002 from Berlin
it's a shame that there is no really easy to use hardware platform for what you want to do. MaxMSP only runs on osx and windows, so you can give up on the idea of running a max patch on a device.
I think one option for you would be to use an ipod touch running libpd, connected to an arduino to control it via knobs. Hide/glue the ipod in a box if you like! The nice thing about that is that IOS already has low latency audio and a reasonable DAC. You could use one of those IKMultimedia IRig adaptors to get 1/4" jacks.
http://gitorious.org/pdlib/pages/ObjC
http://www.rosiedaniel.com/2007/09/ipod ... -love.html
even this will require a fair amount of programming i'm afraid.
Check out RJDJ to hear what kind of processing you can do using pd on IOS - i think it's probably powerful enough.
oli
I think one option for you would be to use an ipod touch running libpd, connected to an arduino to control it via knobs. Hide/glue the ipod in a box if you like! The nice thing about that is that IOS already has low latency audio and a reasonable DAC. You could use one of those IKMultimedia IRig adaptors to get 1/4" jacks.
http://gitorious.org/pdlib/pages/ObjC
http://www.rosiedaniel.com/2007/09/ipod ... -love.html
even this will require a fair amount of programming i'm afraid.
Check out RJDJ to hear what kind of processing you can do using pd on IOS - i think it's probably powerful enough.
oli
- KVRAF
- 9590 posts since 17 Sep, 2002 from Gothenburg Sweden
tHAT IS COOL IF YOU HAVE AN iPOD.iF NOT THEY'RE EVEN MORE EXPENSIVE THAN THE BOARDS I MENTIONED EARLIER.
wOWW cAPS LOCK FAIL.
wOWW cAPS LOCK FAIL.
- Beware the Quoth
- 35449 posts since 4 Sep, 2001 from R'lyeh Oceanic Amusement Park and Funfair
huh?hibrasil wrote:I think one option for you would be to use an ipod touch running libpd
An idiot on Set Theory:
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."
-
- KVRian
- 882 posts since 24 Jun, 2002 from Berlin
yes sorry that sounded like i had completely missed the previous posts. I meant the combination of ipod for the dsp and arduino for control.
If you think about the cost (in time, components, shipping etc) of setting up those boards vs the cost of an ipod touch (even second hand) the ipod is probably cheaper. Actually the prices are simiar... £128 for an ipod touch 8gb
of course you need a mac to program it, which adds a bit to the cost
If you think about the cost (in time, components, shipping etc) of setting up those boards vs the cost of an ipod touch (even second hand) the ipod is probably cheaper. Actually the prices are simiar... £128 for an ipod touch 8gb
of course you need a mac to program it, which adds a bit to the cost