Jump to content

TheSlowGrowth

Programmer
  • Posts

    16
  • Joined

  • Last visited

Profile Information

  • Gender
    Not Telling

TheSlowGrowth's Achievements

MIDIbox Newbie

MIDIbox Newbie (1/4)

0

Reputation

  1. Nevermind - I have a solution... My DAC has a syncronization input that allows to load all channels on a positive edge. I can simply push the data in with a regular SPI task and only need the pull the pin high with the jitter-free timer.
  2. Okay, thats good news. One more question: During one timer callback I have to make multiple SPI transmissions. It is not a good idea to program a task with the highest possible priority that blocks until the hardware is ready for the next transmission. Unfortunately the DMA callback runs at a lower priority (MIOS32_IRQ_PRIO_HIGH) and might be interrupted by other hardware tasks with the same settings, which then causes jitter for the following SPI transmissions to the DAC. I see two possible solutions for this: A) Let the callback run at MIOS32_IRQ_PRIO_HIGHEST. (How can I do this, it seems to be hard coded in MIOS32?) B) Suspend the timer task once it has started the DMA and resume it, once the DMA is ready. The problem is, that I need a highest- priority callback for this as well... It would be cool, if the SPI functions could suspend the task they came from when no callback is supplied. Right now, they just block with a while() loop. What would you do? Thanks you for your help!
  3. Hi! For my current project, I need to output a whole lot of analog audio signals from a STM32F4 core. I can't use I2S - it has too few channels. Instead, I want to hook up a chain of DACs to an SPI pin and supply them with their new values from a task in the software. For this I need a stable timing reference that is capable of calling a callback function with at least 40kHz. The sample rate can be changed accordingly - I don't rely on exactly 44,1kHz or anything like that. Now I wonder, what to use as a timing reference. AFAIK, the MIOS32 timers are µs-accurate, but I wonder if they are stable = have low jitter. If not, what else could I use as a timing reference? Thanks The Slow Growth
  4. kannst du kurz ein Foto reinstellen, wie du die Optokoppler usw. verschaltet hast? Oder einen Schaltplan zeichnen?
  5. @niklasni1: You're right, and that's the problem. Analog outputs are relatively expensive and the chip digitalizes its analog inputs anyway. So IMHO that the least elegant way of controlling the Spin. Unfortunately the problem is the same for the RA-FX1V. @shuriken: I don't know if the RA-FX1V is higher quality than the Spin... But it offers many different reverb algorithms - whereas the spin only has two distinct reverbs. Also, the RA-FX1V has 16 programs and the Spin has only 7. Still, that's no proof of higher quality, but it fits my usecase a lot better. And it makes me think its better.... Actually you're right, they might even offer the same quality.... Okay, you can programm your own algorithms for the Spin. But I have absolutely no clue on programming good reverbs - and reverbs are the most important fx in a synth (at least for me). The RA-FX1V has so many of them, I have better chances finding a usefull one among them. What really bothers me, is that none of the above solutions offer a synced delay.
  6. Just found this: http://www.profusionplc.com/pro/gex/pcatdtl0?ipartno=RA-FX1V Just like the SPIN chip it's not controllable digitally... but it seems bo offer higher quality at a price of 21€
  7. I'm afraid, this is not gonna be cheap...
  8. SpinSemi FV1 looks great, but also very limited - I see no way of controlling this thing digitally. What a pity... dream.fr looks like a good choice. The SAM3703 costs about 9€ and offers all I could ever need. Cool! Seems like I can simply connect an I2S codec and i'm ready go go. I'm just afraid of the complexity... Thanks for your suggestions! I'll dive into that dream.fr stuff and what I can do with it
  9. Hi! I'm looking for a digitally controllable multi fx board to fit into a synth. I'm looking for something with: at least two independent fx channels mono in, stereo out per channel high quality reverb, delay, + some more effects completely controllable via MIDI or any other protocol that can be connected to a MIDIbox small form factor I could go for a general purpose rack mounted fx processor and remove the case+ui. But it seems impossible to find something that can be completely controlled without touching its user interface. Any ideas? Johannes
  10. Hi Thorsten, I just found this thread (german). In short: float f2 = f * 2.29f; Computation time (in cycles): Without FPU (GCC): 41 FPU: 5 float f2 = f / 2.29f; Without FPU (GCC): 155 FPU: 21 So yes, you are right: floating point performance is much slower than int+shift. In terms of code-readability I could introduce simple macros like "MulNormalized(a,b)". I could eventually replace them with DSP assembly code if it helps. Speaking of DSP: I looked at those DSP instructions. Pretty neat! Basically SMMULR does my [(a*b)>>32]. Cool stuff! Thanks for all the valuable links and information! Regards, Johannes
  11. Hi Thorsten, thanks for all those links - I'll take a look at them! One more question: Do you know how fast the floating point unit is, compared to the integer ALU? I mean: Can I afford to process all my audio and control signal as 32bit floating point data? I couldn't find any numbers on the actual processing speed of integer/float commands on the STM32F4. Float obviously has the advantage of being less troublesome when it comes to modulation - e.g. if the maximum value for audio is 1.0 and the maximum for a control signal (from an envelope) is 1.0, I can simply multiply the current audio value with the envelope value and I'm done. With integers, it would be 32768 * 32768 and I would have to add a bitwise shift operation to get back into the desired range. Regards, Johannes
  12. Hi Peter, hi Thorsten, I'd really like to avoid assembly code - I want to keep portability as high as possible, because (if I ever finish it) this is going to be an open source synth and I want it to be open to modification. I'd rather use a second core and deal with some complex inter-chip-communication than sacrifice portability. It's good to see those benchmarks. You wrote its "5..6 times" faster. But where did you find those numbers? For the ATmega644 it states a CoreMark (if thats the right number to look for) of 10.81. The STM32F417IGt6 (which should be from the same series as the one on the core) it states 469.17 … 565.73 depending on the compiler. Which means that the STM32F4 is 40..50 times faster than an ATmega644! Am I missing something? The Discovery board is just 11€ + tax on mouser. I guess i'll just order a few and try it out :) (shipping is 20€ - pffff.) Regards, Johannes
  13. Hi everybody! I'm thinking about building a hybrid synth with the new STM32F4 core. With hybrid, I mean something like the Mutable Instruments Ambika: Digital Oscillators and modulators (envelopes, lfos) but analog filters. I'm thinking about an 8-voice synthesizer with 3 envelopes, 3 lfos, 3 oscillators + noise per voice. Now I'm wondering how powerfull the new STM32F4 core really is. If I wanted to run a total of 24 wavetable-oscillators, 24 envelopes, 24 lfos, and additional things like ringmodulators, noise, ... on it with a samplerate of at least 44.1kHz, would it manage the load? As a comparison: The Ambika uses a separate ATmega@20MHz for each voice. Its signal processing is lofi with mostly 8bits resolution, but some stuff is done at 12 or 16bit. A voice on the Ambika has 2 oscillators, 2 envelopes, 2 lfos and runs at 39kHz (if I read it right). So if I take that as a guide and scale it up - I would need at least 160MHz to run 8 voices in parallel. The DMA of the STM32 makes transferring data a bit lighter and the 32bit architecture makes calculations with 16bits an easy thing. So it could even fit a third oscillator per voice... I know, the comparism to the 8bit ATMega is rubbish. But at least it could give an idea of the workload that comes with such a synthesizer design. I find it really hard to even estimate the power of the STM32F4. what do you think?
×
×
  • Create New...