Hacker News new | past | comments | ask | show | jobs | submit login
Building a Digital Audio Mixer (brixit.nl)
107 points by bo0tzz on Oct 31, 2023 | hide | past | favorite | 49 comments



I've been working on a similar project but several layers of abstraction higher. Instead of using microcontroller level DSP I'm using Linux running a real-time kernel on a nuc type device and using the DAW, reaper, as the primary mixer component. IO is done via USB soundcards; right now I'm using a tascam 2x2 interface but plan to expand to a 16x8 interface soon. I'm eventually targeting around 2 milliseconds of latency, but for now I'd be happy with around 10 (need to tinker more with real-time priorities and pipewire configs).

I'm mostly using it as a bass rig for now, feeding either my headphones or speakers with an SVT sim with IR cabinet sims or straight out of the SVT sim out to a QSC power amp and a 2x10 cab. When I get my studio space finished I'll hopefully use it as a mixer/ recorder for band practice.


... and you could of course use a libre open source DAW like ardour to gain even more control over your signal path, interactions with the hardware and more. But that might not be necessary, depending on your actual goals. There are also smaller projects like Carla, which would allow you to host plugins as part of the signal processing chain (up to and including things like PlugData or Rack/Cardinal), but that make no attempt at "DAW-like" features.

Disclaimer: I'm the lead author of Ardour.


I actually encountered just this sort of setup recently: a Linux PC with a real-time kernel running JACK and Ardour, connected to an 18x20 USB interface. It was part of a live translation setup that was routing English audio to up to four translators, receiving their foreign language audio, sending it to IR headsets, and recording everything with Ardour.

Unfortunately, it didn't work very well; I tentatively put the blame on JACK but some other part of the system could have been interfering, or maybe the PC itself just wasn't powerful enough. I didn't have time to troubleshoot properly so I just substituted in my MBA running Reaper, ironically.


I've used ardour in the past and enjoyed it but I initially chose reaper because I'm more familiar with it. I've been fighting some routing issues in reaper, I'll give ardour a try this week and see how it fits. Appreciate the work you do!


Ardour may well turn out to be less immediately well suited to whatever you're doing than Reaper is. But the point is that you could tune Ardour however you need to, something that even with its "endless" scriptability and tunability, you can't do with Reaper.

Don't be afraid to reach out for help/advice on our forums or IRC (the latter is best during daytime US mountain, in general).


Ardour is epic. I'd love to start building something as solid as it for web-based audio tooling purposes on https://linuxontheweb.github.io/.


You port our build stack[0] to wasm, we'll port Ardour.

[0] https://nightly.ardour.org/list.php#build_deps


I'm interested in doing the same thing but using PipeWire only. What kind of processing do you use Reaper for?


I'm using reaper for the mixing / routing portion, along with EQ and FX, though I'm going to take a look at using ardour this week instead. I imagine you could use pipewire by itself to achieve this, but if you're looking at more complicated routing and mixing, a DAW would be helpful.


AES70/OCA [1] is an AES standard for remote control of professional audio devices. I wrote an open source Swift implementation here [2] which I'm using for a similar digital audio mixer project. (The actual MCU running the mixer will talk to the AES70 control plane using a simpler SPI or I2C protocol.)

[1] https://ocaalliance.com

[2] https://github.com/PADL/SwiftOCA


Sadly a paid standard though :(


Anyone contemplating a cold winter and wanting to immerse themselves in a fun indoor project, pick up a Teensy and get project-ing. I have built several small projects with Teensies (?) and always find them enjoyable.

We live in a magic time when there are so many projects online, you can easily breadboard up one with the Teensy (or other small devices) and go all the way to professional-looking PCB with very little outlay in cash.


It's insane. I was just commenting to colleagues earlier today that $10 now gets you more compute than I had for the first decade of my career. And not just a little bit more either.

https://www.marktplaats.nl/v/hobby-en-vrije-tijd/elektronica...


Teensies are very much overkill for a lot of projects. I have gathered a decent amount of random microcontroller boards now and it's just a lot of fun to make them do random things.

I have some arduino nano knockoffs to do the really simple pin toggle things, some ESP8266 modules for when I need to do wifi enabled things. A few wiznet modules if I need to add ethernet to any module and the new raspberry pi pico boards are amazing if you need more performance and a really nice SDK.

The Teensy is a bit more expensive than those but you get almost an order of magnitude more performance for that cost, the perfect product between the other MCUs and just putting a linux enabled SBC in your project


Many people don't realize just how powerful it is. I built an analog synth emulator (although this post gave some ideas about doing a web UI for it) for fun.


There's many synthesizers that use a Teensy as the brains of the thing.

My favourite by far is the Dirtywave M8, which is an incredible bit of hardware & software design, in UI & UX.

They're unfortunately sold out, now, but they're incredible bits of kit. If you have a Teensy and some spare time, check out the Headless version of the firmware: https://github.com/Dirtywave/M8HeadlessFirmware -- upload it to your Teensy, and head to https://m8.run to get a fully featured tracker in your browser.

The Polyend Tracker is another portable synth that is backed by a Teensy -- not quite as neat, but still neat.


I used a single 4.1 to host a UART (MAX232) to give me hardware serial, scan a home-built keyboard, and maintain a text buffer and update a 3.5" LCD display. (In short I built a modern terminal around the Teensy 4.1.)


Nice, one of the things I'm doing in my "spare" time is building a framebuffer that is driven by quad-spi on a ULX3S board. The plan is to have it act as a terminal with both a character mode, a vector mode (ala Tek4016), and a pixel mode using sixel graphics. Given that it is planned to be attached to a computer system as it's "visual output device" I really hadn't given too much thought to making it a standalone terminal but that would be an interesting application for it.


I'm a huge Teensy fan. Beyond the sheer computing power of each successive board generation, the documentation, code, and support, are just out of this world. As well, Paul has made some valuable contributions to the general Arduino ecosystem.


The Teensy is awesome. Programmed one to slightly boost the bass of my audioengine a2’s. It’s been running reliably for years.


Now this is something I would love to learn more about. I feel like I'm always tinkering with audio hardware, and if I can bring a Teensy into the picture, then even better.


What's really funny is that the connectors are almost as large as the board (each).

This is well into 'infrastructure as code' territory, basically the hardware is doing the heavy lifting on a description that is cooked up using software. Of course you still need some hardware but all of the interconnects and functional blocks are soft. Very impressive work, and whoever built that library did an amazing job of it (and this person is essentially extending that library to full functionality devices).


The Behringer XAir18 I used as inspiration for this adds an FPGA to the design so it really is fully software defined for the audio path. The only limitation is that behringer doesn't let you control any of it and adds a load of arbitrary limitations.

Hopefully more open audio mixers will take off a bit :)


Open architecture DSPs have been a things for the past couple of decades in the installation audio space. Basically a 19” rack mount box loaded with FPGA’s, DSP chips and maybe some IO that you can adapt to whatever needs arise.

Definitely not budget friendly for home hacking like this, but the tooling in those ecosystems is incredibly impressive.


I actually use one of those setups semi-regularly made from Xilica hardware. It does what it needs to reasonably well but that's only enableing/disabling some microphones in a converence hall basically.

The interface is horrible, the feedback on the control surfaces is extremely slow, I don't want to see my meters and faders update at an ~1Hz rate...

Added to that is the licensing costs to actually be allowed to change the DSP routing in the thing which makes me want to replace it with opensource software :)


> Open architecture DSPs have been a things for the past couple of decades in the installation audio space.

Yeah, and for a variety of reasons have always failed to take off in the pro-audio/live-sound/music creation context. Still not entirely clear why this is, other than that apparently most of the people involved in those sort of workflows don't actually value "design your own DSP and run it in this little black 1U rack mount unit".


From a manufacturer perspective having a device with too many possible ways of doing things is not attractive from various perspectives:

- it takes away one parameter for product differentiation

- testing all possible configurations is hard

- it becomes hard to tell whether a fault is your responsibility or the responsibility of the user

- support will become more important. Support for complicated things is expensive

- mechanical I/O is typically one of the biggest cost factors in such products. If you want to support all possible I/O scenarios that is going to be a lot of connectors and thus prohibitively expensive

- most customers will rather buy the mixer can do a lot than the multipurpose device that can be forced to be a mixer

All in all there are not that many advantages for manufacturers.

That being said, I run an Extron DMP 128 Plus with Dante at work. It is basically a 128bit channel mixer on 1HE with a ton of powerful DSP and many ways to control the DSP (RS-233, Telnet, Http, Web UI, ...)

But it is not the cheapest device out there.


these are good insights.

As nerds we tend to only look at the specs and get bored when it comes to how the product is marketed and supported but this is a huge factor in development of these products. If they don't have clear obvious use cases they will be much much harder to sell. We are maybe 1% of the marketplace, the difference in revenues between 1% market coverage and 90% is massive, hardly anyone can run a business making perfect products for 1% of market


Well put. I have summarized similar thoughts in the past as "People want to buy a clock, not a box of gears and springs."


Installation audio DSP's are great for systems that run without user interaction for the order of years. They are pinned to the acoustics and functionality of a specific environment and won't need to change unless either of these do.

Live audio and production environments instead need to cater for changing acoustics and requirements on the order of seconds, minutes, or hours. There's a lot for dynamism required, and are often being interacted with by multiple people which warrants a different approach. Endless customisation here can be a hinderance rather than benefit.

A modern digital console is absolute chockers with user tweakable DSP though. Venues may also have some racked up DSP's running speaker processing with a console in front. There's no hard line, just different tools built for different needs.


I'm not sure how popular they actually are, but they make guitar stomp boxes that are DSP boxes with custom firmware. That 1U racks haven't caught on, I think, is a result of the 1U rack mount market, rather than anything else.


Do you have references for that?


Looks into QSys and biamp DSPs. Folks run whole stadiums worth of dsp on them


Nice! Thanks


Great job! If you're ever in the neighborhood consider yourself invited. The idea of a fully open modular audio mixer sounds fantastic and I really hope that you'll be able to make this work on whatever level you intend to, it's so frustrating to have to have a windows box or a mac because those are the only drivers available for a particular mixer or because otherwise a whole raft of features present in the hardware isn't available.


> What's really funny is that the connectors are almost as large as the board (each).

Cannot overstate how big an issue this is, as well as the connectors often being more expensive than the silicon. DSPs are very suited to this kind of block-flow configuration.


I don't think Teensy is a viable platform for this. For digital audio mixer, one of the most important factors is latency and this is where Teensy solution falls apart.

More reasonable approach would be to use something like XMOS chip to handle the streaming and FPGA for signal processing.

That being said, it's still looking like a fun project.


The Behringer X-air mixer does everything realtime with a lot of processing for 18 channels on a bog standard 400Mhz arm core, no special hardware needed.


According to this:

https://vogelchr.blogspot.com/2015/11/behringer-x-air-xr18-t...

It utilises XMOS and FPGA and 400MHz ARM is only to handle the user interface.


The fpga probably only does routing, it certainly can't handle effects


Yea, maybe (although I'm not able to quickly find what the teensy DSP's latency looks like), for the same price you can complain that its pre-amps are gonna suck. But on the other hand, this is much easier to implement and work with (and be cheaper) than most/any fpga systems.


heard of teensey for a while but I decide to use Daisy Seed for my project for a better latency. have you considered this alternative?


https://moogaudio.com/products/electrosmith-daisy-seed-heade...

This unit I assume? How’s the development experience been? I’m more of an embedded guy than an audio guy and this looks pretty cool! I’ve used the Teensy4 for a couple of projects in the past. Do they provide schematics?


I didn't know the latency was better on Daisy. Is that published spec or from experience? They're both M7 SOCs as far as I can tell?

I am trying to decide now between Daisy or Teensy for a piece of music hardware I have an idea for. The decision will probably be more about developer experience (so tooling, support, etc.) but I'm at step one on the journey and am having a hard time telling them apart.


Meanwhile I've been wanting like a 4-channel stereo analog mixer with nice slide pots and a UV meter per channel since the 80s...


You can buy that 80's gear for pennies on the dollar but: slides will get noisy due to dust ingestion, even if you're very careful.

I've got a big Tascam here that is from the 90's (32 channel) and it absolutely rocks but it's also physically large enough that you won't be taking it anywhere. But you never have enough channels ;)


slides will get noisy due to dust ingestion, even if you're very careful.

I thought that phenomenon was primarily due to oxidation.

Hmm, maybe get a used 80s mixer and use the hardware as UX for a digital mixer (with some algorithmic smoothing of the inputs)...


The LM3914 is (was?) a frequently used part for voltage-to-LED bars conversion: https://www.ti.com/product/LM3914#features


I think the Tascam Portastudio 244 would have fit the bill, but with the tape deck taking extra space.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: