Getting started with DSP - any suggestions? - Page 1
Forum section: electronics / testgear

author: NewestRigolUser
author_rank: Contributor
timestamp: June 16, 2018, 11:05:16 pm
content: Hi fellows,I'm going to buy my first DSP, soon.I'd like to manupulate audio signals. And as I'm a guitar player, that's my usecase.First I'd like to create highpass and bandpass/-stop filters. Then I'd like to create a chorus, flanger, fuzz, tubescreamer and stuff like this.When I'm more experienced, I'd like to create a reverb and even a delay.And in the end I'd really like to create my own looper - which might need access to external memory.I spent somd hours on searching for the right DSP to start with. The ADAU1701 seems to be very famous - but it lacks on memory for reverb effects.Then I found the ADAU1452. This shall lack on ADC and DAC but it shall have enough memory for a simple reverb.So maybe the ADAU1452 might be a good choice to start with.On the other hand there are TI devices with nice specs, i.e. TMS320C6652 . It hat 600MHz and supports DDR3 memory.But as I'm not yet experienced with DSPs I don't wanna spent more than 200 bucks on my starter setup.I have a signalgenerator, scope (DS1054) and bench PSUs right here. And I'd like to use free software (as there are some devices that require expensive software which would not fit my bill...).What would you guys suggest to use?

author: nctnico
author_rank: Super Contributor
timestamp: June 17, 2018, 12:04:09 am
content: Start with Octave (a free Matlab replacement) first and then test your implementations on a PC. Once you know your algorithms work it is time to add real embedded hardware in the mix. By the way: you should seriously consider using a regular ARM based microcontrollers. These have lots of processing power and are more suitable for general purpose work as well. I'd only consider a DSP if I really need lots of processing power.

author: apblog
author_rank: Regular Contributor
timestamp: June 17, 2018, 12:10:03 am
content: General purpose microcontrollers are so fast now that there isn’t as much need for specialty DSP chips unless you really need maximum performance... And it sounds like you don’t.DSPs can sometimes be difficult to program. I’m thinking in particular of TI C6000 chips where getting maximum performance requires that write you assembly and pay attention to “delay slots”. You have to write your instructions out of order, manually, so they can execute in parallel. It’s a massive pain. The peripherals can be more complex too, and there is less beginner info out there for DSP chips.You might be better off with something like a STM32 or PIC32 series and a nice devel board with audio I/O for learning purposes. Just a thought.

author: NewestRigolUser
author_rank: Contributor
timestamp: June 17, 2018, 12:37:37 am
content: When it comes to cab-impulses or reverb, indeed it needs massive performance. I've read a lot about DSC (digital signal controllers) - but they just have simple filterblocks and are not suiteable for a complex effect unit.Octave sounds interesting, as I don't wanna support Matlab (wrote them a request for pricing 3 month ago and never got an answer - they don't wanna get my money).www.r-project.orgshall be a replacement for Matlab as well. Have to have a closer look at both of themThe advantage of DSPs is flotingpoint operations, memory extensions, as well as anti-aliasing. I plan to have at least 24bit 96kHz - so I'm not sure if there is any ARM that's fast enough for this.Sure, I won't start at those high rates. At the beginning I'm happy is I can pass a signal from input to output, no matter which resolutionEven if it's not easy to get used to program a DSP, I'm willing to learn this. In an ADI world (ADAU-DSPs) there's SigmaStudio which makes the basic setup quite easy. But additional, custom filters need to be creates using Matlab (I hope the free tools might be suitable as well!).Have you guys been playin' around with DSPs?

author: Marco
author_rank: Super Contributor
timestamp: June 17, 2018, 12:57:04 am
content: Calling the configuration of a SigmaDSP programming is being a bit generous.Belais a DSP software/hardware project based on Beaglebone Black which lets you do hard real-time low latency audio processing on it. Plenty of processing power and memory, a ton cheaper than evaluation board from Analog or TI ... only downside, no visual "programming". You have to do actual programming.There is also the STM32F7 discovery kit, it has SDRAM and plenty of power, but you'll be even more on your own in programming it than with Bela. It doesn't seem to have had a lot of uptake for audio DSP among hobbyists.

author: NewestRigolUser
author_rank: Contributor
timestamp: June 17, 2018, 01:12:50 am
content: The BeagleBone's ARM seems to be less powerfull than my old Banana Pi. And it even has less ram. Not sure if it's worth to play around with. Some years ago there's been a project using the first RPi as guitar effect unit. But it wasn't convincing.Using precompiled images usually community support on those SoCs is quite good. But if we're talking about RTOS there might be quite nobody to help you. RTOS still is not famous enough - so I guess working with an DSP might be the better choice (tough I'm not totally up-to-date with newer ARM devices).

author: Marco
author_rank: Super Contributor
timestamp: June 17, 2018, 01:35:08 am
content: All that is true, but your banana pi doesn't have all the software and documentation Bela created.There aren't a lot of SBCs with Linux hard real time support. Basically the Beaglebone Black/Pocketbeagle, the Rasberri Pis and the Zynq. Getting to the point where you can passthrough audio and start DSP programming will likely take you a while on a Pi or Zynq board relative to Bela. It's a whole different ballgame than normal Linux programming, which the guitar effect unit was probably done with. You can't access the audio I/O through the Linux drivers, everything has to happen through the realtime OS running under Linux (Xenomai Cobalt). That's why the Bela project is valuable, it hides most of the nastiness and just gives you samples in and lets you write samples out.As for processing power, if you lack it on a Beaglebone black for handling single channel audio you're doing it wrong.

author: apblog
author_rank: Regular Contributor
timestamp: June 17, 2018, 02:41:00 am
content: The STM32F4 series has floating point and runs at up to 180Mhz. Zynq is ARM based and the low end ones are dual core running at approximately 600Mhz. Plenty of blazing fast non-fpga ARM micros are out there as well.Personally I think that Linux is a waste of time for a simple DSP effects processor. It will just add to your difficulties.Nctnico had the right idea with his suggestion to start in Octave and then move to a PC (for non-realtime file processing tests.). My advice is also to break the problem into manageable segments.

author: Marco
author_rank: Super Contributor
timestamp: June 17, 2018, 03:15:18 am
content: STM32F4 boards won't have a lot of memory, the F7 discovery board does. There are no free hard realtime OS's for most ARM SBCs and bare metal programming on something with that many systems to initialize is a giant headache. The easiest high power SBCs to run hard real time operating systems on are probably x86.With Bela, Linux just configures the hardware for you, if that's all you want it to do ... if you want the network stack or do some scripting on the board it's nice to have Linux, but you can ignore it if you want. The audio processing runs independently on the real time kernel underneath. With the basic pass-through example he'll be ready to add processing code very quickly. He doesn't have to worry about Linux or hardware, but it will be low latency. That's the whole point of using their solution, it solves the hard problems for you.

author: Marco
author_rank: Super Contributor
timestamp: June 17, 2018, 03:55:55 am
content: Quote from: NewestRigolUser on June 17, 2018, 12:37:37 amIt doesn't if you implement itsmart, it's just so much easier to do it stupidly.

author: tsman
author_rank: Frequent Contributor
timestamp: June 17, 2018, 04:06:19 am
content: Quote from: NewestRigolUser on June 17, 2018, 01:12:50 amThe major feature of the TI SoC on the Beaglebone boards is that they've gotProgrammable Real-time Units. They're 2x 200MHz microcontrollers that have access to the SoC peripherals and main memory. You can do a lot of realtime tasks on them that would be a lot more difficult on other SoCs like the Raspberry Pi one.Read this for more info.

author: radiolistener
author_rank: Super Contributor
timestamp: June 17, 2018, 09:21:17 am
content: you can use FPGA for high speed realtime signal processing. It allows you to perform realtime signal processing at very high sample rate (for example 100-200 million samples per second)

author: NewestRigolUser
author_rank: Contributor
timestamp: June 17, 2018, 09:54:58 am
content: Hmmmsounds as the F7 would be a suitable device for that. But I still don't like the idea of using an ARM.I have bad feelings about DAC/DCA quality, reliability on the signal, ressources and EOL (how long will the chip be available? Is it documented well and cheap enough to create my own PCB with? Else it's not worth spending time on it!).Whatlatency might I get using an ARM? Is it compareable to an DSP? 5ms do make a big difference!

author: iMo
author_rank: Super Contributor
timestamp: June 17, 2018, 10:05:44 am
content: QuoteStart small. There is a lot of stuff you have to master before you get what you plan. Unless you acquire a "ready to use box" it will be a long way to go, indeed.An FPGA adds much more barriers to enter. Any better arm/mips based mcu with an external 16bit adc and dac will do your "dsp start" easily..

author: apblog
author_rank: Regular Contributor
timestamp: June 17, 2018, 10:59:11 am
content: Quote from: NewestRigolUser on June 17, 2018, 09:54:58 amIf you are going for quality, external conversion is a must no matter what chip you use.ARM has some of the best documentation I have ever seen, and ST is quite good as well. I wouldn’t worry too much about ST going EOL, and even if it does the port to another ST would be very easy.I think what we are trying to tell you to that might not seem obvious is that “DSP chip” is in many ways just a marketing term. Don’t think that you need a DSP chip to do DSP. The term had real relevance in the 90’s when clock speeds were low and microcontrollers had very simple-minded designs. Architectural enhancements were key to getting any kind of math performance out of a chip.But these days most of those enhancements are found in ordinary processors. Things like excellent DMA, I2S peripherals, floating point, fast multipliers and SIMD instructions are all common now.Modern DSP chips are still better performing than their general purpose counterparts. But that extra performance is now needed for really hard things like radar and real time video processing, not audio.By the way, I did a C6000 project about ten years ago. it was giant pain in part due to (IMHO) TI’s terse and confusing documentation. Never again...

author: Marco
author_rank: Super Contributor
timestamp: June 17, 2018, 02:01:21 pm
content: Quote from: NewestRigolUser on June 17, 2018, 09:54:58 amIt has I2S, people have used it to make asynchronousUSB DACsandsoundcards.QuoteIt's a microcontroller from a major manufacturer.QuoteI doubt you will find anything cheaper with that level of performance which can use DRAM.QuoteWith any hard real time system you will have basically zero latency, if your algorithms are zero latency. It's only when you start using a normal OS such as standard Windows/MacOS/Linux that latency becomes a problem (Linux with Xenomai is a different beast than standard Linux though, Bela also has negligible latency).

author: NewestRigolUser
author_rank: Contributor
timestamp: June 17, 2018, 02:10:52 pm
content: Well, I've got some STM32 right here (from the beginning of the Nucleo-series) and one one hand no good documentation was available whilst on the other hand the toolbox didn't support the boards anymore when I finally wanted to play around with this devices about 1-2 years later.So I don't lije to mess around with STM32 series...but remember: my experience was in the beginning of the Nucleo series! Maybe that changed.STM32 mainly supports IAR Workbench, KEIL and mbed online (at least when I googled it last time). That's none of my favs, as I prefer opensource or freeware.

author: NewestRigolUser
author_rank: Contributor
timestamp: June 17, 2018, 02:15:56 pm
content: QuoteA browser-based scope sounds interesting. Might be a helpful tool to not always start your DSO. Makes developing independent from your bench - I like this idea!But how about 24bit ADC/DACs using 96kHz on beagle bone, might it handle it?//Edit:QuoteDoesn't sound good...QuoteDoesn't sound good, too...

author: Kalvin
author_rank: Super Contributor
timestamp: June 17, 2018, 02:38:15 pm
content: You can get started with a PC and audio card using Octave and C/C++. Record the sounds into a disk file and process the data through the DSP filter/algorithm. You can use Octave or write the code in C/C++/Java/Python and save the processed data into the file for playback. I suggest to start with Octave and then convert the algorithms into C/C++ as you will get results fast in Octave and the target hardware will be using C/C++ anyway. When you get your algorithms working on a PC, it is typically quite trivial to port them to be running on a real target hardware - unless you run into hardware limitations like running out of CPU cycles for real-time processing or RAM. Typically you need to implement hardware specific functions for reading the ADC and writing to DAC and some UI for the user controlling the system. Start with something simple like reading the audio input and outputting it back without any processing. Gradually add some filtering/algorithms. Probably you will end up spending more time implementing the UI than actual filtering stuff.

author: coppice
author_rank: Super Contributor
timestamp: June 17, 2018, 03:26:34 pm
content: For most audio DSP the best place to experiment is on a PC. Even built in sound cards are pretty reasonable these days, and very high quality USB ones are not too expensive. Real time guitar processing needs low latency, and this can be the Achilles heal of many platforms. Nonetheless there is some pretty good open source guitar processing software which runs on PCs without horrendous latency these days.

author: radiolistener
author_rank: Super Contributor
timestamp: June 17, 2018, 04:10:06 pm
content: Here is a demo of guitar effects implemented with FPGA:This is Terasic DE1-SoC board:http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=836Here is another example:

author: Marco
author_rank: Super Contributor
timestamp: June 17, 2018, 06:58:26 pm
content: Quote from: NewestRigolUser on June 17, 2018, 02:15:56 pmApart from long impulse response reverbs there are few audio effects which require a ton of processing power, everything you mentioned is stuff you would have implemented 30 years ago on a 56001 DSP. That's a 33 MMAC DSP, a Beaglebone Black does 4 GMAC with NEON.

author: nctnico
author_rank: Super Contributor
timestamp: June 17, 2018, 07:09:29 pm
content: Either way it is better to create the algorithms first and then see which hardware fits best. Going the other way round is very likely to be a major waste of time. The choosen hardware platform may be overkill (expensive and/or difficult to program) or too limited (time wasted on trying to optimise).

author: radiolistener
author_rank: Super Contributor
timestamp: June 17, 2018, 07:14:48 pm
content: Quote from: NewestRigolUser on June 17, 2018, 02:15:56 pmWith FPGA you can implement DSP for 32bit ADC/DAC 192kHz/Quadraphonic sound end even more

author: PartialDischarge
author_rank: Super Contributor
timestamp: June 17, 2018, 07:46:58 pm
content: Also consider the programming tools/compilers. Their use AND price.With ST you got atollic which is free but with TI...

author: NewestRigolUser
author_rank: Contributor
timestamp: June 17, 2018, 08:12:02 pm
content: Well, IDDE and hardware Debuggers need to be in the bill. ADI hat free Sigma Studio. To be honest on the TI-devices I coudln't find a buy-option for die IDDE. In general I prefer support for opensource-softwareWell, it might be a good way to emulate your filters first on your computer. But what I'm really about ist getting my fingers on an DSP. So my first step will be bypassing a signal. Then some equalization, limiting, modulation-effects. It's more learning by doing, as I can't specify a usecase for a technique I'm not used to.In the end I'd like to have a small device within the size of a stompbox that fits on my floorboard

author: coppice
author_rank: Super Contributor
timestamp: June 17, 2018, 08:17:19 pm
content: Quote from: NewestRigolUser on June 17, 2018, 08:12:02 pmMaybe you couldn't find a buy button because the TI CCS software is a free download since version 7 came out.

author: radiolistener
author_rank: Super Contributor
timestamp: June 17, 2018, 08:19:01 pm
content: Quartus for Altera Cyclone FPGA is free. Evaluation board will cost from $30 to $300, depends on your needs...

author: Berni
author_rank: Super Contributor
timestamp: June 17, 2018, 08:36:53 pm
content: Yep ARM can give you some pretty impressive performance these days. For example the STM32H7 family comes in a easy to solder TQFP and gives you a 400MHz ARM core with a double precision floating point unit. The Attolic Studio IDE that is provided is also easy to use.If you go higher up into ARM SoC chips then you also get the Neon extensions and that pretty much gives it DSP capability. It has instructions for the common DSP math operations and can do up to 4 calculations per clock cycle(or even 16 if you don't need many bits). Combined with the high clock speeds and large number of cores, it makes them even faster than a lot of real DSP chips. But still much like with DSPs getting it to actually do multiple math operations per cycle is pretty complicated so squeezing all of the performance out of it is still pretty involved (Compiler magic, special instructions, special memory arrangements etc).And if you want to go even faster a FPGA is the way to go. Its even more of a pain in the ass to program for since you need to do it in HDL, the algorithms need to be running with fixed point math, its dificult to debug etc. By far the hardest to make it work and the chips can get expensive but it gets you to the processing powers of a modern PC CPU or even beyond. And a modern intel CPU is a pretty bad ass floating point DSP with the extra math instructions (And we are not even getting to GPUs for math).

author: carljrb
author_rank: Contributor
timestamp: June 17, 2018, 09:27:05 pm
content: I've done a few boards with SigmaDSP's and I'm glad to have moved on. It's easy to get started if you know nothing, but then it just becomes very limiting, and everything was just too undocumented (like what values to pass to change parameters).ARM Cortex M4F and M7 MCUs are pretty good overall. I'm moving to the STM32F7 myself. They're not quite as powerful as something like SHARC or Blackfin but it's a lot easier (not a big fan of my blackfin board really, and CCES is $1000+ too). As for FPGAs, they're a nice tool and they're quite capable, but the idea of having to convert from I2S, processing the sound (somehow translating your sound processing code into an HDL) then back into I2S -- plus configuring codecs and what not, all in HDL... seems kinda daunting to me.Edit: you might like this comparison:https://dspconcepts.com/sites/default/files/pd8_beckmann.pdfEdit2: As for the TMS320C6652, good luck with that! It's a 625 pin BGA, and if you want DDR3 to go with it then that's starting to be quite an "advanced" PCB!

author: mark03
author_rank: Frequent Contributor
timestamp: June 17, 2018, 10:06:11 pm
content: You don't really say what your level of experience is with embedded SW dev. If you don't already have a good working familiarity with an embedded architecture (ARM, a DSP, or otherwise), you'd be crazy to dive into writing DSP code as a "gateway drug". I strongly endorse the initial reply, to "do it in Octave first," except in place of Octave, I might prefer Python with numpy/scipy. Whatever is most comfortable for you. But you really want to get things working in an enviroment where you can plot waveforms on the screen, halt, single-step, and debug at will. None of that is easy on an embedded target when you are sampling signals in real time.

author: rstofer
author_rank: Super Contributor
timestamp: June 17, 2018, 11:11:24 pm
content: How about the Analog Devices Blackfin? It is intended for DSP. It lacks an MMU so it has to run uClinux if an OS is even needed.

author: maginnovision
author_rank: Super Contributor
timestamp: June 17, 2018, 11:22:57 pm
content: Yet another option is an xmos uC. They are primarily used for audio stuff these days and you can get a dev board with everything(or almost)you usually need. I use them for robotics so I'm not entirely sure but that is what they market them as. Sort of a cross between dsp and standard uc.

author: NewestRigolUser
author_rank: Contributor
timestamp: June 18, 2018, 12:08:39 am
content: I spent lots of time on AtMegas and AtTinys and I developed an own PCB for nRF51. I'm more the hardware-guy - but I wanna lern the softwarepart as wellI was always excited about learning how microcontrollers and electronics in general work - now as I understand them and I can use them I wanna get to a higher level. That's where DSPs come in.To be honest: I would like to solder a TMS320C6652's BGA myselfWe got a Ersa PL550 at work - but first I'd give it a shoot on a cheap asian 300 bucks reworkstation.But first I need to choose a device and master the softwareside - that's what I'd like to learn.Blackfin is on my list, have to read some specs about it. Xmos I've never heard.

author: nctnico
author_rank: Super Contributor
timestamp: June 18, 2018, 12:23:46 am
content: Quote from: NewestRigolUser on June 18, 2018, 12:08:39 amAgain: work out the algorithm first and then choose the hardware. Trust me: debugging code on an embedded platform just sucks even with a $500k in circuit emulator/debugger. It will never give you the freedom and features you have for free on a PC. I get that you want to get your hands dirty on some hardware but then the goal of your project has to be tinkering with DSP hardware and not creating an actual project.

author: Marco
author_rank: Super Contributor
timestamp: June 18, 2018, 12:35:39 am
content: Quote from: mark03 on June 17, 2018, 10:06:11 pmIf he wants to understand the field of audio DSP and knows enough algebra I'd direct him to read back issues of Computer Music Journal and some books on the topic. Tinkering in Matlab/Octave isn't going to teach him.None of the effects he mentioned are worth reimplementing if you understand the algorithms, there's a million implementations already, just copy paste code from Csound or something. If he wants to know how to create a flexible, low cost, low latency DSP system to run audio DSP code, that's entirely orthogonal ... and something which actually hasn't been done outside Bela. I think there is room for more products. There are certainly lower cost hardware platforms than the Beaglebone Black.I think a platform based on an Allwinner H2+/H3 board would be interesting. Can't compete with the prices of that hardware. Use Xen to run Linux on one core and run FreeRTOS on the other 3 to do audio I/O and processing. Simpler said than done, but most of the building blocks are there (Xen supports H2+/H3, FreeRTOS supports Xen and Arm). Ideally it would be able to run Carla and have the LV2 plugins and audio I/O run in the FreeRTOS realms ... even less simply done, but would give you access to a huge library of audio effects and a GUI to configure them.

author: carljrb
author_rank: Contributor
timestamp: June 18, 2018, 01:19:40 am
content: Quote from: NewestRigolUser on June 18, 2018, 12:08:39 amI hate to say this, but this old 8 bitter stuff (blinking LEDs and such) is beginner-level and it has little to nothing to do with this DSP stuff... You'll need a LOT more knowledge in terms of software and math.Quote from: NewestRigolUser on June 18, 2018, 12:08:39 amSoldering this part will be the easiest part of the project by far! The problem with this BGA isn't the soldering, it's the whole 10 layer PCB with micro vias, ~4mil traces and the like (a batch of proto PCBs will likely cost you $1000, and many places will cost you more than that in NRE fees!) Months of work floor planning the PCB, escape routing, length matching, calculating controlled impedances for your own stackup for everything, PDN planning, making sure there won't be EMI/EMC/SI problems and the like... You'll need to have access to fairly pricey and advanced tools, to be very good at something like Allegro and much more. It's a job for a small team of experienced engineers with a sizeable budget. Then of course there's the math/audio/DSP part too which can take many years by itself...Octave/Mathlab/python can be good options to learn. If anything, you should look into how it all works first. Chances are you'll completely change your mind, or go with something more beginner-friendly like SigmaDSP.A couple good options:https://www.coursera.org/learn/audio-signal-processinghttp://www.eas.uccs.edu/~mwickert/ece5655/

author: rhb
author_rank: Super Contributor
timestamp: June 18, 2018, 02:50:30 am
content: I spent 30 years in the oil industry doing DSP at scales you cannot imagine ( e.g. 10,000 Xeon cores for 2 weeks). Listen to nctnico. Develop your algorithms first using Octave and a WAV file as input. R is not a good fit for what you want to do. R is for statistical analysis. Octave is for linear algebra. You want to do linear algebra. After you have the algorithm developed figure out what you need for hardware. A Zynq is pretty much ideal. A Zybo Z7 has audio I/O all set up ready to go. You've got dual ARM cores with NEON FPUs and an FPGA for the heavy lifting. I can make a recording in your shower sound like Carnegie hall with one. Well, at least once I learn to program the FPGA ;-)You're going to find that the mathematics of DSP require a significant amount of effort to master. And there is no way to avoid it.Get copies of:Principles of Digital AudioKen C. PohlmannandDAFX: Digital Audio Effectsed Udo ZolzerI've not read either of these. I bought them because they looked like good treatments of a niche subject. I can do anything in them from scratch. I bought them because I'm lazy and if I can get something going in an hour or two just one time using a book it's a bargain relative to spending a day working it out from first principles.

author: radiolistener
author_rank: Super Contributor
timestamp: June 18, 2018, 03:31:54 am
content: here is nice and small board to start:https://www.amazon.com/TERASIC-TECHNOLOGIES-CYCLONE-EP4CE22F17C6N-DE0-NANO/dp/B00MEKRXAEAlso, if you want budget solution, you can get these modules:1) FPGA module + USB Blaster:https://www.aliexpress.com/item/fpga-development-board-EP4CE22E22C8N-board-altera-fpga-board-altera-board-USB-Blaster/32834582202.html2) Sound module:https://www.aliexpress.com/item/FREE-SHIPPING-Wm8731-module-audio-module-mcu-fpga-music/1674210328.htmlIf your DSP needs a lot of memory, there is another module with SDRAM on the board:https://www.aliexpress.com/item/cyclone-iv-board-E22-core-board-altera-fpga-board-altera-board-fpga-development-board-EP4CE22f17C8N/32853228751.htmlIf you want to buy cheap entry level FPGA just to start, here it is:https://www.aliexpress.com/store/product/xilinx-fpga-development-board-spartan6-xilinx-spartan-6-XC6SLX45-xilinx-board-xilinx-spartan-6/620372_967529392.htmlIf you don't have USB-Blaster, you can buy it together:https://www.aliexpress.com/item/EP4CE6-altera-fpga-development-board-USB-Blaster-fpga-kit-altera-kit-fpga-board-altera-board/32812957811.htmlIt's power pretty enough to implement some DSP filters and effects.But if you're planning to implement high quality and very heavy filters, it's better to buy more powerful FPGA...But note, these Chinese USB-Blasters is not original, it may not works with the latest drivers. If it doesn't works, you will need to install old USB Blaster drivers from Quartus 13So, you can buy 6k FPGA module and sound module just for $35. Also you will need 5V power supply and some wires in order to connect it together and start learning Verilog language and implement your first FPGA design. The seller can provide you with some examples to start... When you learn FPGA basics you can start implementing your first DSP...$35 is just one lunch and a couple of bottles of beer, I think this is no so expensive to start learning FPGA and DSP

author: carljrb
author_rank: Contributor
timestamp: June 18, 2018, 04:04:44 am
content: Quote from: radiolistener on June 18, 2018, 03:31:54 amThey still work fine with the drivers from Quartus 18 located in C:\intelFPGA_lite\18.0\quartus\drivers or similar.

author: Marco
author_rank: Super Contributor
timestamp: June 18, 2018, 04:05:13 am
content: Fixed point programming on a FPGA ... well that's a surefire way to never implement a whole lot. Implementing one or two effect algorithms on a FPGA are a good way to motivate yourself to learn FPGA programming, but FPGA's don't make a lick of sense for an audio DSP platform.

author: radiolistener
author_rank: Super Contributor
timestamp: June 18, 2018, 04:20:27 am
content: Quote from: Marco on June 18, 2018, 04:05:13 amwith FPGA you can do things which is impossible on classic processors...You can even create your own ARM core processor inside FPGA to execute some code...Very high speed, extreme low latency and high quality realtime DSP... This is FPGAQuote from: carljrb on June 18, 2018, 04:04:44 amAs I know, they send different versions in the same box (with different controller PIC, STM32 and Cypress).Some versions works ok with the latest driver, but some other require old drivers...

author: carljrb
author_rank: Contributor
timestamp: June 18, 2018, 04:51:28 am
content: It can do a lot, but now you just expected him to pick up FPGAs as a preliminary topic on top of everything else. Why not design your own softcore CPU with that indeed? This will only add a few more years to his project, along with the necessary math and DSP knowledge. Coding audio effects and filters in VHDL/Verilog (while talking to a codec over I2S + config over I2C no less) isn't exactly beginner level... I mean, I already use FPGAs and do audio DSP work and it's still beyond my current skills.

author: NewestRigolUser
author_rank: Contributor
timestamp: June 18, 2018, 05:12:37 am
content: FPGA sounds quite nice - but it's hardware to emulate other hardware to do calculations for softwareI wanted to use.I'd like to understand FPGA as well as DSP. But it seems that timt is the limiting factor.I'd be glad to spend month or even years on this hobbyproject. But learning HDL plus learning DSP plus implementind DSP on FPGA plus playing around with this seems to be a lot more than what should be needed at the beginning.I need it to be ready to forward a signal from input to output, really soon. If I can't see any success it won't be fun working with it. So maybe the SigmaSDPs are what I want.

author: radiolistener
author_rank: Super Contributor
timestamp: June 18, 2018, 05:15:15 am
content: carljrb:ok, I agree, audio processing with simple effects is a not big deal and can be done on DSP or some kind of raspberry pi.Actually it can be done on any modern notebook, and there is no need to deal with microcontrollers, DSP or FPGA at all...But if I understand correctly, NewestRigolUser interesting to learn something fast and powerful...And I think FPGA is a good starting point for that...Here is source code for FPGA-based multi-effects system for the electric guitar (from video above):https://github.com/Vladilit/fpga-multi-effectYou can found nice document here:https://github.com/Vladilit/fpga-multi-effect/blob/master/FPGA%20Design%20and%20Implementation%20of%20Electric%20Guitar%20Audio%20Effects%20-%20Project%20Report.pdfUsing it you can reproduce this project with no programming at all... Just buy this Zedboard Zynq 7000 demoboard and use provided source code and manual. There is detailed information about different effects, how it works, etc...You can found some measurements, latency time (with all effects enabled) is just 1.1 ms... Incredible!

author: Marco
author_rank: Super Contributor
timestamp: June 18, 2018, 06:06:57 am
content: A 10$ SBC has >10 GFLOPs of programmable power not even counting the GPU ... a cheap FPGA isn't even going to equal that.

author: radiolistener
author_rank: Super Contributor
timestamp: June 18, 2018, 06:28:27 am
content: Quote from: Marco on June 18, 2018, 06:06:57 amZynq-7000 FPGA (used for guitar effect project from link above) has floating-point performance 778 GFLOPs and fixed-point performance 2622 GMACS.Arria 10 FPGA are rated to 1500 GFLOPs.Stratix 10 FPGA are rated to 10000 GFLOPs.Cheap Cyclone IV FPGA has for about 27 GFLOPs.Here is performance comparison graph for TI DSP and Altera FPGA:

author: Marco
author_rank: Super Contributor
timestamp: June 18, 2018, 06:55:13 am
content: That's padded by a factor of 4 simply because they count it based on adders instead of FMA, throw in some more optimistic estimation and it decreases by 5-10. A Zynq or Cyclone V also costs about 10x what a H2+/H3 IC cost. The cheap FPGA's are small Spartans and ICE40s.More importantly, any effect you could implement in the FPGA you could implement just as well on the ARM cores in them and be done a whole lot faster. Audio just isn't all that much data, you run out of ways to spend cycles. Unless you do stupid things like implementing a long impulse response filter with pure time domain processing.PS. the 444K LC version that GFLOPs number is for is more like a 1000x more expensive than a H2+/H3.

author: radiolistener
author_rank: Super Contributor
timestamp: June 18, 2018, 07:10:44 am
content: Quote from: Marco on June 18, 2018, 06:55:13 amCheap Cyclone IV evaluation board costs for about $15...$30 on aliexpress.Yes, there is no peripherals, just FPGA, several LEDs and buttons.But I think this is pretty cheap price for entry level board

author: Berni
author_rank: Super Contributor
timestamp: June 18, 2018, 07:18:47 am
content: This is why running things with fixed point math is often a requirement on FPGAs. It gives a massive boost to math performance (Even more so if you count add/substract as part of those math operations). On CPUs with hardware FPUs there is usually little difference between 32bit fixed point and single precision float.Okay FPGAs still will cost more but will deliver fixed point math performance far beyond most CPU and do it while burning single digit watts of power. But it takes a LOT of work to make it run inside it.If you are going for raw GFLOPS performance then by far the best performance per price is simply getting a cheap PC and putting a $200 graphics card in it. Its big, it uses a lot of power, but its cheap and gives performance orders of magnitude faster than anything else.

author: radiolistener
author_rank: Super Contributor
timestamp: June 18, 2018, 07:25:48 am
content: Quote from: Marco on June 18, 2018, 06:55:13 amHigh quality audio with high dynamic range requires a lot of resources. There is always a fight between quality and simplicity...Here is comparison between TI DSP and Altera Cyclone II FPGA implementation of wavelet transform benchmark for image processing:

author: rhb
author_rank: Super Contributor
timestamp: June 18, 2018, 11:23:51 am
content: The big advantage of an FPGA with embedded ARM cores is the ability to prototype the DSP algorithms on the ARM and then move the cycle intensive parts to the FPGA fabric.But first you need to understand the discrete Fourier transform, the relationship between convolution and multiplication, sampling, phase and a *lot* more. I suggested a couple of audio focused books. I can suggest more purely DSP books if you prefer. If you don't already know the calculus the mathematics will be challenging. WAV files and Octave are the way to learn DSP/DAFX.While there are plenty of cheap FPGA boards, the quality of the documentation and supporting tutorials varies. After I bought the Zybo Z7-20 I bought a MicroZed just for the excellent series of tutorials for it.

author: mark03
author_rank: Frequent Contributor
timestamp: June 18, 2018, 06:00:32 pm
content: Quote from: NewestRigolUser on June 18, 2018, 12:08:39 amReading this thread is a hoot; the phrase "herding cats" comes to mindYou're getting advice in 100 different directions. But it sounds like you know enough to have some fun learning more, which is what matters, otherwise you lose motivation and nothing happens.Definitely start by coding up some simple algorithms on a PC and running them on WAV files. If you have any Python experience whatsoever, don't use Octave, use Python, it's the future. If you don't have any Python experience, you should still consider using Python... unless you *do* have MATLAB experience and the transferability of that experience is paramount for you.When you're ready to try an embedded target, I highly recommend a fast ARM Cortex-M7. While not quite as turn-key as IAR, Keil, etc., you can set up a fully open-source dev environment with Eclipse; this even has official support from many of the MCU vendors. Google "MCU on Eclipse" for set-up guides. I am currently prototyping a noise-cancelation system using adaptive FIR filters with thousands of taps, on an STM32F7 discovery board. For $90 the NXP IMX RT1050 eval kit is another Cortex-M7 that's three times faster with gobs of on-chip RAM. ARM provides a basic DSP library with free source code. Going the ARM route lets you leverage an enormous amount of tech support and cheap or free dev tools. IMO it's becoming quite difficult to justify using a "real DSP chip" anymore.This assumes that you need low latency through your DSP system. If you're willing to buffer for 0.1 second or something like that to deal with the limits of an OS like Linux, then the mainstream single-board computers may be attractive. Certainly you can prototype faster in that environment. But I would assume you want lower latency for a live guitar effect? And besides, with your background, I think moving to a more complex and capable MCU is a logical next step.

author: Howardlong
author_rank: Super Contributor
timestamp: June 18, 2018, 07:42:50 pm
content: Quote from: nctnico on June 17, 2018, 12:04:09 amThere’s a lot to agree with here.The OP has a number of significant hoops to jump through.Understanding basic DSP IMHO is best done on the PC first.Octave isn’t a bad start, but frankly you can also do an awful lot with just Excel - yes, a spreadsheet - and you’ll learn a fair bit while you’re at it.Get those algorithms working with various generated test data sets on your PC in batch mode first, in Octave and then C.The drawback of PCs is latency. But that does not stop you using ready-made wav files and processing and listening to them real time. The benefit of the PC is that you can generate massive amounts of reproducible test dataon demand, and test in a native environment.My personal method is to always have working C code with the algorthm working on both the PC and the embedded hardware, it makes it easy to separate if your errors are due to hardware or algorithm. Sometimes you have to hit assembly language, and have a knowledge of pipelines, memory busses, wait states, optimum register loading techniques and maximising throughput for a given target processor. Sometimes that means re-working your algorithms to minimise memory I/O and maximise target processor core register usage, such as on ARM.M4F indeed isn’t a bad way to go, but it isn’t the same as a “proper” DSP, but that is probably a good thing when you’re starting out. Just be aware that a few of the CMSIS DSP functions are not optimised, despite what you might think, but they are definitely a good place to start. The floating point on M4F I found to be similar speedoverallto using its fixed point DSP extensions in many applications especially once optimised.On the hardware side, for audio you need a demo board with an audio codec and a decent set of example demo code. Start by getting it to generate a sine wave, the blinky of DSP.Unless the OP already has a good grounding in FPGA, I really wouldn’t recommend touching FPGA with a barge pole: the OP already has to deal with understanding DSP itself. The complexities of getting an FPGA based solution to work is a horrendously steep learning curve and an unnecessary distraction for what they are looking to achieve. That distraction is far more likely to leave the OP completely overwhelmed, with no end result at all.I would also resist the Linux route, again there is a latency issue, but also if you are looking to make something low power that’s battery powered from a PP3 or a pair of AAs, Linux is probably something best avoided.Stick to the PC, plus a microcontroller (preferably with floting point) demo board with an audio codec.

author: NewestRigolUser
author_rank: Contributor
timestamp: June 18, 2018, 08:39:41 pm
content: Using a PC is not a good idea. It'heavy, uses a lot of power, has waaaaay too long boot times, doesn't fit a guitar player's floorboard.If I wanna run a PC I just use Cubase/Reaper and a bench of free VSTsMarco, what is SBC?Well whilst FPGA needs to be using HDL usingan SigmaDSP Icould simply setupmy device with the Sigma Studio's GUI and add some custom filters. Sounds good for me, as it looks like fast progress.On FPGA I might be less flexible in comparison to a DSP, don't I?At the moment I wonder if an ADAU1452 might be a good device for beginning. But still no idea how to add external ram for a looper(... later).

author: coppice
author_rank: Super Contributor
timestamp: June 18, 2018, 08:49:49 pm
content: Quote from: NewestRigolUser on June 18, 2018, 08:39:41 pmYou seem to think the ADAU1452 is a general purpose DSP. It isn't. Its a very constrained device. If you want to, say, convolve to simulate a speaker cabinet its a good choice. If you want to implement guitar effects its definitely not the right choice.

author: Marco
author_rank: Super Contributor
timestamp: June 18, 2018, 09:26:31 pm
content: Quote from: NewestRigolUser on June 18, 2018, 08:39:41 pmSingle Board Computer, generally referring toARM boardscapable of running Linux, but could also refer to small x86 boards like those from Udoo.Doing any hard real time low latency work on these SBCs is not easy though, Bela is one of the few systems which does it. It's certainly possible, but a fair amount of work requiring low level system programming.QuoteWhen they say it's fully programmable, they mean it's "fully programmable". You can wire together the algorithms they provided and turn some knobs and that's it.

author: Howardlong
author_rank: Super Contributor
timestamp: June 18, 2018, 10:55:21 pm
content: Quote from: NewestRigolUser on June 18, 2018, 08:39:41 pmYou're misunderstanding what I mean.The intention is _not_ to run the code on your PC for the final product, it's to get them right in a familiar environment first, then port.You test and fix your algorithms in an easy environment first, where you can develop quickly and easily, where you have plenty of tools. You then port your code to your embedded target. Apart from the simplest of tasks, you'll probably have to iterate this process, as you often find you have to optimise your algorithm on the embedded hardware, but at least you know if your algorithm is sound before adding that layer of complexity.If you want to implement your DSP algorithms directly on the embedded hardware, you're welcome to. I just don't recommend it unless you already live and breathe that target environment, and are very familiar with it. Like I said, I maintain common algorithm C code for both PC and target. You can test, retest and debug controlled and repeatable scenarios far more quickly that way. For example, if you've ever tried to debug a data demodulator on target hardware alone, you'll know how hard it is.

author: NewestRigolUser
author_rank: Contributor
timestamp: June 18, 2018, 10:59:54 pm
content: Quote from: coppice on June 18, 2018, 08:49:49 pmHow would you know that?I've read the SigmaStudio Reverb would have enough memoty to be used on this device - that's what lets me think it might be a good choice.Emulating speaker cabinets is far away on my list. First I need to pass my signal through and do some EQingCould you suggest a SigmaDSP that is suiteable for EQ, reverb, (with external ram) as looper, distortion, cab-impulses (speaker-sim)?Or do you think the SigmaDSPs aren't suiteable for my purpose?Quote from: Howardlong on June 18, 2018, 10:55:21 pmThat it is. Of course I need to emulate my algorythms on my computer first. But as I really wanted to get started using DSPs I wills tart with easy tasks like passing my signal from ADC to DAC, then do small EQing and so on. Writing own filters is one of tha last tasks, as a prerequirement is I know what my DSP will be able to do and how to tell 'em how to

author: radiolistener
author_rank: Super Contributor
timestamp: June 18, 2018, 11:11:14 pm
content: Quote from: NewestRigolUser on June 18, 2018, 08:39:41 pmEverything is exactly the opposite.With FPGA you will be more flexible and get fast and low latency result with smaller code and low power consumption.But FPGA requires to learn Verilog/VHDL. And needs to understand what you're doing.Because FPGA works quite differently than usual processors.If you already know these ATMega arduino controllers, then using DSP/ARM probably will be more easy for you.The result will not be so fast and powerful as FPGA. And you will need to write 5-10 times more code than for FPGA.But at least it will be more easy to learn

author: Marco
author_rank: Super Contributor
timestamp: June 18, 2018, 11:34:51 pm
content: Smaller code? That's some strange definition of small.

author: NewestRigolUser
author_rank: Contributor
timestamp: June 18, 2018, 11:38:08 pm
content: I think understanding how to use an FPGA, plus using it as DSP, plus learning the algorithms is waaaaay more difficult as starting with an DSP which has a GUI (like those SigmaDSPs).As I don't exactly know how to get sounds I like, I prefer the DSP to play around with.Maybe I'll start over with FPGA after some years.I exspect DSPs to be more difficult and way more powerful than 8-bit MCUs. Well, and easier to understand than FPGA

author: NewestRigolUser
author_rank: Contributor
timestamp: June 19, 2018, 12:02:25 am
content: Here's an overview for SigmaDSPs:http://www.analog.com/en/products/processors-dsp/dsp/sigmadsp-audio-processors.html

author: Marco
author_rank: Super Contributor
timestamp: June 19, 2018, 12:14:06 am
content: If you are happy with the exact set of effects they provide and will not miss any they don't and only want to make yet another limited adau box, go for it.

author: NewestRigolUser
author_rank: Contributor
timestamp: June 19, 2018, 12:21:13 am
content: I'd like to have some effects out-of-the box (which provides SigmaStudio) as well as the ability to add own filters.Just googled the Blackfin boards, there are 3 available within the pricerange of 265 bucks:584-ADZS-BF592EZLITE 185€https://www.mouser.de/ProductDetail/Analog-Devices/ADZS-BF592-EZLITE?qs=sGAEpiMZZMsZOJ0x%252bXAYs97eBBl6W06mXK3AA1sTbP8%3d584-ADZS-BF537-STAMP 188€https://www.mouser.de/ProductDetail/Analog-Devices/ADZS-BF537-STAMP?qs=sGAEpiMZZMsZOJ0x%252bXAYs97eBBl6W06mRSy1jakl6aI%3d584-ADZS-BF609-EZBRD 265€https://www.mouser.de/ProductDetail/Analog-Devices/ADZS-BF609-EZBRD?qs=sGAEpiMZZMsZOJ0x%252bXAYs97eBBl6W06mQwleP9jc0kE%3d(well, I'm located in Germany so prices are €)On the Blackfin boards there are i.e. ADAU1761 used as audio codecs. Looks like real magic happens on the Blackfin, whilst equalization happens on the ADAU1761 as advanced codec.

author: coppice
author_rank: Super Contributor
timestamp: June 19, 2018, 10:54:25 am
content: Quote from: NewestRigolUser on June 18, 2018, 10:59:54 pmOh, you know. Things like expertise and reading the documentation.The SigmaDSP range is fine for simple filtering. Most guitar effects require non-linear processing (basically any of the effects introducing some type of distortion). You won't get far trying to implement those on a SigmaDSP. The linear filtering stuff, like equalisation, is exactly what the SimgaDSP was designed for, and it will do a good job with those tasks.

author: NewestRigolUser
author_rank: Contributor
timestamp: June 19, 2018, 10:57:43 am
content: Well, any suggestions for a beginner DSP in this case?I#d like to keep the bill below 200$ (if possible) for board + programmer/debugger (if it isn't onboard) and software (if there's no opensource or freeware available).

author: Howardlong
author_rank: Super Contributor
timestamp: June 19, 2018, 02:32:43 pm
content: Quote from: NewestRigolUser on June 19, 2018, 10:57:43 amMy first embedded hardware real DSP experiences were with a TMS320VC33 and subsequently the TMS320C6713 and TMS320C6726. In those days, Rulph Chassaing's (RIP) Digital Signal Processing books were godsends: in the books he came up with many practical experiments using various TI vendor DSKs like those for the the TMS320C31 and TMS320C6713. You can see a PDF copy of the 6713 book here:http://www.stu.edu.vn/uploads/documents/260809-140534.pdf.Thankfully, Donald Reay worked with Chassaing, and carried on the Digital Signal Processing series. I note that there is now one book for the ARM Cortex M4 (covering specifically both the TM4C123 LaunchPad & audio booster pack, and STM32F407 Discovery & Wolfson Pi audio card, both are M4F devices) and another book for the OMAP-L138 Experimenter board.I've had a quick skim through the M4 book, it looks like it's the kind of thing that would suit you.

author: Howardlong
author_rank: Super Contributor
timestamp: June 19, 2018, 06:42:04 pm
content: I also see that the Donald Reay M4 book has code in its online section that supports the Cypress FM4-176L-S6E2CC board which includes the codec onboard, so it’s a neater solution.It appears that the CircuitCo audio booster pack was never distributed in volume, which sadly discounts the TM4C123 option unless you want to figure out the codec hardware yourself.One thing I’ve found with DSP devices is that their vendor support dwindles more quickly than more general purpose MCUs. You might be able to source the devices, but the dev kits and associated documentation starts disappearing comparatively quickly.

author: _Wim_
author_rank: Super Contributor
timestamp: June 19, 2018, 07:28:05 pm
content: Quote from: NewestRigolUser on June 18, 2018, 10:59:54 pmI agree here what other had to say, Sigma Studio is very easy to set up, but can be very limiting. You can download the software for free (http://www.analog.com/en/design-center/processors-and-dsp/evaluation-and-development-software/ss_sigst_02.html#dsp-relatedsoftware) and have a play around with it, it does not require you to have a device connected. "Programming" is on the same level as adjusting a VST-plugin...As a learning tool, this software can be interesting:http://www.dsprobotics.comI played around with it may years ago, and for education purposes, it was very good...

author: NewestRigolUser
author_rank: Contributor
timestamp: June 19, 2018, 09:05:45 pm
content: Already installed SigmaStudio. But as I'm abroad for two weeks, I'm unable to really get a first impression right now.