Hope you enjoy this video series on DSP for audio! Let me know if you have any questions or comments :) New mixed-signal hardware design course with KiCad v6 - with updated pricing! ⏵Course sign-up: phils-lab-shop.fedevel.education ⏵Course content: www.phils-lab.net/courses
Thanks Phil for updating the pricing! I am finally able to go for the $149 one. The $99 one was too bad for hobbyists due to the time constraint and lack of download whereas the business one was too expensive for the regular Joe. Thanks again for providing quality content and listening to your followers!
Awesome, one thing I really love about it is - Linux compatible! If I could - I would get one! Maybe some day... Also thank you Phil, really love STM32 and all about Digital Audio!!!
Your explanation of the 1st-order low-pass filter is clear. It makes me confident that I could implement it. Excellent video which doesn't skip over important details. Well done, and thanks for posting. I look forward to the rest of the series.
As a soon-to-be CS graduate who's looking to get into embedded software development as a career, these videos are invaluable to me! Your video on how to write a driver for stm32 is basically the blueprint on how i try to write software still.
This is really good stuff. I really like how you are going into the meat of the content and then summing it all up with a real world example. As some others have said, I'd gladly pay for a DSP course. Lastly, nice socks.
as an embedded developer, its really hard to solder another opamp resistor to settle or attenuate the signal to the mcu. i'm using i2s channel for trying it out the circuit. i put an adc like you did... and i'm chilling when i need to change attenuation factor or lpf settings because of very fast mcu's nowadays. (we are not populating these ic's at production btw) when i'm in the university, there were only the pic family. 20mhz at best ahhaha:)... now i have 168mhz or 240 mhz mcu with fpu and dma and fast i2s peripheral.. weather is clear for embedded engineers... :)
Careful there Phil, you might start undercutting some pedal companies' $600 effects pedals :) An experiment I would really like to see is how *underpowered* you can make your hardware and still get some effects going? E.G, what sort of frequency can you run the CPU and still get real-time processing with floating point / integer math?
@@velvetsound That is around £309 ? But it is not an experimentation platform, or? (sorry, besides guitar excursions :) ) Also what Matthew already forgot from the beginning of the video(1) (and you didn't mention here) is the quality of the ADC/DAC and the analog audio chain. Quality of mechanical construction, etc. pp. That is knowledge which those companies possibly would kill for:) (1) NE5534 or something + TLV320AIC, Phil said "very simple" ... and that design is a whole new can of worms
What you try to achieve with your second idea, Matthew, is possibly answered on reddit via "What's the worst pedal you ever bought?", because that is exactly what you are moving towards:) Sorry for joking(?!?). You can calculate (or measure and then interpolate) the noise and frequency response of digital filters. What I meant is: Be SOME percent over the "shitty sound" margin to have something reliable. Ignore that, if you are Alice Cooper:P
Haha, yes maybe this'll show that it isn't too hard (or costly) to make your own digital effects pedals! That's a good idea. I'll show some of the limitations of this F405 MCU when we'll look at FIR filters of various lengths. Haven't really tried much signal processing on lower-power MCUs.
Very cool. I wonder how closely you could emulate actual hardware pedals? It would be cool to see you emulate a tube screamer or one of the original hard clipping distortion pedals.
I was so hoping you implemented full filter that is capable of 0.5Hz cutoff (at 48ksps), that is nearly impossible to do in analog domain. All you have to do is to run convolution with your kernel, I always wondered if STM32 has enough performance to do it in real time :)
Hi Phil - I'm an EE student in my final semester, and I regularly follow your videos. I really admire how well you share and teach your knowledge. Huge Credz from Denmark. What is your general approach for implementing higher order variable IIR filters in such audio applications, In realtion to stability? Do you surrender to FIR and obey with the increased computational complexity?
Hi Phil, I had trouble finding the STM32 CubeIDE file, as well as I was wondering if the schematic shown in the hardware overview could be shared please. Thank you for the video
Phil, could you perhaps cover different digital power supply topologies as well? You could start with the basics like short circuit protection and move on to more complicated topics like DC/DC, DC/AC conversion, motor control, regenerative braking, PFC, etc.
I actually recently made a demo board for future videos on how to design/control a buck converter. I think both from an electronics and control standpoint that could be pretty interesting. Other than that, as you mentioned, I also have a motor control board ready for some videos! :)
Would be interesting to see how you determine how many cycles each algorithm takes and how much CPU load. I don't know if it done through statistical profiling or if you use some time measurement technique like watching clock cycles.
Thank you again Phil for more great content! You mentioned that the ADC of the STM32 is not appropriate for sampling the audio signal and that the ADC of a codec IC should be used instead. Why is that?
Thanks, Bruno! The STM32's ADCs and DACs are usually 12-bit and you'll get pretty harsh, very audible distortion. 16-bit is pretty much a minimum for audio.
Hi I wanted to try this audio acquisition and build a software fsk modem. But I couldn’t find the project files on the GitHub link in the description. Hope somebody could help.
I know the question has been asked, but haven' t seen the answer yet: what's the latency between input and output? I assume it's something greater than buffer_size / sample_rate -- what do you measure?
What would be a good guess for the cost to produce these audio DSP boards? Has anoyone done so already? I can imagine a lot of people who might be adept at an IDE and some light soldering -- but lack PCB and SMD chops -- being interested in buying them .. Fantastic video and channel.
Hi Phil, can you make a video that demonstrate (in code examples) some and useful building blocks of DSP library (CMSIS). In C there are if-then-else statement, the are select case, logical operators etc that made up the C entire program. It would be very helpful to see how the program flows in DSP programming by examples. thanks
Phil, is there any way we could manufacture this exact GDSP PCB and follow along with the code? Please let me know as I am very interested in completing this Audio-DSP Playlist. Cheers from across the pond :)
Hi Phil, good video! I was just wondering, since I am just a student I don't have that much experience writing such drivers specifically for this type of application. For a schoop project I designed and assembled a board similar to yours and am having some trouble understanding the 'Framework'. Could you maybe share the code or create a video detailing it? Thanks again.
25:33 I am curious about the time delay of your system. You can show the phase response measured here and compare it with that from simulation so as to tell the latency. Is the latency mostly due to I2S communication or something else?
Hey Phil. If this is going over my head, what can i do to get a good hang of all of this? I have a background in pure maths and sound engineering, basic electronics and pcb design + ive played around with esp32, esphome and home assistant. I’d love it if you’d answer this! Thanks
Hi Guy, I'm starting development with dsp stm and I'm using your videos as a learning base. Have you made the GDSP_codec file available somewhere? I didn't find it on your GITHUB and I need this file to get audio from my board
Thank you for this! I created a basic synthesizer on STM32 but I didn't know how I could implement a filter. I just discovered your channel now, but do you have (or would you consider making) a video about how to do an adjustable cutoff filter like this but using the ARM math library filter functions that come with the STM32 libraries?
Thank you for watching, Jacob! Potentially I'll make a video on using the ARM libraries, however, I usually prefer showing everything 'from scratch' in these videos.
I'd rather be using pure CMSIS for audio processing to decrease time consumption caused by all that HAL stuff. *Many of DSP code snippets can be found with REAPER DAW as JS plugins, but they're written in EEL.
Phil, this video is pure gold. The fact that you're providing it for free is so admirable, ill gladly go to your patreon... I am developing a similar project, but have chosen the stm32h7. It's awesome that you're usinig a cortex m4 since I was weary the performance would suffer compared to an m7 chip. Have you hit any roadblocks in terms of performance when implementing some more "crazy" dsp algorithms? Do you think the higher performance of the m7 compared to m4 is worth it? Cheers!
it depends. the only way to determine is to put an algorithm execution expectation on m4 or m7, Example: A single channel IIR at 96fs is okay, but you will soon see interesting CPU and Memory issues when building advance "single audio channel high sample rate" algorithms like: ANC (Active Noise Cancellation), Parametric EQ with limiters, Advance Reverb Algorithms (an there are many) then an M4 STM32 wont work, M7 barely but then again? what are you trying to do? what is the aim? M7 for simple to advance low sample rate will work. Yet again the M4 and M7 are great chip most people doing DSP will have to start here and work their way up.Some DSP things I mentioned are highly subjective do you even need high sample rate Audio? Many who started looking never even made it designing a low sample rate IIR filter on an 8-bit architecture. It's an additive journey, I say use an M4 or M7 and see if you can max it out, then move on. :)
Thank you very much, Lia! The only time I've been limited by the performance is (unsurprisingly) with long convolutions, e.g. for FIR filters. Another thing is the amount of RAM available, which can of course be extended on some STM32s with SRAM. Tbh before the chip shortage the price difference between some M4s and M7s wasn't much, so I'd say just go with whatever the budget allows!
Hi! Have you faced the problem, that you forgot to configure SWD pins and now PC could not see the STM32 (the target)? What should be done in such a situation? P.S. bootloader also doesn’t work.
At 26:03, why do you have a 0.4dB gain on the passband? Shouldn't it stay flat at 0dB (or potentially a small attenuation)? EDIT: I guess it has to do with the volume control presented later. Should have waited till the end of the video to comment xD
What would be the chances of covering how to decode Dolby Digital, DD+, Atmos, or DTS? Am open source library that allows decoding the latest surround sound stuff would be killer!
Hey Can you make a video on making a bi-directional power delivery Sink source board using the TPS65982 (or similar) And a synchronous Boost buck converter using LTM4607 I am making a powerful Powerbank with 100W PD port and 300w (20v 15A) port for my laptop Can you help me out?
I am more interested in DSP programming for audio applications like the audio equalization, mixer/audio mixing, digital filtering, understanding of the analog ics that made up the analog embedded system (I mean the chip like the dsp audio mixer, audio codec, etc). In digital/mcu based embedded systems there are ics like eeprom, rtc, I/O port expanders, CAN, RS232, RS485, ethernet PHY, etc that made up the system BUT in analog embedded system (again, I mean the DSP based solution) is still to me remain secret and not liberise !
I don’t think the built in DACs have sufficient resolution (they are 12-bit) for audio applications, particularly the DAC’s ability to reconstruct a pleasing sounding analog waveform. Most better sounding DAC chips in pleasing sounding effects are 24-bit or 16-bit at the lowest end. Aliasing in algorithms is also something that goes away at higher sampling rates (eg 96 or 192 kHz). You can definitely hear the differences.
Hi Phil, was really interested in this project and thought I would try and create one with the files you supplied on your git page... sadly JLC are charging quite a bit for some of the real small parts and wondered how difficult the audio codec was to solder? I have done very little SMD but im keen to give this project a go! Thank you for the great video i look forward to seeing more of your content. Thank you :)
Is this dsp also similar to what jbl uses in the charge, xtreme, flip, pulse, boombox series of their bluetooth speakers? I'm currently building a bt speaker, it's drivers are 10-20watts, it's a replacement driver for jbl charge 3, I used tpa3110 amplifier and m18 bluetooth decoder. The sound is good, but I want it to sound like jbl charge 3, it has bass which you can hear loudly. But mine, I don't hear any. Can I use this dsp?
It's sad that, especially as a guy, people don't care about how you feel until it gets bad enough that it's too late. That's why this video is so great, we need to change this.
I would like to buy a pedal that I can program myself. Has anyone built and made pedals like yours available for sale? I am comfortable coding in C but not that comfortable populating or designing PCBs and such.
Sir I want a long range sensor which is a kilometer awayThe New Data Sender Receiver has a range of 1 kilometer and can send multiple data along with it, which is a receiver that can receive the same data.
bu proje mukemmel olmuş enstrumanım olan türk çalgısı saz adlı bir cihaza sahibim bunda fisherman kiti takılı 5 bant eqolayzır var ve bir flash bellek yuvası ritimleri burdan çalıyorum ama hızları ile oynayamıyorum isterdimki oynıyım 2 4 luk 9 8 lık 4 4 rıtımlerde hızla oynaya bılseydım cok ıyı olurdu aslında 3 bu kıte 3 analog dugme ıyı olurdu bırı sesin hızını real tıme değiştirecek oburu takılı olan flash bellekte rıtmler olan muzık looplarını değiştirsın bu kıtın cıkısını fısherman a verıp birde dısplay ekran olsa bu kıt turkıyede yok satar kımse bunu yapmayı beceremedı ıtalyanlar korg pa serılerınde rıtımlerın hızlarını bir dugme ıle ayarlamıs ayrıca rıtm parcalara gecıste gene bır dugme ıle bu kıt gelıstırılıp hafızalara da atılabılır ve saza monte edılır korkunç nefıs bır proje olur hala bunu arıyoruz fısherman fırması bunu hala yapmadı hoca yapsın bunu artık bu malıyet acısından ucuz olur sa ardınıo rasbery gıbı kartlar kullanılmasın aynı tadı korg pa org serılerınde gıbı enstrumantallerımızın uzerınde rıtm degıstırmeyı kolayca yapalım pıyasada satılan rıtm box adlı yardımcı elemanlar malesef dışardan kontrol edılıyor enstrumanın uzerınden degıl ayrıca bunlar gereksız agırlık ve cok para işimiz de korg pa için ritm kulalnyoruz ama enstrumanı calarken korg u da yanımızda goturmekten bıktık mıcrı denetleyıcıye kod yazmayı bılmedıgımızden ve devre tasarlamayı bılmedıgımızden bu teknık bır iş değerli hoca 3 analog dugmelı bır sd card yada flash belleklı dısplay ekranlı cıhazı gelıstırıp bıze satarsa memnun oluruz fısherman fırması saz için yapmış ama ne çalarsak calalım tempo hep aynı hızda buda çok iyi olmuyor bazen rıtmı azaltıp bazen coşku vermek gerek bunlar ıcınde hız hafıza butonlarıda konabılır ,
Hope you enjoy this video series on DSP for audio! Let me know if you have any questions or comments :)
New mixed-signal hardware design course with KiCad v6 - with updated pricing!
⏵Course sign-up: phils-lab-shop.fedevel.education
⏵Course content: www.phils-lab.net/courses
Looks like you dropped the price for download a lot. Good call.
Thanks Phil for updating the pricing! I am finally able to go for the $149 one. The $99 one was too bad for hobbyists due to the time constraint and lack of download whereas the business one was too expensive for the regular Joe. Thanks again for providing quality content and listening to your followers!
I'd drop an easy $100+ on a full-length DSP course. Your signal processing content is nuts!
Same. All the other Udemy ones i’ve tried have been garbage.
@@velvetsound facts
Thank you - glad to hear that! A full-length, hands-on DSP course may be in the works ;)
@@PhilsLab maybe add Kalman filters in the list and the course becomes a banger
Your skills are insane! You are so good at sharing the knowledge simple but yet without losing details!
Thank you so much!
I agree! A hallmark of someone who really understands what they're talking about.
This is crazy interesting, excellent job, Phil. Please, anyone feel free to ask questions about the ADP3450 or WaveForms! Cheers, all!
Thank you! Was really cool to test out the ADP3450 with this project :)
Awesome, one thing I really love about it is - Linux compatible! If I could - I would get one! Maybe some day... Also thank you Phil, really love STM32 and all about Digital Audio!!!
Thanks Phil..the way you dumb things down with explanations and practical applications is amazing.
Thank you very much, Badejavu!
Man your content checks off almost every box for my personal development. Your presentation is spot on keep it up!
Thank you very much, glad to hear that!
Your explanation of the 1st-order low-pass filter is clear. It makes me confident that I could implement it. Excellent video which doesn't skip over important details. Well done, and thanks for posting. I look forward to the rest of the series.
Thank you very much, glad you liked the video!
Some ppl just have a natural talent. Again Brilliant !!! This channel is sooo underrated It should be at the forefront of youtube suggestion list.
Thank you very much, Lee! Well hopefully one day it'll be at the forefront - I can only hope :D
As a soon-to-be CS graduate who's looking to get into embedded software development as a career, these videos are invaluable to me! Your video on how to write a driver for stm32 is basically the blueprint on how i try to write software still.
Thank you very much, Robert!
Once again I like the way you cover the maths. It's as simple as it can be but no simpler.
Thank you!
I, for perhaps obvious reasons, am very excited about this particular series.
This is really good stuff. I really like how you are going into the meat of the content and then summing it all up with a real world example. As some others have said, I'd gladly pay for a DSP course. Lastly, nice socks.
Thank you very much! Would definitely be up for making a DSP course - I'll keep you updated :)
@@PhilsLab Me too will be waiting to learn DSP from an application point of view rather than cramming up the boring theory
Excellent start of the series - I will follow it for sure! 🤓
Thank you very much!
Very Nice video...!!! Very quickly and in simple way explained the basics...!!!
Thanks, Ganesh!
Well that just made my project easier. Thanks Phil!
Glad to hear that, thanks for watching, Jason!
Informative and great examinations of the math in the filter formulas
Thanks, Daniel!
beautiful video, really beautiful, theory and practice come together. congratulations congratulations
Thank you so much!
Wow. Huge knowledge. Thanks for sharing!
Highly recommend Phil's course, check it out!
Thank you very much, Kevin!
Brilliantly explained
Thank you!
Phil, please provide the C code necessary to make my playing sound like Yngwie Malmsteen. Thanks in advance.
void main() {while(1){printf("practice 10 hours a day.
");HAL_Delay(1000);}}
Haha I'm afraid I'm still searching for that code myself...
Best I've got makes it sound like a dying yak, will that help?
Mental loadout mate.
Pppppopped.
Wow, nice video !!!!Thank you Phil for great content!
Thank you for watching, Alex!
Fantstic Video !!! Thank you !!!
Great Vid as always Phil. Keep it up.
Thank you very much, Ian!
Wow! Great intro tutorial!
Thank you
Thank you for watching, Viktor!
i hope one day u start the series of c code! u are a great teacher ❤️
Phil love your work as always more power to you ❤️
Thank you very much, Pramit!
Amazing job Phil thanks for sharing.
Thanks for watching!
Very nice, great work!
Thank you, Andy!
Thank you so much Phil
Thank you for watching, Mikåel!
Another splendid video!
Is there a plan to finish the sensor fusion series?
Thank you! Yes, just working on the last EKF video with implementation.
as an embedded developer, its really hard to solder another opamp resistor to settle or attenuate the signal to the mcu. i'm using i2s channel for trying it out the circuit. i put an adc like you did... and i'm chilling when i need to change attenuation factor or lpf settings because of very fast mcu's nowadays. (we are not populating these ic's at production btw)
when i'm in the university, there were only the pic family. 20mhz at best ahhaha:)... now i have 168mhz or 240 mhz mcu with fpu and dma and fast i2s peripheral..
weather is clear for embedded engineers... :)
You can get 400 Mhz to 1GHz "MCU/FPU" if you need them. Allegedly.
we also have 1Ghz MCUs nowadays
Awesome! Thanks Phil!
Thanks for watching!
Careful there Phil, you might start undercutting some pedal companies' $600 effects pedals :)
An experiment I would really like to see is how *underpowered* you can make your hardware and still get some effects going? E.G, what sort of frequency can you run the CPU and still get real-time processing with floating point / integer math?
I pulled apart my Meris Mercury 7 pedal and they’re using an STM32F4… ;)
@@velvetsound That is around £309 ? But it is not an experimentation platform, or? (sorry, besides guitar excursions :) )
Also what Matthew already forgot from the beginning of the video(1) (and you didn't mention here) is the quality of the ADC/DAC and the analog audio chain. Quality of mechanical construction, etc. pp. That is knowledge which those companies possibly would kill for:)
(1) NE5534 or something + TLV320AIC, Phil said "very simple" ... and that design is a whole new can of worms
What you try to achieve with your second idea, Matthew, is possibly answered on reddit via "What's the worst pedal you ever bought?", because that is exactly what you are moving towards:)
Sorry for joking(?!?). You can calculate (or measure and then interpolate) the noise and frequency response of digital filters. What I meant is: Be SOME percent over the "shitty sound" margin to have something reliable. Ignore that, if you are Alice Cooper:P
Haha, yes maybe this'll show that it isn't too hard (or costly) to make your own digital effects pedals!
That's a good idea. I'll show some of the limitations of this F405 MCU when we'll look at FIR filters of various lengths. Haven't really tried much signal processing on lower-power MCUs.
Hopefully some day FFT on STM32 video would come out. :) . Your videos are great inspiration. Thanks in advance.
Thank you, Tuguldur! Was definitely planning on making an FFT video at some point - maybe as a guitar tuner demo?
@@PhilsLab Yes. That would be wonderful. Thank you for your hard work and effort.
Very cool. I wonder how closely you could emulate actual hardware pedals? It would be cool to see you emulate a tube screamer or one of the original hard clipping distortion pedals.
Excellent video.
Now please make one explaining how to source ST MCUs..!
Thank you, Pulkit! Haha yes that would be nice...
I was so hoping you implemented full filter that is capable of 0.5Hz cutoff (at 48ksps), that is nearly impossible to do in analog domain. All you have to do is to run convolution with your kernel, I always wondered if STM32 has enough performance to do it in real time :)
Hi Phil - I'm an EE student in my final semester, and I regularly follow your videos. I really admire how well you share and teach your knowledge. Huge Credz from Denmark.
What is your general approach for implementing higher order variable IIR filters in such audio applications, In realtion to stability?
Do you surrender to FIR and obey with the increased computational complexity?
Hi Phil, I had trouble finding the STM32 CubeIDE file, as well as I was wondering if the schematic shown in the hardware overview could be shared please. Thank you for the video
Phil, could you perhaps cover different digital power supply topologies as well? You could start with the basics like short circuit protection and move on to more complicated topics like DC/DC, DC/AC conversion, motor control, regenerative braking, PFC, etc.
I actually recently made a demo board for future videos on how to design/control a buck converter. I think both from an electronics and control standpoint that could be pretty interesting. Other than that, as you mentioned, I also have a motor control board ready for some videos! :)
This is an excellent video.
My only question, since you're measuring voltages, shouldn't your cutoff be 6dB (not 3dB as you use)?
Would be interesting to see how you determine how many cycles each algorithm takes and how much CPU load. I don't know if it done through statistical profiling or if you use some time measurement technique like watching clock cycles.
That's a good idea! I'll try to include that in a future video.
this helped a lot. thanks. 💛💛💛💛🖤🖤🖤🖤
Nice video,like it, thanks for sharing :)
Epic content =)
Thank you!
Thank you again Phil for more great content!
You mentioned that the ADC of the STM32 is not appropriate for sampling the audio signal and that the ADC of a codec IC should be used instead. Why is that?
Thanks, Bruno! The STM32's ADCs and DACs are usually 12-bit and you'll get pretty harsh, very audible distortion. 16-bit is pretty much a minimum for audio.
Hi I wanted to try this audio acquisition and build a software fsk modem.
But I couldn’t find the project files on the GitHub link in the description. Hope somebody could help.
Nice video, TNX
Thank you, Nicola!
I know the question has been asked, but haven' t seen the answer yet: what's the latency between input and output? I assume it's something greater than buffer_size / sample_rate -- what do you measure?
very cool
Thanks!
What would be a good guess for the cost to produce these audio DSP boards? Has anoyone done so already? I can imagine a lot of people who might be adept at an IDE and some light soldering -- but lack PCB and SMD chops -- being interested in buying them ..
Fantastic video and channel.
Thanks! Something around 10-15 USD each to produce in low quantities. I've done an updated version that I may pop on Tindie or the like!
Hell yea dude
hi there. am i being silly. i cant find the stm32 project code.
Hi Phil, can you make a video that demonstrate (in code examples) some and useful building blocks of DSP library (CMSIS). In C there are if-then-else statement, the are select case, logical operators etc that made up the C entire program. It would be very helpful to see how the program flows in DSP programming by examples. thanks
Any chance you'll be supplying the gerber files for your GDSP board so we'all can get our own made? (nudge, nudge, wink, wink)
I'll be supplying design files for an updated version of this board in a (near-)future video!
Can you speak further about the analog front/back ends you designed between the guitar input and the codec?
What appealed you to the TLC320AIC as a DAC/ADC? Applications mentioned in the Datasheet don't really match, but that doesn't say much anyway.
Can we purchase this pedal in order to try our dsp algorithms? We can follow you through all videos like a cuorse!
Phil, is there any way we could manufacture this exact GDSP PCB and follow along with the code? Please let me know as I am very interested in completing this Audio-DSP Playlist.
Cheers from across the pond :)
Woooow great job. 😍😍
Why dont you use TI's dsp microcontrollers??
Hi Phil, good video! I was just wondering, since I am just a student I don't have that much experience writing such drivers specifically for this type of application. For a schoop project I designed and assembled a board similar to yours and am having some trouble understanding the 'Framework'. Could you maybe share the code or create a video detailing it? Thanks again.
25:33 I am curious about the time delay of your system. You can show the phase response measured here and compare it with that from simulation so as to tell the latency. Is the latency mostly due to I2S communication or something else?
Hey Phil. If this is going over my head, what can i do to get a good hang of all of this? I have a background in pure maths and sound engineering, basic electronics and pcb design + ive played around with esp32, esphome and home assistant. I’d love it if you’d answer this! Thanks
Hi Guy, I'm starting development with dsp stm and I'm using your videos as a learning base. Have you made the GDSP_codec file available somewhere? I didn't find it on your GITHUB and I need this file to get audio from my board
Hello, what are the peripherals and hardware used here ?
Thank you for this! I created a basic synthesizer on STM32 but I didn't know how I could implement a filter. I just discovered your channel now, but do you have (or would you consider making) a video about how to do an adjustable cutoff filter like this but using the ARM math library filter functions that come with the STM32 libraries?
Thank you for watching, Jacob! Potentially I'll make a video on using the ARM libraries, however, I usually prefer showing everything 'from scratch' in these videos.
I'd rather be using pure CMSIS for audio processing to decrease time consumption caused by all that HAL stuff.
*Many of DSP code snippets can be found with REAPER DAW as JS plugins, but they're written in EEL.
Phil, this video is pure gold. The fact that you're providing it for free is so admirable, ill gladly go to your patreon...
I am developing a similar project, but have chosen the stm32h7. It's awesome that you're usinig a cortex m4 since I was weary the performance would suffer compared to an m7 chip. Have you hit any roadblocks in terms of performance when implementing some more "crazy" dsp algorithms? Do you think the higher performance of the m7 compared to m4 is worth it?
Cheers!
it depends. the only way to determine is to put an algorithm execution expectation on m4 or m7,
Example:
A single channel IIR at 96fs is okay, but you will soon see interesting CPU and Memory issues when building advance "single audio channel high sample rate" algorithms like: ANC (Active Noise Cancellation), Parametric EQ with limiters, Advance Reverb Algorithms (an there are many) then an M4 STM32 wont work, M7 barely but then again? what are you trying to do? what is the aim? M7 for simple to advance low sample rate will work. Yet again the M4 and M7 are great chip most people doing DSP will have to start here and work their way up.Some DSP things I mentioned are highly subjective do you even need high sample rate Audio?
Many who started looking never even made it designing a low sample rate IIR filter on an 8-bit architecture. It's an additive journey, I say use an M4 or M7 and see if you can max it out, then move on. :)
Thank you very much, Lia! The only time I've been limited by the performance is (unsurprisingly) with long convolutions, e.g. for FIR filters. Another thing is the amount of RAM available, which can of course be extended on some STM32s with SRAM.
Tbh before the chip shortage the price difference between some M4s and M7s wasn't much, so I'd say just go with whatever the budget allows!
@@PhilsLab cool to know! I will be doing a lot of convolution, so maybe the m7 is what I want. The chip shortage really is a shame!
Hi!
Have you faced the problem, that you forgot to configure SWD pins and now PC could not see the STM32 (the target)?
What should be done in such a situation?
P.S. bootloader also doesn’t work.
Phil could you please suggest where to start for a beginner ??? In your playlists for RTos stm32 cube I'd .not referencing these videos.
I'd check out the 'beginner' STM32 videos on my channel (firmware and RTOS).
Hello. Thanks for sharing. Where could I download the code shown on this video ? Thanks.
The bolck diagram is really nice, may I ask how you creat it ? Thank you very much!
Thank you! I used draw.io to create it.
Amazing job with this channel!
Is there a link to the actual STM32IDE project/code?
How does this platform (STM32 + codec) compare to a Teensy 4.0 board (ARM Cortex M7) + Audio Shield?
At 26:03, why do you have a 0.4dB gain on the passband? Shouldn't it stay flat at 0dB (or potentially a small attenuation)?
EDIT: I guess it has to do with the volume control presented later. Should have waited till the end of the video to comment xD
Exactly, the volume control wasn't centered :)
Where can I download the schematic?
What would be the chances of covering how to decode Dolby Digital, DD+, Atmos, or DTS? Am open source library that allows decoding the latest surround sound stuff would be killer!
I'm afraid that isn't on my list of content to make :/
Hey
Can you make a video on making a bi-directional power delivery Sink source board using the TPS65982 (or similar)
And a synchronous Boost buck converter using
LTM4607
I am making a powerful Powerbank with 100W PD port and 300w (20v 15A) port for my laptop
Can you help me out?
Hi, please provide the link to the code for the audio codec. so that it will be helpful to my project. thank you
I am more interested in DSP programming for audio applications like the audio equalization, mixer/audio mixing, digital filtering, understanding of the analog ics that made up the analog embedded system (I mean the chip like the dsp audio mixer, audio codec, etc). In digital/mcu based embedded systems there are ics like eeprom, rtc, I/O port expanders, CAN, RS232, RS485, ethernet PHY, etc that made up the system BUT in analog embedded system (again, I mean the DSP based solution) is still to me remain secret and not liberise !
Great series! Since STM32F4 series have built in ADC/DAC, are these built in one able to do the similar thing?
I don’t think the built in DACs have sufficient resolution (they are 12-bit) for audio applications, particularly the DAC’s ability to reconstruct a pleasing sounding analog waveform. Most better sounding DAC chips in pleasing sounding effects are 24-bit or 16-bit at the lowest end. Aliasing in algorithms is also something that goes away at higher sampling rates (eg 96 or 192 kHz). You can definitely hear the differences.
Maybe if you are making a distortion pedal :)
what is the latency after the stm32 processing ?
Hi Phil, was really interested in this project and thought I would try and create one with the files you supplied on your git page... sadly JLC are charging quite a bit for some of the real small parts and wondered how difficult the audio codec was to solder? I have done very little SMD but im keen to give this project a go! Thank you for the great video i look forward to seeing more of your content. Thank you :)
Hi, I'm a guitar player too and still keep on my stuff, I wonder where I can find this code, thanks
in the video, it said the code is in the GitHub link, but I can't find it
Is this dsp also similar to what jbl uses in the charge, xtreme, flip, pulse, boombox series of their bluetooth speakers? I'm currently building a bt speaker, it's drivers are 10-20watts, it's a replacement driver for jbl charge 3, I used tpa3110 amplifier and m18 bluetooth decoder. The sound is good, but I want it to sound like jbl charge 3, it has bass which you can hear loudly. But mine, I don't hear any. Can I use this dsp?
Please make a tutorial on how to record the audio from mic to sd card or usb 👍🏻
It's sad that, especially as a guy, people don't care about how you feel until it gets bad enough that it's too late. That's why this video is so great, we need to change this.
Tour de force!
I would like to buy a pedal that I can program myself. Has anyone built and made pedals like yours available for sale?
I am comfortable coding in C but not that comfortable populating or designing PCBs and such.
Sir I want a long range sensor which is a kilometer awayThe New Data Sender Receiver has a range of 1 kilometer and can send multiple data along with it, which is a receiver that can receive the same data.
What's the latency? Also great job! SUB!
bu proje mukemmel olmuş enstrumanım olan türk çalgısı saz adlı bir cihaza sahibim bunda fisherman kiti takılı 5 bant eqolayzır var ve bir flash bellek yuvası ritimleri burdan çalıyorum ama hızları ile oynayamıyorum isterdimki oynıyım 2 4 luk 9 8 lık 4 4 rıtımlerde hızla oynaya bılseydım cok ıyı olurdu aslında 3 bu kıte 3 analog dugme ıyı olurdu bırı sesin hızını real tıme değiştirecek oburu takılı olan flash bellekte rıtmler olan muzık looplarını değiştirsın bu kıtın cıkısını fısherman a verıp birde dısplay ekran olsa bu kıt turkıyede yok satar kımse bunu yapmayı beceremedı ıtalyanlar korg pa serılerınde rıtımlerın hızlarını bir dugme ıle ayarlamıs ayrıca rıtm parcalara gecıste gene bır dugme ıle bu kıt gelıstırılıp hafızalara da atılabılır ve saza monte edılır korkunç nefıs bır proje olur hala bunu arıyoruz fısherman fırması bunu hala yapmadı hoca yapsın bunu artık bu malıyet acısından ucuz olur sa ardınıo rasbery gıbı kartlar kullanılmasın aynı tadı korg pa org serılerınde gıbı enstrumantallerımızın uzerınde rıtm degıstırmeyı kolayca yapalım pıyasada satılan rıtm box adlı yardımcı elemanlar malesef dışardan kontrol edılıyor enstrumanın uzerınden degıl ayrıca bunlar gereksız agırlık ve cok para işimiz de korg pa için ritm kulalnyoruz ama enstrumanı calarken korg u da yanımızda goturmekten bıktık mıcrı denetleyıcıye kod yazmayı bılmedıgımızden ve devre tasarlamayı bılmedıgımızden bu teknık bır iş değerli hoca 3 analog dugmelı bır sd card yada flash belleklı dısplay ekranlı cıhazı gelıstırıp bıze satarsa memnun oluruz fısherman fırması saz için yapmış ama ne çalarsak calalım tempo hep aynı hızda buda çok iyi olmuyor bazen rıtmı azaltıp bazen coşku vermek gerek bunlar ıcınde hız hafıza butonlarıda konabılır
,
👍🏻💥