DIY FPGA based Mixing Console with OS/2 GUI - and more

In this episode I take you with me creating an audio mixing console based on the Arduino Vidor 4000 FPGA board. The final device has five EQs, a noise gate, an audio compressor and up to 22 channels with a total latency of 20.8 microseconds at 48kHz.
Sourcecode and more:
www.github.com/xn--nding-jua/...
Soft- and Hardware for the light-show:
www.pcdimmer.de
Used music in this video:
Energetic Funky Groove by Yevhen Onoychenko
Weeknds by DayFox
Windows XP Extended Startup Theme by Bas3008
Duck Tales - The Moon Theme by Capcom, Extended Mix by Sean Bee
Content:
00:00 Intro
01:07 Implementing EQs in FPGA
08:26 Thoughts about ancient software-development
11:12 Timetravel to copy files
13:54 Controlling EQ with GUI from OS/2
15:42 Implementing Audio Compression
19:47 Testing the Audio Compressor with OS/2
21:16 Testing the Noise Gate
22:12 Validating and optimizing the PDM
28:29 Github, more GUIs and Conclusion
29:18 Music: The Moon

Пікірлер: 46

  • @SCHLAPPIENGINEERING
    @SCHLAPPIENGINEERING3 күн бұрын

    Awesome! Love the detail you've gone into in describing the EQ and compressor implementations, also the music is excellent!

  • @Xsiondu
    @XsionduКүн бұрын

    I'm just gonna subscribe. You're building the NCC 1701D bridge as your studio. I'm sold.

  • @kagameen
    @kagameen6 күн бұрын

    lmao i love the duck tales IRL cover in the end

  • @TheIArocks
    @TheIArocks24 күн бұрын

    I just randomly stumbled upon your video and I have to say that this is one of the most interesting videos I've seen in a long time! Since I'm really into analog DIY-audio but with very limited knowledge of digital audio processing, this was quite enlightening! Looking forward to your future videos and I'm catching up on your old ones in the meantime. Thanks a lot!

  • @pcdimmer

    @pcdimmer

    23 күн бұрын

    Thank you for your feedback. Yes, it was a challenge for me too, but once you have implemented an IIR filter like this, it becomes easier :)

  • @nnif-pv2pq
    @nnif-pv2pq23 күн бұрын

    Awesome video! As an electrical engineer and audio enthusiast, I really enjoyed the detailed description and the retro implementation of the UI. Keep it going!

  • @lbgstzockt8493
    @lbgstzockt849323 күн бұрын

    What a delightful video! I really like the combination of fairly involved programming, signal processing and music, I would love to see more from you!

  • @ianmoore5502
    @ianmoore55023 күн бұрын

    you got me with the Enterprise NCC-1701-D display within 0.01 seconds...live long.

  • @ChrisShucksmith
    @ChrisShucksmith5 күн бұрын

    Great video and a very niche set of skills you have here: FPGA design, retro software, trumpet, drums and mixing ;-)

  • @korgman2k7
    @korgman2k77 күн бұрын

    I'm so glad I found your channel! Great job with this interesting project. Also I love the Enterprise LCARS in the background. Keep up the great work 👍

  • @TheLabyrinthTV
    @TheLabyrinthTV15 күн бұрын

    Interestingly I was just in a rabbit hole of KLANG technologies [basically “3D” stereo imaging for musicians that uses similar tech/methods] to try to implement at my job and church, when KZread recommends this video to me 😮. I LOVE this kinda stuff and I think this video is really well made and explained. I’d be interested in seeing if you continue this series and where you decide to take it. Glad to be a subscriber now!

  • @ohmymndy8410

    @ohmymndy8410

    23 сағат бұрын

    Same here! Came here after seeing some Klang videos.

  • @attilapal3786
    @attilapal378614 күн бұрын

    This is insane. I was just struggling with the buffer sizes while convolution EQing my new Bluetooth headphones on Linux, trying to get reasonable delay between audio & video. Going hardware is a whole another dimension, great video

  • @Levibetz

    @Levibetz

    7 күн бұрын

    I gave up on headphone eq in software due to similar issues, but in windwos (because ASIO is a clusterfuck with pro tools), so I bought a Nux Pulse IR loader for guitar cabs and downloaded a headphone correction IR, did a couple tweaks after loopback testing it in REW and bam, done.

  • @yrath5034
    @yrath50346 күн бұрын

    This is an incredibly niche project, and I love it!

  • @fronbasal
    @fronbasal9 күн бұрын

    Amazing, thanks for sharing Christian!

  • @WiihawkPL
    @WiihawkPL5 күн бұрын

    this is an oddly specific project

  • @nuclearmonster
    @nuclearmonster9 күн бұрын

    Incredible video, what a twist with duck tales at the end!

  • @pcdimmer

    @pcdimmer

    3 күн бұрын

    Thank you very much! Yes, I couldn't let an audio episode end without music, could I? :)

  • @nikbivation
    @nikbivation4 күн бұрын

    this is gold, thank you!

  • @Zamsky39
    @Zamsky395 күн бұрын

    This is fascinating

  • @TheCookiesir
    @TheCookiesir15 сағат бұрын

    Brilliant

  • @antiphlex
    @antiphlexКүн бұрын

    Great video. I'm into reconditioning of old audio hardware and development of new effects, and this is very interesting and applicable. I'm just wondering, regarding the transfer of files back to a 1994 system, would an ethernet network be a solution? I know ethernet was not as popular back then with IPX and token ring solutions, but I have seen a number of boards that use RPi pico and other microcontrollers to implement modern networks on old systems. Might be worth taking a look.

  • @JudgeFredd
    @JudgeFredd20 күн бұрын

    Impressive !

  • @MixMeMcGee
    @MixMeMcGee6 күн бұрын

    Your studiooooooo 🤩🤩🤩

  • @udirt
    @udirt6 күн бұрын

    und so sieht das dann aus, wenn jemand wirklich[tm] was von dem zeug versteht! einfach nur 'wow'.

  • @MixMeMcGee

    @MixMeMcGee

    6 күн бұрын

    Jaa, oder?! Echt mega, dass er so viele Sachen draufhat, von denen ich nur träumen kann.

  • @niemusze5078
    @niemusze507815 күн бұрын

    22ms is a bit od latency, but still much greater achievement than my sitting and commenting.!! :P

  • @pcdimmer

    @pcdimmer

    15 күн бұрын

    Well, there are indeed incredible 20 to 40 MICROseconds (plus/minus) latency, so only one to two single audio-samples - depending on the number of EQ and filter blocks you are using. Each EQ takes around 200 NANOseconds processing-time, the LR24 crossover a bit more, the NoiseGate a bit less. Therefore it is a maximum of Realtime-processing you could achieve from such a device 😎. By increasing the sample time to 96kHz or even 192kHz we could go even lower, but then the coefficients would take a bit more space.

  • @niemusze5078

    @niemusze5078

    14 күн бұрын

    @@pcdimmerwow

  • @kennyzee3221

    @kennyzee3221

    8 күн бұрын

    Microseconds not milliseconds. So the latency is tiny

  • @jackbootshamangaming4541
    @jackbootshamangaming45419 күн бұрын

    As a guitarist who's getting more into Studio stuff, and a big FPGA user(Learning VHDL currently).

  • @pcdimmer

    @pcdimmer

    3 күн бұрын

    That's great, keep the ball rolling. FPGAs are a bit tricky, but it is worth of working with this kind of technology!

  • @FVDaudio
    @FVDaudio3 күн бұрын

    ✨✨👏🏻👏🏻

  • @jensdroessler3575
    @jensdroessler3575Күн бұрын

    Hast du mal geprüft, ob die EQs über ~10kHz noch das tun, was sie sollen?

  • @jsonslim
    @jsonslim22 күн бұрын

    Do you use C++ code in Arduino IDE for the FPGA?

  • @pcdimmer

    @pcdimmer

    22 күн бұрын

    Hi, the FPGA is programmed in VHDL with Quartus Prime Lite. Using Quartus this VHDL-code is synthesized (compiled) to a Tabular-Text-File (TTF) containing the bitstream of the FPGA. This TTF is then converted to a regular C-Header-File and piggybacked into the Binary-File of the SAMD21 using Arduino IDE. When starting the SAMD21 this bitstream is then copied to the FPGA using an emulated JTAG-connection. Typically you would use the onboard Flash, but this method was easier for me during development and as the SAMD21 has enough space, I leaved this as it was. And you need only the Arduino IDE to programm the ESP32 and the SAMD21 without additional programming-tools for the Flash :) cu, Chris

  • @jsonslim

    @jsonslim

    21 күн бұрын

    @@pcdimmer WOW, that's an interesting pipeline!

  • @Quentins-Veranstaltungstechnik
    @Quentins-Veranstaltungstechnik8 күн бұрын

    Maaan haha wie das Deutsch da rein kickt! Haha

  • @pcdimmer

    @pcdimmer

    8 күн бұрын

    @@Quentins-Veranstaltungstechnik Tja, die Herkunft kann und soll ja nicht verborgen werden. Aber die Hoffnung ist da, dass im internationalen Raum mehr Leute etwas mit den Sachen hier anfangen können. Auf jeden Fall habe ich schon einige vielversprechende Rückmeldungen erhalten. Beste Grüße 👍

  • @MixMeMcGee

    @MixMeMcGee

    6 күн бұрын

    Ja! Ich bin sehr grateful personalisch! 🤭

  • @Kyoz
    @Kyoz13 сағат бұрын

    🤍

  • @garethde-witt6433
    @garethde-witt64335 күн бұрын

    Os2 was always crap

  • @pcdimmer

    @pcdimmer

    3 күн бұрын

    Well, it depends. I wouldn't want to work with it every day and it can't keep up with today's systems, but everyone loves Lost Places, right? :-)

  • @kennyzee3221
    @kennyzee32218 күн бұрын

    Woah this is interesting. I’ve subbed to your channel. You’re doing such an amazing job

  • @pcdimmer

    @pcdimmer

    3 күн бұрын

    Thanks. And this topic is not over yet. Currently I (better "we") are working on a great extension of this FPGA-system. Only two words: "More Power!". More information in a couple of weeks...