fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fluid-dev] Is it possible to immigrate FluidSynth to a DSP(ADSP21xxx) o


From: *simple*
Subject: [fluid-dev] Is it possible to immigrate FluidSynth to a DSP(ADSP21xxx) or an CORTEX-M4 CPU?
Date: Tue, 19 Mar 2013 22:17:36 +0800

I plan to immigrate FluidSynth to CORTEX-M4. Could anyone please give me some hints?
 
The Cortex-M4 system I am going to use: 1MByte flash code memory. 192KByte internal SRAM, with FPU, 168MHz, 32MByte external parallel NOR flash (for soundfont). Is it possible to immigrate Fluidsynth to cortex-M4 with these limits (64 polyphony)?
 
I've tried to use optimized cortex-m4 ASM to replace FluidSYnth's lowpass filter, linear interpolation, reverb, chorus. And I also tried to reduced the memory needed down to 240KBytes. At this moment, without concerning the low speed of reading external flash (soundfont), it looks that 192KByte, 168MHz limit would be OK.
 
However, the low speed of reading external flash seems to be a big problem:
 
the flash IC is 90ns, which means you can read 16bits (1 sample point) every 90ns. To make a 64 polyphone rendering, and output at 44.1kHz, for each output sample, you need to read at least 64*2 samples (if linear interpolation is used), this is 128*90ns=11.52us, which is already 50% time of the sample period of 44.1KHz. So, I am afraid I will have to use DMA to do the readings to the audio samples, so that rendering and transfering audio sample data at the same time. This will need some more (maybe 10KBytes) memory buffering space, and increase the complicacy. I wonder if it is really the only choice here to do DMA for transferring audio sample data?
 
Does anybody here have similar question/experience? And what's your solution?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]