Hi all, I'm new to the chuck list. I'm Bert Schiettecatte, and I'm a researcher in musical interfaces currently working in Belgium at the university of Brussels. I was at CCRMA a few years ago for a master of arts in music, science and tech. where some of you might have spotted me. Anyway, I have a question: I'd like to try to port chuck to a TI hardware DSP platform.. Any suggestions on how to do it? Thanks, bert
Hi Bert! Welcome to chuck-dev. It is interesting that you are thinking of porting ChucK to TI DSP platform. We recently tried this, porting ChucK to run on the TI 6711 card. It wasn't a real port - we basically wrote out a ChucK-ified c program that was cross-compiled into the board's instruction set. It was a proof of concept and was horrendously wasteful since we were essentially running virtual instructions on the embedded system. This has a lot of potential - we can use the ChucK timing and concurrency for very precise, real-time embedded programming. Our test worked, synthesized audio, stereo 24000Hz, using shreds and for fun, we synchronized the audio to the onboard LED's. All this ran in real-time. It was promising because this was don't extremely inefficiently because we were emulating the ChucK VM on the board - so there is like infinite room for improvement - even with better c generation, and getting rid of the emulation = several orders magnitude speed-up. any way, the results of our experiment: http://www.cs.princeton.edu/~gewang/ee464/product.html it is very horrendous, but promising. What do you think? Best, Ge! On Jul 27, 2004, at 2:57 PM, Bert Schiettecatte wrote:
Hi all,
I'm new to the chuck list. I'm Bert Schiettecatte, and I'm a researcher in musical interfaces currently working in Belgium at the university of Brussels. I was at CCRMA a few years ago for a master of arts in music, science and tech. where some of you might have spotted me.
Anyway, I have a question: I'd like to try to port chuck to a TI hardware DSP platform.. Any suggestions on how to do it?
Thanks, bert
_______________________________________________ chuck-dev mailing list chuck-dev@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-dev
It is interesting that you are thinking of porting ChucK to TI DSP
Hi Ge, platform. We recently tried this, porting ChucK to run on the TI 6711 card. It wasn't a real port - >we basically wrote out a ChucK-ified c program that was cross-compiled into the board's instruction set. It was a proof of concept and was horrendously wasteful since we >were essentially running virtual instructions on the embedded system. The 6711 is a floating point DSP if I recall correctly?
it is very horrendous, but promising. What do you think?
The project looks quite interesting. It's very cool you already did a port to the 6713. I'm particularly interested in getting it to run on one of the most minimal DSPs of TI, the 2407. 16-bit fixed point and 32K flash, 2K ram. I don't want to use any extra memory, it should run on the DSP alone. Can you advise me in a little more detail how I could do a translator or interpreter for the Chuck code? I suppose I can remove all audio I/O specific code and I would have to re-do the timing/synchronization parts. Anything I'm missing? Thanks, bert
Hi Bert!
The 6711 is a floating point DSP if I recall correctly?
yes - it is floating point.
it is very horrendous, but promising. What do you think?
The project looks quite interesting. It's very cool you already did a port to the 6713. I'm particularly interested in getting it to run on one of the most minimal DSPs of TI, the 2407. 16-bit fixed point and 32K flash, 2K ram. I don't want to use any extra memory, it should run on the DSP alone. Can you advise me in a little more detail how I could do a translator or interpreter for the Chuck code? I suppose I can remove all audio I/O specific code and I would have to re-do the timing/synchronization parts. Anything I'm missing?
here is what we figure so far: - timing/concurrency is actually not hard - you only have to provide the right code stubs to do those. - if you are running on 2407, you will have to either implement a good chuck to c generator, or emit the chuck program directly into the DSP's IS. the former sounds less painful and with a good cross compiler, could yield good results. - what type of things are you thinking of doing with the chip/chuck? the audio or another real-time clock must be accessible in order to have timing - otherwise there is synchronization but the timing is clocked by any physical clock. this may also be acceptable for stuff. - as for the translator - normal operations pretty much stay the same no emulation, so 1+x => y; would become y = 1+x; - timing/synchronization would take place by calling a special function/API for managing shreds. there are few details, such as how to resume execution on an abitrary shred. 6711 has a start, but would need to be greatly changed for native executables. it might be easier to manually roll a few lines of assembly for context switching between shreds. Interesting - porting a shredded, timed vm to embedded chips. a lot of cool places for optimization and new ideas, and much potential for exciting disaster. ha. very cool. Let's keep this discuss going? Best, Ge!
participants (2)
-
Bert Schiettecatte
-
Ge Wang