Phaser Code in process / ICCV7

Discussions about programming and implementing Coyote-1 effect modules

Phaser Code in process / ICCV7

Postby Piper984 » Sat Nov 08, 2008 5:27 pm

Hello OpenStompers,

I have some Phaser algorthyms that I've implemented in the past in C++, VB, and even Labview. I am hoping to find some time today to first port the logic to ANSI C, and then make the move to ASM.

Question for Eric: Have you used the ICCV7 Ansi C compiler for the Propeller? My Phase Shifter code has allot of fp math, so I assume it will be alittle time consuming port the logic by hand to ASM. Any thoughts on using ICCV7?
Piper984
 
Posts: 25
Joined: Thu Oct 30, 2008 1:25 pm

Re: Phaser Code in process / ICCV7

Postby eric_admin » Sun Nov 09, 2008 8:00 am

The current version of the ImageCraft compiler operates using what is referred to as the "LMM" (Large Memory Model) architecture. Normally, a COG running assembly language is limited to executing no more than 2K of code, since that's the amount of assembly which will fit in a COG's RAM. The LMM gets around this limitation by fetching instructions from main RAM, placing them into COG RAM, and then executing them there. The advantage of LMM is that it significantly increases the maximum code size, but the disadvantage is that it executes slowly (compared to raw assembly, but still faster than spin) due to the overhead of fetching instructions.

In it's present incarnation I don't see the ImageCraft compiler as a viable path to authoring Coyote-1 effects because 1) Using LMM is too slow to process audio and 2) LMM breaks the Coyote-1 effect module storage/retrieval paradigm (The O/S expects to manage effects as 2K code blocks which can be stored in EEPROM, retrieved at runtime, loaded into a COG, and executed there).

I talked to one of the ImageCraft guys at the Embedded Systems Conference back in April and at that time there was not an operational mode which would allow you to compile C into non-LMM stand-alone assembly in a clean way. I've kept an occasional eye on their site to see if they would ever move to support of non-LMM C, but it's quite possible that I misunderstand what the current version of their compiler is capable of. I had a lot on my plate back when I first found out about them, and LMM seemed like a show stopper, so I haven't given them much attention. I'll give their demo a try and see what's possible with the current release.
User avatar
eric_admin
Site Admin
 
Posts: 121
Joined: Wed Aug 13, 2008 6:10 pm

Re: Phaser Code in process / ICCV7

Postby eric_admin » Sun Nov 09, 2008 8:27 am

Well that was kind of fun to look into. ImageCraft's solution is pretty clever and they have an artful design. Unfortunately for us, their assembly generation is extremely married to the LMM, and they use a dedicated cog to perform some higher-level functions like mem copy and math operation. I can see that it would be no small task for them to add non-LMM single-cog targeted compilation to their tool, because it would disrupt their current paradigm significantly and would call for almost a completely different compilation engine using different methods to implement common operations (like math) and having different code limitations. I have my doubts that the ROI would ever make such a development effort worthwhile for them.
User avatar
eric_admin
Site Admin
 
Posts: 121
Joined: Wed Aug 13, 2008 6:10 pm

Re: Phaser Code in process / ICCV7

Postby Piper984 » Mon Nov 10, 2008 3:39 am

Ok Eric, thanks. It was worth looking at anyway. I didn't make any progess w/ my Phaser port this weekend. Hope to find some time this week to look at it again.
Piper984
 
Posts: 25
Joined: Thu Oct 30, 2008 1:25 pm

Re: Phaser Code in process / ICCV7

Postby _s_ » Wed Apr 22, 2009 7:11 pm

phaser is one of my favorite effects I look forward to hearing this, one feature I always use with phasers and flangers is positive feedback, I don't know exactly what it is but on some of the effects I have (modfactor, lexicon mx400, tc g major) the phaser and flanges have a regen or feedback setting that can be set to a positive value as well as negative, and the positive regen gives it a more pleasant univibish through the teeth sound more than the deep throaty distracting effect I hope your algorithms have whatever that feature is called...
_s_
 
Posts: 14
Joined: Wed Apr 22, 2009 3:33 am


Return to Effect Module Programming

Who is online

Users browsing this forum: No registered users and 1 guest

cron