Am 09.04.2012 19:16, schrieb robert bristow-johnson:

i hadn't heard of this dev board before. at http://www.st.com/internet/evalboard/product/252419.jsp it says that the single unit prices is US$14.9 . is that right? that's nearly free.

yes exactly. it's cheaper than buying the cortex m4 chip alone.
and you get a stereo codec (with limiter and equalizer), a class d amplifier, a accelerometer and a mic for free.

a programmer/debugger is also directly on the dev board (st-link via usb)

where do the software tools (the compiler/linker/loader/etc) come from?

at the moment i'm using a free toolchain consisting of
Eclipse,
ARM GCC
and the st-link-gdb server delivered with the free version of attolic studio.

there is also a stand alone loader tool for the st-link.

regarding wavetable indexing, somewhere Julian must be converting float to int, no? i am still convinced that the correct way to implement it is with pure integer arithmetic.

yes, the codec expects signed 16-bit integer as input.
and for the table index I slit the phase result to an integer and a fractional value as float (used for the interpolation) The integer arithmetic point could be valid. 2 or 3 years ago i made a AVR wavetable synth and i can't remember any fluttering overtones there. The AVR used an integer phase accumulator.



to implement a good NCO, you need a lot of bits in the phase accumulator. i might think that 32 would be enough. if there are 256 points in the wavetable, then the top 8 bits go to indexing into the wavetable and the bottom 24 bits are used for interpolation between points. usually, for mid-quality synthesis, a 256-point wavetable oughta be good enough, but you might want it a little bigger. maybe 1024 points. that leaves 22 bits for the interpolation. if you have enough points in the wavetable, then linear interpolation oughta be good enough.

Julian, are are you willing to plop up more code? if you want, i'll dig up a snippet for how to do this without if statements and without floating-point phase accumulator. and with linear interpolation. it's pretty straight forward.

If I can't get it to work that would be very welcome.
I guess I'll try to implement an integer version now, and if that doesn't work i'll get back with more code. ;)

thanks a lot for the help so far.

julian

--
dupswapdrop -- the music-dsp mailing list and website:
subscription info, FAQ, source code archive, list archive, book reviews, dsp 
links
http://music.columbia.edu/cmc/music-dsp
http://music.columbia.edu/mailman/listinfo/music-dsp

Reply via email to