MAD - Modular Audio Devices

Status
Not open for further replies.

MickMad

Well-known member
Hey there,

I'm working on this project full time since 5 months now: https://hackaday.io/project/20982-mad-modular-audio-devices

It's a set of modules aimed towards hifi audio applications with the Teensy 3.x

The CORE module sports an AK4558EN from AKM and a ultra-low noise LDO for the analog power, stereo input and output on 2.54mm headers that also provide power to small external amplification modules (cleaned by an LC filter on the USB/ext. 5V power supply), and a Teensy pins breakout on one side on 1.27mm pitch headers. The breakout headers might go away in the next revision to leave place for external RAM chips like on the Teensy Audio Shield, but I was planning on using that breakout for future modules. The 2.54mm headers can be connected either to small breakouts that I designed for 1/4" TRS jacks and for 1/8" jacks for simple applications, or to external analog interfaces. The CORE module also provides solderable jumpers to easily configure the board to use either I2S channel available on the Teensy, so that you can stack two boards together and have 4 ins 4 outs.

The IN module sports two THAT Corp 1246 differential line receivers with per-channel volume control, +4dBu or -10dBV reference level switch, and external preamp modules inputs selectable with a pushbutton; the OUT module sports a stereo volume control with impedance-balanced ouptuts, auxiliar output for connection with external power amp modules, and a separate headphone output jack selectable with a switch and powered by a ultra-low distortion TPA6120A2 amplifier.

There's also a HI-Z module to be used as an external preamp module for the IN one, that as you can imagine, adapts the signal of an instrument like a guitar to an acceptable signal for the line receivers; this module has its own gain pot and its own mono jack.

Finally, I also developed a small split rail power supply using TI's DC-DC converters and audio-grade LDOs (we're talking of uVs of ripple on the supplies, not mV) to power everything up. The PSU module can be powered by USB, 5V DC on a standar barrel jack connector, or through a terminal block to connect for example a battery pack.

You can read more details on the hackaday.io page.

Now, you might ask, "what's the reason of this post if everything is already on that other page"?

Well, I have the intention of crowdfunding this project and I'd like to know how much people is really interested in such boards. In particular, I'm planning on making a campaing for the CORE module in the next month/months, and I would like to receive some feedback about its functionalities, its pros, its cons, etc. from you guys, you that make the Teensy community thrive. I've been using the Teensy since 2013, my first biggest achievement was getting USB Audio to work and now that's part of the Teensy core library, I already worked with the AK4558 codec and that's already natively supported by the Teensy too; this year with my last job I achieved ultrasound sampling at 700KHz through the amazing Teensy SPI and DMA capabilities, and I'm planning on using that same SPI/DMA duo with a custom serial interface to control a LOT of buttons, LEDs, knobs/sensors etc. to make HUGE control interfaces; I'm planning on making 192 KHz/24 bit audio on the Teensy a stable thing, not just a hack, and I'd love to make ASIO (instead of USB audio) a thing too. I really want to give something back to this community and this is my way of doing it.

I made this post because I want to share the vision I have with you; this is only the beginning of a series of modules that I'm working on to make any kind of audio application powered by Teensy as easy as possible to build and program; the time will come for MIDI IO, Ethernet support with PoE, then some more like a pro level mic interface, fully differential outputs (not impedance balanced, but real, actively driven balanced outs), a more powerful power supply with transformer to be able to use vacuum tubes for preamps, or to make power output amplifiers for passive speakers... I'd like to go as far as I can.

I need time and support to make my vision come true; if I'll get no support, I'll have to go back to work full-time for someone else, bringing someone else's ideas to life, and if that happens, I will not have the time anymore to work on my ideas... you get the point.

I'm waiting for your comments :)
 
Good examples could go a long way towards demonstrating the real-world value.

The same could probably also be said of the audio library....
 
I know, but good examples (read: more boards) also require money that, being fully autofinanced (by unemployment money), I don't really have.

First thing that comes to my mind is open source usb audio interface, something that simply does not exist on the market, then there's a plethora of synths demos here that could well benefit from the hi performance of the codec and of the interfaces; just add some keys and knobs and that's it.

I was waiting to have a barebones port expander ready, but I suppose that for the sake of examples I can easily use a breadboard with 16 buttons, some knobs, and make a simple mono acid bassline sequencer on the Teensy. Then, another example program could use the same buttons and knobs to show the USB MIDI function as well.
 
If you have a camcorder or recent model smart phone, you could shoot some videos showing what it can do.

You'll need to put together a video to have any chance at crowdfunding, so might as well get started with shooting video...
 
In this latest video you can see all the prototypes I've been working on, including the IN HI-Z module, an instrument preamplifier.

 
Very nice. Can you further explain your HI-Z module: What it is doing and maybe post a schematic.
 
Very nice. Can you further explain your HI-Z module: What it is doing and maybe post a schematic.

The HI-Z module is, as the name suggests, an high impedance preamplifier with gain control; its output is connected to the IN module frontend, which is a switched differential line receiver done with an INA137 (switched because you can either use an onboard jack or an external preamp such as the HI-Z, through a pin header); the IN module also provides full analog volume control for two channels.

You can find more information about the whole project in the link I posted in the first post; same thing for the schematic, everything is on the Hackaday project page. For your convenience, here's the link for the HI-Z schematic: https://cdn.hackaday.io/files/271981163639232/in hi-z.pdf

Bear in mind that this is a prototype: I noticed that the gain gets way too high and it overloads the amplifier after half rotation of the gain setting pot; also, since the IN module has a differential line receiver I thought that it would have been better to have a differential output on the HI-Z module, but it turns out that the line receiver does not like the way I did it that much (maybe because of the overloading caused by the gain setting) so the next revision of the HI-Z will have a simple single ended output.
 
So, after quite some development time it's time to go back to the drawing board...

As it is right now, it makes no sense to start a kickstarter for the CORE module, because it has no added benefit with regards to the Audio Adaptor Board; apart from the higher quality codec, there's no mic input, no headphone output, no SD slot, no RAM chip support... and the higher quality codec loses quality just because the I2S and I2C signals are not isolated... so yeah, you get the point.

Therefore I'm looking forward at making a second revision which will have at least on board RAM and microSD slot, ideally an onboard Flash too; but most importantly, I'm looking at isolation solutions at the moment. My brain is hurting at the sight of all the digital isolators available and also because of their costs, but I get that they are a must have with high quality codecs.
Since we're at it, I'm also looking at integrated isolated DC/DC converters, Murata has decent options at decent efficiency too.

Specifically, I'm looking at the Analog Devices ADUM series of isolated dc/dc converters (they also offer chips with integrated DC/DC converters) and at the Isolated Murata DC/DC converters that you can find here: http://power.murata.com/en/products/dc-dc-converters/isolated.html (they have a plethora of options)

An option would be to use one of these integrated dc/dc + interface isolators for powering the digital part of the codec and isolating its i2S/I2C lines, while using a 5V to 5V isolated Murata dc/dc converter to power up the analog part of the codec (with a 3.3V LDO) and the single supply line in/line out drivers (I'm thinking of using INA1650 and DRV604).

Another option would be similar to the previous, but with a dual supply Murata converter and higher end line in/line out drivers (like the INA137 as used in the IN module I designed, and using DRV135).


I was also thinking of using an external clock generator for the I2S MCLK line; this could be helpful in multi-sampling frequency solutions. It could take the Teensy's bus clock and scale it precisely to the MCLK needed for all sampling frequency. The CS2000 from Cirrus Logic seems like a good option, but more components mean higher cost and more development time.
 
I've been reading up a lot on audio interconnection lately, and really liked this: When-should-an-audio-pre-amp-use-a-differential-input
I think you might find it helpful. It was asked by a guitar player, and 4 people gave really good answers.

Also, if you could find the time, help me understand what you mean by,
fully differential outputs (not impedance balanced, but real, actively driven balanced outs)
I asked about balanced outputs in a post today, and I was wondering how the output described in the post relates to what you describe above.

Thanks
 
You can find more information about the whole project in the link I posted in the first post; same thing for the schematic, everything is on the Hackaday project page. For your convenience, here's the link for the HI-Z schematic: https://cdn.hackaday.io/files/271981163639232/in hi-z.pdf

So, the RV1 is the gain poti? should gain not be set on the upper opamp and the lower be used only for generating the inverted signal?
My hunch is that with this circuit only the inverted signal is amplified while the other is not modified.
 
I've been reading up a lot on audio interconnection lately, and really liked this: When-should-an-audio-pre-amp-use-a-differential-input
I think you might find it helpful. It was asked by a guitar player, and 4 people gave really good answers.

Also, if you could find the time, help me understand what you mean by, I asked about balanced outputs in a post today, and I was wondering how the output described in the post relates to what you describe above.

Thanks

Fully differential outputs are outputs in which there's two opamp, each driving one side of the balanced line; impedance-balanced outputs are outputs in which there's only one opamp driving one side of the balanced line, while the other line is connected to ground on the driver side through an impedance (usually a resistor) which is of the same value as the output impedance of the actively driven side.

Using a fully differential output in a mixed interconnection (fully differential driver connected to single ended receiver) might give some issues because you would be actively shorting to ground the output of an opamp, which could lead to non-ideal conditions. When used in fully differential interconnections this is the best you can ask for because you get full headroom from differential receivers. This is the kind of output that you can find on hi-end TRS monitor outputs or directly on XLR connectors.

Using an impedance balanced output is cheaper because it requires less components, gives less headroom when used with differential receivers, but unlike a single-ended output it retains common-mode rejection because of the matched impedance on the differential lines. As said, you lose some headroom but at least the noise coupled on the differential cable is still eliminated correctly at the differential receiver's side.
 
So, the RV1 is the gain poti? should gain not be set on the upper opamp and the lower be used only for generating the inverted signal?
My hunch is that with this circuit only the inverted signal is amplified while the other is not modified.

Yes exactly. I was going for an asymmetrical gain because if I wanted to use a pot on the first stage I should have used a HUGE pot (1MOhm impedance for up to 500x gain means a 500MOhm pot). In the next revision of the CORE I will drop the dedicate gain pot for the hi-z input and I will have an attenuation-gain stage after a switched differential receiver/hi-z receiver.
 
Yes exactly. I was going for an asymmetrical gain because if I wanted to use a pot on the first stage I should have used a HUGE pot (1MOhm impedance for up to 500x gain means a 500MOhm pot). In the next revision of the CORE I will drop the dedicate gain pot for the hi-z input and I will have an attenuation-gain stage after a switched differential receiver/hi-z receiver.

I would first transform impedance (e.g. I use a FET for my ceramic sensors)
 
Yes, there is going to be a mechanical switch to connect one TRS jack to either an opamp in differential configuration (for line levels) or to an opamp in a non inverting configuration with at least 1MOhm input impedance; I find that the simple first stage of the hi-z module I posted before works well with my guitars with the LME49721 opamp.
 
MickMad, it might help us (me) understand what you are trying to do - I don’t know what problem you are solving and how it would result in a psychoacoustically perceivable improvement(s). Please help us help you by understanding the big picture of your vision.
 
MickMad, it might help us (me) understand what you are trying to do

What I'm trying to do is a Teensy audio board on steroids and in a modular/scalable fashion.

On steroids means that the sound quality will be higher than what's currently available, modular/scalable means that users can choose the features they need and scale up their projects with modules.

I don’t know what problem you are solving

I want to make high quality (like in studio quality) audio more accessible to developers, and to users who will buy the developer's products (included mine).
I want a scalable solution where users choose the features they need and add them as modules in their projects, instead of having to buy something where they don't need half of its features anyway.
I want a modular solution that will be future-proof, so that if "tomorrow" I come up (or someone comes up) with an idea, old users won't have to start from scratch buying a new product that does just one thing more than the previous version, but they can rather upgrade.

how it would result in a psychoacoustically perceivable improvement(s).

I'm focusing on sound quality at the moment; this means, less distortion, less noise, higher SNR, improved bandwidth. To achieve that, I'm using a CODEC which is already used in high quality commercial products, and I'm pairing that with the best amplifiers I can find to achieve the CODEC's specs along all the audio path. I'm also using techniques which have already been discussed here on the forum and tested in some other Teensy-compatible audio boards, like using digital isolators between the Teensy and the CODEC to avoid the digital switching noise of the Teensy coupling in the analog signals path.

Please help us help you by understanding the big picture of your vision.

The complete solution will be composed of:
a central module which will host the Teensy, the CODEC and some other goodies (RAM/Flash, MIDI IO)
a power supply unit, to isolate the digital power supply for the Teensy from the clean, analog path power supply (outputs either one positive supply rail, or two split supply rails)
an analog input module (in either single supply or split supply configuration)
an analog output module (in either single supply or split supply configuration)
a digital io expander module, for connecting submodules made of buttons, LEDs, and sensors (e.g.: FATAR-style keyboards, FSRs for MPC-like pads, pots and sliders for MIDI CC controls, etc.)

The big vision is one where you get some of these modules, you plug them together and voila! you have your digital synth; you take some other modules and voila! you have your USB audio sound card; you take some other modules and voila! you got a phono-to-USB converter, etc.

As of now I am focusing on the first 4 points; the digital IO expander, while relevant to my vision, is a project of its own that I am doing in parallel.

Since the CODEC, unlike the SGTL5000, lacks a PGA on the line inputs, a mic input with bias, and a headphone output, the central module will only have an unbalanced stereo line-in with no gain control, and an unbalanced stereo line-out with attenuation. This should be enough for most projects where audio is only output; if an input is also needed, its volume should be controlled from the device generating it.

The analog input module (at least the version I'm working on now) has a balanced stereo line input with gain/attenuation (independent for each channel), a guitar preamp on the left channel, and an electret mic preamp on the right channel. The guitar and mic preamps are selectable through a switch on each channel. An input module like this one would be perfect in a USB audio card setting, in a digital mixer setting, or in a guitar effects processor if used with the guitar preamp.

The analog output module will have an impedance-balanced stereo line out, and an headphone out. I still got to define specs for this module, but I am always thinking that having a stereo monitor out and a headphone out with separate volume controls is a must for such a module. This would be perfect in all kinds of setups really.

The PSU takes 5V from an USB port and uses them to power up the Teensy and an isolated DC/DC converter; the isolated voltage is used to give a clean power supply to the analog part of the CODEC as well as to the analog in/out modules.


All the things that I'm talking about are in the making right now. Since I'm still deciding on how to modularize everything in an efficient way (in terms of usability, production costs, quality, scalability, etc) I don't know yet how the final version will be, but I hope you can get a better idea after this post.
 
OK! Impressive vision, and I like the modularity. What was very satisfying was your answer on sound quality - that you were looking at the power supplies, grounding, and other sources of degradation. So often so much focus is placed on the number of bits and clock rate of the DAC, and too little time on the other areas of the system. I like your balanced approach.

BTW, besides enthusiasts being interested in your ambitious project, who is the target market? What are the primary usage areas? The answer to these questions will help you understand how many you might produce, and influence your decisions regarding tooling and scalability.

Good luck with your platform!
 
Status
Not open for further replies.
Back
Top