FV-1 vs microcontrollers (specifically Teensy 3.6)?

Started by AustinGreyson, May 22, 2020, 08:07:39 AM

Previous topic - Next topic

AustinGreyson

After a few conversations with Mark I'm seriously considering this question. I was totally convinced I wanted to use the FV-1 on an upcoming project but more [hidden links removed] and more I'm thinking I'll just use a Teensy microcontroller. Of course, I don't have the first clue how to make good sounding effects in regular C code, so there is still a big learning curve. I've only been messing with microcontrollers since last summer. Please correct me if I've stated anything incorrectly.

Pros in favor of FV-1:
-supposedly easy to write for
-easy chip to set up and use
-existing code to get me started
-used in a ton of commercial products with great sounds
-good forum of DIY effect builders

FV-1 cons:
-need to program external EEPROM, need a programmer to achieve that. No on-the-fly programming with just a laptop without some fiddling.
-any advanced projects need external switching and logic, possibly external wet/dry blend depending on your personal goals
-reason to doubt the codec quality for some effects
-only 6 MIPS
-SMD only, slight limitation to prototyping

Pros in favor of Teensy (3.5 or 3.6):
-orders of magnitude more processing power, roughly 200 MIPS for teensy 3.6 and 150 for teensy 3.5
-easily programmed from Arduino IDE or any of a number of other dev environments
-use with readily available teensy audio board for easy breadboarding, use nicer AK4556 codec or similar if I make my own board
-any board made to accept a teensy 3.5 or 3.6 is likely to get a HUGE upgrade as Paul continues to produce new and more powerful Teensy boards in the same form factor
-direct access to any control or display scheme one wishes to use
-built-in USB for programming, ability to add USB host or access SD card for various functions
-DIP format for easy breadboarding, all the complicated digital stuff is contained on one board. Home made effect could have Teensy and AK4556 on a schmartboard, mounted to veroboard for the simple analog and power supply stuff.
-helpful forum
-given the available power it's likely to grow in popularity as a guitar effect platform
-any C based code could be ported to something like a SAME70 chip with greatly increased processing power while still using a cheap ($40) development board
-potential for multiple IO; insert effect loop, etc
-about 3-4 times as powerful as the POD 2.0 processor if my research is correct

Cons for Teensy:
-no large body of DSP code available to the best of my knowledge (hope I'm wrong)
-subject to availability of Teensy boards (though code could be made to run on any Kinetis K66 chip)
-breaking new ground at every turn
-not as "cut and dry," processor is general purpose and will likely require more debugging to get a properly working widget.
-architecture not designed for audio/dsp unlike FV-1 or any of number of traditional DSP chips, in spite of power processor may introduce more IO delay because it's not DSP specific.

Digital Larry

#1
I think your summary is pretty good, however from my personal experience, the FV-1 is capable of more complex algorithms than the ESP32-A1S.  No, the ESP32 is not a Teensy, but you can make MHz and core comparisons and it doesn't all add up to an apples vs. oranges comparison.

I'm interested in the Faust language at the moment, although it's one step removed from a truly flexible graphical tool for creating algorithms.  I think a graphical tool is the way to go most of the time, but that's just me.  I got pretty good at writing FV-1 code (though I wouldn't call it easy, especially at first) but I hated doing the same things over and over manually so I spent 2-3 years writing SpinCAD.  Ultimately I got a little frustrated with the FV-1's 3 knobs limitation and occasionally complexity of algorithm limitation (especially combining a reverb with anything else).

My recent fiddling around with the ESP32 and Faust allows me to connect the ESP32 to my WiFi LAN where I can then control it via OSC from my Android tablet or (presumably) Ableton Live, demolishing hardware control input limitations.  I find this very satisfying but it's not what you would call a "pedal" deployment.  However, in some cases I wanted to add a simple low pass or high pass filter to an algorithm, and could not do it without triggering watchdog errors from the ESP32, a sign that you're trying to do too much in a sample cycle.  On an FV-1, simple LP or HP filters are just 2 instructions, and there's no guessing about when you've run out of processing power as it has a hard stop at 128 instructions.

Is it possible that Faust generates inefficient C++ code, or puts stuff into the DSP core that could be handled in the other core?  Yeah, maybe, but again I hate diving in at that level when I just want to rock, you know.

Bottom line, IMO only:
a) The FV-1 will get you a lot further than you might think
b) The FV-1 does not have code compatibility with anything else at all
c) The FV-1 has certain limitations, which may or may not matter to you
d) The FV-1 is more than 10 years old and still going strong, but if you want to make a commercial product, its single source nature might worry you.

I haven't used a Teensy for DSP.  I have a couple 3.2s here but just never bothered.  You might consider a 4.0.  Again I am biased towards Faust at the moment and am basing most of my opinion on this discussion:

https://faust.grame.fr/doc/tutorials/#dsp-on-the-teensy-with-faust
Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?
https://github.com/HolyCityAudio/SpinCAD-Designer