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