• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

ASR Open Source Streamer Project

anphex

Addicted to Fun and Learning
Forum Donor
Joined
May 14, 2021
Messages
680
Likes
890
Location
Berlin, Germany
I am thinking about a full DAC here not just streamer. I should be able to receive input from tvs, consoles, avr etc
 

voodooless

Grand Contributor
Forum Donor
Joined
Jun 16, 2020
Messages
10,371
Likes
18,276
Location
Netherlands
I am thinking about a full DAC here not just streamer. I should be able to receive input from tvs, consoles, avr etc
I don't see how that answers the question. None of the things you mention have ADAT output..
 

tinnitus

Active Member
Joined
Jan 26, 2021
Messages
146
Likes
202
Location
Germany
I see this Project more as a combination of Inputstreams from Network or Toslink and a grown up DSP like Camilladsp. Therefore is a Computing Unit necessary. The DAC gets then the input from the "streaming unit".
 

anphex

Addicted to Fun and Learning
Forum Donor
Joined
May 14, 2021
Messages
680
Likes
890
Location
Berlin, Germany
@tinnitus
I didn't want to open a whole different thread because it's too similar. You could use the Raspi even as a streamer because it has enough processing power and RAM. Even WLAN/Ethernet.

@voodooless
Those devices have all optical output, some with two and some with more channels. But oohhh I noticed my confusion now. I keep calling multichannel TOSLINK "ADAT". Looking for Toslink multichannel ICs there are plenty of devices to interface this over I2S through GPIO pins.

We made a moderate progress.

Edit2:
Okay let me summarize where I want to go:
- I want a true high quality multi channel DSP/Streamer/DAC (even it the SINAD is slightly less then top end stereo DACs)
- I want it to be modular and customizable through software updates of the micro controller and the ICs to be replaceble - only Pin calbes and clamp connections, no solder
- processing of 8 inputs over optical and USB and up to balanced outputs

What causes the most headache is how to physically interface the ESS9038 since the package is meant to be soldered. There are breakout bords but it's still not DIY friendly.

For starters it's "enough" if the bare bone device can be programmed and configured over SSH, Web-UI and/or HDMI out. If the core concept works, adding a screen, knobs and a menu interface should be feasable too. But it begs the question if a PI-board is still enough or even the best solution.

Edit3:
This thing could work!
1681900231531.png


Considering the raw parts I have in mind so far the price tag of the whole project without case and OLED screen ranges about 250-300 €, from a pessmist perspective even.


Edit4: (last edit I pinky swear)
I took a look at multiple dedicated ICs like an XMOS USB Interface but those would need additional circuitry for DSP, Streamer, etc... The PI board seems like the best solution no matter how I look at it. Each GPIO pin has a clock of about 30 Mhz and a clock drift of 0,001 % worst case(!). Jitter should never be an issue there.

(I lied)Edit5:
I just remembered some of the Pin outs of the Pi board have 3,3V and 5,0V which is just PERFECT and makes the DC-DC stuff also unneccsary for the most part. Nice!
 
Last edited:

voodooless

Grand Contributor
Forum Donor
Joined
Jun 16, 2020
Messages
10,371
Likes
18,276
Location
Netherlands
You can’t just connect a few pins and hope it all works out. There are significant limitations on how quickly you can toggle the gpios of the PI, and the normal I2S output doesn’t work well for multi-channel I2S. Never mind the sheer amount of drivers needed to bitbamg all of the stuff, or use some tricks to leverage DMA to.

And even then, creating an ESS based DAC is by no means trivial. The chip doesn’t have a usable line output, so an IV stage is needed.

For a novice, this is probably several bridges too far.
 

anphex

Addicted to Fun and Learning
Forum Donor
Joined
May 14, 2021
Messages
680
Likes
890
Location
Berlin, Germany
@voodooless

What do you mean "toggle"? Is there a need to toggle the pins? I thought once the system boots up they get by prior configuration assigned to a "channel" with clock and sample size and then it's continously transmitted over a low level written I2S interfacing code compiled in c++ or even Python.

Since the ESS accepts I2S there should be relatively few problems after settings up the correct routing matrix, filters, register flags etc.

I wouldn't mind if it doesn't work a first. My priority would be trying to NOT fry the components and then get one channel working. Then I should be able to implement more channels.

If the ESS is really that complex (while it doesn't appear like that at first glance in the data sheet and manual), do you have suggestions for a simpler IC?
 

voodooless

Grand Contributor
Forum Donor
Joined
Jun 16, 2020
Messages
10,371
Likes
18,276
Location
Netherlands
@voodooless

What do you mean "toggle"? Is there a need to toggle the pins? I thought once the system boots up they get by prior configuration assigned to a "channel" with clock and sample size and then it's continously transmitted over a low level written I2S interfacing code compiled in c++ or even Python.
Eh, no, it’s not going to be that easy. It’s also a matter of how fast you can access the pins, how well you can control the timings, etc..
 

anphex

Addicted to Fun and Learning
Forum Donor
Joined
May 14, 2021
Messages
680
Likes
890
Location
Berlin, Germany
Eh, no, it’s not going to be that easy. It’s also a matter of how fast you can access the pins, how well you can control the timings, etc..
If I read right the GPIO pins of the Pi have a clock of about 30 Mhz which is far beyond what audio needs. Then there will be each a shared pin for sample size, clock sync and channel select to keep everything aligned. So I can't think of any problems there as long as the code is error free.
 

voodooless

Grand Contributor
Forum Donor
Joined
Jun 16, 2020
Messages
10,371
Likes
18,276
Location
Netherlands
If I read right the GPIO pins of the Pi have a clock of about 30 Mhz which is far beyond what audio needs.
That is in a loop toggling only one of the IOs. This doesn’t tell you how fast you can actually an IO in practical applications, let alone a multitude of them.
 

anphex

Addicted to Fun and Learning
Forum Donor
Joined
May 14, 2021
Messages
680
Likes
890
Location
Berlin, Germany
@voodooless
Voodoo pleaaase just let me try it, even if I burn myself. It's like you don't want this to be tested o_O. And having a Pi laying around is always a nice thing.

But I would be glad for a list of things I should confirm before buying the ICs on a hunch (while this will be probably unavoidable, buying stuff that doesn't work later on and I have to order something else).

But I double and triple checked with GPT4 that most of my ideas are feasible and will work out.
 

voodooless

Grand Contributor
Forum Donor
Joined
Jun 16, 2020
Messages
10,371
Likes
18,276
Location
Netherlands
@voodooless
Voodoo pleaaase just let me try it, even if I burn myself.
I won’t stop you ;)
It's like you don't want this to be tested o_O.
I don’t need to cut your finger off to know that it will hurt ;)
But I would be glad for a list of things I should confirm before buying the ICs on a hunch (while this will be probably unavoidable, buying stuff that doesn't work later on and I have to order something else).
Don’t buy ICs. Buy an analyzer so you can verify performance of the IOS before you proceed to do anything.
But I double and triple checked with GPT4 that most of my ideas are feasible and will work out.
:facepalm:

Better idea buy a Xmos dev board and try to hook everything up there. It has the needed interfaces to connect multiple audio channels with much more ease, and you can still interface with the api via USB Audio. That will be a much simpler and more feasible endeavor.

Do you even have any programming knowledge?
 

anphex

Addicted to Fun and Learning
Forum Donor
Joined
May 14, 2021
Messages
680
Likes
890
Location
Berlin, Germany
Yes, I have basics in almost all languages, this is why I understand what GPT4 is telling me and I can read it's outputs and see flaw in some suggestions. Dunno why that emoji, GPT4 is better than 100 % of all forums (as we currently experience right here for this specific case :( ).

Do you have a clear suggestion for an Xmox board so I can have a look at it?
 

mdsimon2

Major Contributor
Forum Donor
Joined
Oct 20, 2020
Messages
2,508
Likes
3,353
Location
Detroit, MI
@tinnitus
I didn't want to open a whole different thread because it's too similar. You could use the Raspi even as a streamer because it has enough processing power and RAM. Even WLAN/Ethernet.

@voodooless
Those devices have all optical output, some with two and some with more channels. But oohhh I noticed my confusion now. I keep calling multichannel TOSLINK "ADAT". Looking for Toslink multichannel ICs there are plenty of devices to interface this over I2S through GPIO pins.

We made a moderate progress.

Edit2:
Okay let me summarize where I want to go:
- I want a true high quality multi channel DSP/Streamer/DAC (even it the SINAD is slightly less then top end stereo DACs)
- I want it to be modular and customizable through software updates of the micro controller and the ICs to be replaceble - only Pin calbes and clamp connections, no solder
- processing of 8 inputs over optical and USB and up to balanced outputs

What causes the most headache is how to physically interface the ESS9038 since the package is meant to be soldered. There are breakout bords but it's still not DIY friendly.

For starters it's "enough" if the bare bone device can be programmed and configured over SSH, Web-UI and/or HDMI out. If the core concept works, adding a screen, knobs and a menu interface should be feasable too. But it begs the question if a PI-board is still enough or even the best solution.

Edit3:
This thing could work!
View attachment 280211

Considering the raw parts I have in mind so far the price tag of the whole project without case and OLED screen ranges about 250-300 €, from a pessmist perspective even.


Edit4: (last edit I pinky swear)
I took a look at multiple dedicated ICs like an XMOS USB Interface but those would need additional circuitry for DSP, Streamer, etc... The PI board seems like the best solution no matter how I look at it. Each GPIO pin has a clock of about 30 Mhz and a clock drift of 0,001 % worst case(!). Jitter should never be an issue there.

(I lied)Edit5:
I just remembered some of the Pin outs of the Pi board have 3,3V and 5,0V which is just PERFECT and makes the DC-DC stuff also unneccsary for the most part. Nice!

Why fuss around with I2S when there are so many multichannel USB DACs that work well with the Pi? The approach described in my signature meets all of your requirements with completely off the shelf equipment including a remote control, case and display. Why complicate it more?

Michael
 

anphex

Addicted to Fun and Learning
Forum Donor
Joined
May 14, 2021
Messages
680
Likes
890
Location
Berlin, Germany
Why fuss around with I2S when there are so many multichannel USB DACs that work well with the Pi? The approach described in my signature meets all of your requirements with completely off the shelf equipment including a remote control, case and display. Why complicate it more?

Michael
On first glance your guide looks great! This might be it!

I skimmed over it but basically I can follow your guide with a Motu Mk5 and have a plug and play device for multiple inputs, outputs, DSP and even optical in?
 

mdsimon2

Major Contributor
Forum Donor
Joined
Oct 20, 2020
Messages
2,508
Likes
3,353
Location
Detroit, MI
On first glance your guide looks great! This might be it!

I skimmed over it but basically I can follow your guide with a Motu Mk5 and have a plug and play device for multiple inputs, outputs, DSP and even optical in?

Yes, there are some nuances with respect to clocking on the MK5 but it is very flexible. You can switch inputs by changing CamillaDSP configurations. It has ADAT and SPDIF optical inputs. If you lay out your specific sources and use case (active stereo speakers, multichannel audio, movies, etc) we can talk through more details.

Michael
 

anphex

Addicted to Fun and Learning
Forum Donor
Joined
May 14, 2021
Messages
680
Likes
890
Location
Berlin, Germany
Okay what it boils down to is that I want ditch my AVR and have one single core audio device that can be connected to a PC over USB and as an optical input for all other home devices like TV or consoles.

Whenever I wanted to use multichannel I had so use HDMI, eARC and the Denon X3700 while also turning a knob in my passive XLR switch to change the power amp routing.
This all could be omitted if I had one core device where I just need to change the input source (usb/optical) and then the same FIR processing is applied regardless of the input device and clock. So no matter what I use as input, the room calibration would apply and I have the same high quality output (UltraLite Mk5 for example).
 

anphex

Addicted to Fun and Learning
Forum Donor
Joined
May 14, 2021
Messages
680
Likes
890
Location
Berlin, Germany
That’s what I said in the first place: get a multichannel USB interface ;)
I did! But I send the UltraLite back because it didn't have multichannel, it just had multiple stereo outs (at least in Windows) which was pretty useless for movies and gaming.
Considering this new possiblity thanks to @mdsimon2 I might even call the retailer and ask them to send this exact device back to me now haha.
 

voodooless

Grand Contributor
Forum Donor
Joined
Jun 16, 2020
Messages
10,371
Likes
18,276
Location
Netherlands
Don’t use Windows then ;) you can plug most interfaces into a pi as well.

The bigger issues is getting multichannel content in. Things like Atmos are basically off limits to get digitally. You’ll need something to do the second for you. Bitatreaming DD+ over SPDIF may also not be trivial. It will probably need custom software to decode it.
 

mdsimon2

Major Contributor
Forum Donor
Joined
Oct 20, 2020
Messages
2,508
Likes
3,353
Location
Detroit, MI
Okay what it boils down to is that I want ditch my AVR and have one single core audio device that can be connected to a PC over USB and as an optical input for all other home devices like TV or consoles.

Whenever I wanted to use multichannel I had so use HDMI, eARC and the Denon X3700 while also turning a knob in my passive XLR switch to change the power amp routing.
This all could be omitted if I had one core device where I just need to change the input source (usb/optical) and then the same FIR processing is applied regardless of the input device and clock. So no matter what I use as input, the room calibration would apply and I have the same high quality output (UltraLite Mk5 for example).

OK, let's talk specifics.

Sources
PC over USB: How many channels? What formats?
Optical input from TV and other consoles: Is this stereo? Or lossy DD 5.1 over optical?

Outputs
How many output channels?
What are you doing with FIR? If you have long linear phase FIR filters this can add large delays which are unsuitable for audio/video applications unless you have the ability to delay video.

Michael
 
Top Bottom