[sdiy] The Chameleon Guitar
Csaba Zvekan
czvekan at gmail.com
Wed Apr 8 23:44:22 CEST 2009
Paul,
All right I had to look up what FWIW stands for :)
I had no idea DSP's can handle multiple registers. I thought only like
Microprocessors and higher, more complex µCUs. Interesting !
So you're saying Assembler would be the way to go , for you. And
therefore one would have to dig even deeper in the Datasheets not only
set some registers. That makes sense.
But what about portability . Isn't a C-program much easier to port by
simply changing the header of the device. Sure you loose performance
the code is not as optimized as it would be in Assembler . But the
part runs @400MHz does it really matter ? Let's waste some of that DSP
power :)
I'd like to see somebody write a Chorus, Flanger, Delay maybe even a
Reverb application. So I can learn how that is being done in code.
My true problem with the SoundBite board is that there is not enough
code around .So I can't even copycat snippets together and brew
something that I can call my own.
Paul, you got the Monowave II and other synth created on the
Chameleon's DSP(s) . Respect ! I am sure you will one of these days
present us with some mint MultiEffects or something .
Csaba
On Apr 8, 2009, at 10:57 PM, Paul Maddox wrote:
> Csaba,
>
> Ok, I like DSPs, I'm not ashamed to admit it.
>
> FWIW, the toolchain isn't that different, as you say, the use of
> eclipse and freescale now standardizing on toolchain for their
> products is very very welcome.
>
> You *can* write code for a DSP in C, there's nothing to stop you,
> there's cross compilers out there. BUT, to get the best from a DSP
> you need to get into the assembly language. The beauty of the
> assembly language on the freescale DSPs is that you can do an
> instruction and up to two memory moves in the SAME clock cycle.
>
> for example
>
> MPY X0,Y1,B #0.3,Y0
>
> This multiples, reg X0, by reg Y1 and stores the result in B
> at the _SAME_ time it moves a value of 0.3 into reg Y0
>
> here's another one ;-
>
> ASL A B,X:(R_X)+
>
> Logical shift left of register A whilst copying the B register into
> the X memory location held in register R_X and then this register is
> incremented.
>
> C compilers currently can't cope with this level of optimisation.
> so to code truly effeciently in DSP you'll need to start wrapping
> your head around assembly language, but to do it quickly you can
> code in C :-)
>
> The DSP assembly code really isn't that hard to learn, there are a
> few commands you need to learn, and once you start programming it
> becomes second nature.
>
> I'm no DSP guru, but I kinda of enjoy programming in assembly, it
> feels "real".
>
> Paul
> P.s. those examples are taken from the filter in the Monowave II.
>
>
>
> On 8 Apr 2009, at 20:31, Csaba Zvekan wrote:
>
>> I see your point Eric & Tom on the lack of necessary I/O's ADC,
>> UARTS but disagree with the software . Freescale is using their
>> "Symphony Studio " which is nothing more than a pre-compiled
>> Eclipse "Ganymede"/GCC/GDB, OpenOCD version with most likely some
>> of their core-plug ins (if even that is true).
>> And if you played around with GNUARM / Eclipse for like ARM
>> processors then this tool is exactly the same.
>> I mean I am no way a guru in DSP56xx programming but rather hate to
>> see my little SoundBite board up on the top shelf, unused.
>> There's gotta be something we can do with them even if it's a
>> filter bank , FX or something for our SDIY Modulars. Maybe we hook
>> up a 8-bit µCU with some encoders, display & MIDI I/O and update
>> DSP registers via SPI .
>> I believe some of the code that is being written over on Line6's
>> ToneCore for a smaller DSP56xx could be analyzed and ported.
>> But it is true what Tom says you would have to take the time and
>> dig in that DSP . And everyone knows a lot of the DSP functions if
>> not all can be done with ARM & FPGAs.
>>
>> I say : "Too many ideas never enough time " :)
>>
>> Csaba
>>
>> On Apr 8, 2009, at 6:34 PM, Tom Wiltshire wrote:
>>
>>> I have to agree with Eric on this one. My Soundbite board is
>>> currently sat on the shelf too. This is not because it's not a
>>> good board - it is; 4 stereo ins and outs, 24 bit processing at
>>> 400MHz, etc etc..something like that anyway. The problem is
>>> exactly what Eric identifies. You need to learn your way around a
>>> load of new software to program it (and this is not some neat and
>>> tidy single tool, but a group of applications. Once you've done
>>> that and you're in, you've got to learn how to deal with a DSP.
>>> All in all, it's a pretty big job.
>>>
>>> I'd love the power that something like Soundbite would give me. I
>>> could write some killer digital sound generation stuff with it. I
>>> vaguely had it in mind to use it as the heart of four hybrid voice
>>> modules. Each stereo out would then go to individual analog
>>> processing on a per-voice basis. This is such a cracking idea that
>>> I'll probably have to get to it at some point. Like he said, "Fun
>>> if you're into it but I had other things to do".
>>>
>>> T.
>>>
>>>
>>> On 8 Apr 2009, at 17:01, Eric Brombaugh wrote:
>>>
>>>> Csaba Zvekan wrote:
>>>>> This is really cool idea . Are there any other projects with the
>>>>> SoundBite board? I happened to have that board too as some of
>>>>> you as well. I was wondering if we can get more out of the
>>>>> SoundBite board than just the demo tones and passthrough .
>>>>> Has anybody digged some more into the DSP56371.
>>>>> Maybe we can set up some sort of a repository and share our
>>>>> codes . Kind of like Line6 is doing with their DSP based
>>>>> ToneCore stampbox .
>>>>> Always interested in making some noisy boxes :)
>>>>
>>>> The guy at Freescale who spearheaded the SoundBite board was
>>>> pretty enthusiastic and posted a lot of support material on the
>>>> Freescale site. I think Paul Maddox was pretty serious about
>>>> trying to do some things with it for a while and set up a forum
>>>> for it that seems to have been shut off now.
>>>>
>>>> The biggest problem with the SoundBite board was the fairly
>>>> complex development environment (Eclipse + OpenOCD + GCC) and a
>>>> lack of standard I/O devices. The DSP chip has some GPIO and a
>>>> host SPI port, but no ADCs, UARTs, etc. It would make a good
>>>> peripheral under the control of another chip for MIDI processing
>>>> and/or CVs & knobs, but that requires addition hardware work.
>>>>
>>>> Although the development tools are C-based, using the DSP
>>>> capability of the processor requires getting down into the
>>>> assembly language. Not impossible, but you do have to learn yet
>>>> another processor architecture.
>>>>
>>>> Overall it's a pretty big pile of stuff to absorb. Fun if you're
>>>> into it but I had other things to do. :)
>>>>
>>>> Eric
>>>> _______________________________________________
>>>> Synth-diy mailing list
>>>> Synth-diy at dropmix.xs4all.nl
>>>> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>>>>
>>>
>>>
>>> _______________________________________________
>>> Synth-diy mailing list
>>> Synth-diy at dropmix.xs4all.nl
>>> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>>
>>
>> _______________________________________________
>> Synth-diy mailing list
>> Synth-diy at dropmix.xs4all.nl
>> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
More information about the Synth-diy
mailing list