Dirac update , Roon and VST/AU plugins

Thanks for the info- is this only applicable to Windows?

Search leads to diracdocs that specifically mentions “Windows”

Sorry, but I do not know. I only use Windows!

Sorry for resurrecting such an old thread but I would like to learn more how you did this setup.

My current streamer does not allow any kind of loopback, so I’m looking for a way to introduce Dirac in the digital domain. As most of my listening is via Roon running on a Windows 10 laptop to a 2.0 stereo setup, all I really need is a way to loop the Roon audio via Dirac processing in the digital domain before sending it out to my streamer.

Thanks in advance!

You could trial DS WASAPI ASIO router mixer from 3Delite.

You can route Roon to your hardware speakers.
DS WASAPI ASIO router mixer can then loopback the hardware speaker output to your streamers’ output interface. You’ll have to mute your hardware speakers, of course.
Additionally, DS WASAPI ASIO router mixer provides VST plugin capability for each input.
All in all, a possible one stop solution.

Nb - I’ve made the above suggestions based on the information provided so far. It may not be optimal, depending on your hardware and streamer.

Thank you, I’ll take a look at the software you suggested.

My streamer is from Linn (Klimax DS), so the final output after the loop back via the VST plugin needs to back through Roon and the to the streamer.

One correction, if I may, you do not route back into Roon.

It’s

  1. Roon —> hardware speakers
  2. DS WASAPI ASIO input device (WASAPI speaker loopback) —> output device (WASAPI Linn Klimax or however it appears).
    2b) mute hardware speakers, play audio and hopefully it should be heard through system
  3. DS WASAPI ASIO Option tab, add path to Dirac VST plugin file and restart program
  4. DS WASAPI ASIO VST DSP plugin section, enable Dirac VST plugin. Double click plugin to open it and setup.

Hopefully, it will make more sense once you’ve run DS WASAPI ASIO router mixer.

Good luck.

Edit - I’m assuming that Roon does not appear as an output device within DS WASAPI ASIO router mixer. I don’t run Roon so cannot test. If it does, I’m not sure what benefit there would be as the audio has already been ‘processed’ by Roon and you are simply ‘inserting’ a VST plugin between it and your streamer.

The misunderstanding is probably on my end. It was my assumption that Roon acts as a control point for a streamer sitting in the same LAN, while offering all the nice library functions etc. for the user. When a user selects a track, Roon essentially points the streamer to the source of the audio file, stored somewhere, either in the same machine as the Roon core or on a NAS.

BUT, on top of this, Roon can also fiddle with the actual bitstream, if the hardware platform where the Roon Core is run is fast enough. This could be for example to do a upsampling of the audio file, before it is sent to the device. It was in this latter case that I thought that I could insert the Dirac VST plugin, before Roon then points the streamer device to the dynamically created “file” and I would now have a room correction EQ baked into all the music I stream using Roon as the control point.

Am I completely lost with this approach?

Hi @igufi

My playback chain looks like this:

1. Roon =>
[Enable Squeezebox Support = Enabled]

2. LMS-to-UPnP =>
(https://sourceforge.net/projects/lms-to-upnp/)

3. foobar2000 =>
w/ foo_vst adapter
(https://hydrogenaud.io/index.php/topic,84947.0.html)
w/ UPnP/DLNA Renderer, Server, Control Point
(http://foobar2000.org/components/view/foo_upnp)
w/ UPnP MediaRenderer Output (Optional. This allows you to output to UPnP MediaRenderers like jplay)
(http://foobar2000.org/components/view/foo_out_upnp)

All three components above can be run on a single PC or 3 separate PCs for each talks to each other via network. They discover each other pretty well but some learning and manual setting are required as I expanded below:

Some notes on LMS-go-UPnP setup:
LMS-to-UPnP installation and running has a learning curve attached to it. It took me a while to have it running smoothly. Its support is available at http://forums.slimdevices.com/showthread.php?103728-Announce-UPnPBridge-integrate-UPnP-DLNA-players-with-LMS-(squeeze2upnp)&p=820082&viewfull=1#post820082.

There is a config file required when running the LMS-to-UPnP. Please modify the following setting in the default config:

<roon_mode>1
<sample_rate>192000
<stream_length>-2
You might have to fiddle with other settings.

I suggest you read its “userguide.html” (hidden deep in the installation directory and it does not highlight important stuff) thoroughly and try to get used to its “raw” user interface.

I would not say it is an easy setup but once setup right, it is quite stable especially with the lated dirac vst. I might try jriver in place of foobar. Technically it should work. Good luck :crazy_face:

1 Like

You are not completely lost in your understanding of Roons’ capabilities except in one respect. Although Roon can perform DSP, it cannot invoke VST or AU plugins. That has to be done on the audio output by Roon.

DS WASAPI ASIO router mixer can do this as can Foobar (see above) as well as JRiver amongst others. The trick is getting audio output by Roon to these programs. Hence the different approaches described by myself and Shinyc.

Right. I think I’m on the map now :slight_smile:

It seems that the only fuzzy part is the final routing of the “post-VST” audio stream to the streamer. I believe that Linn DS does support UPnP, so @shinyc’s approach in using the UPnP MediaRenderer Output plugin as part of the plugin-stack for Foobar2000 could work in my setup.

Alternatively I need to find some other UPnP software that would pickup the DS WASAPI ASIO mixer’s output and send it onward to the streamer.

Sorry. That is beyond my knowledge. I am seeking a single box solution if you know what I mean hoho.

1 Like

IT WORKS! I followed @shinyc’s guide and read the freakin’ manuals for each plugin and software. Roon happily recognizes the SqueezeLite and Foobar2000 picks up the stream and pushes it through the VST plugin(s) of my choice (I quickly tried Blue Cat’s tripple EQ) and then sends it onwards to the Linn DS streamer via UPnP.

The only small inconsistency is that I haven’t figured out how to instruct Foobar to adjust the playback stream capture to change the capture sample rate and bit depth depending on the incoming stream from Roon. Linn DS also seems to be a bit picky sometimes to start playing the stream, I may have to help it along by opening the Linn app and just pressing play for the UPnP stream.

That’s what miniDSP should be - there is a very small box absulable that would be capable of handling Dirac 2.0

Congrats. Did you check the “Max sample rate”, “Max bits per sample” in the advanced section of the device setup dialog box in Roon output device (squeezebox lite one)? They can go as high as your streamer/dac can digest.

Also look into the config for foobar upnp mediarenderer. There is a section for Linn products.

Actually I have one of those boxes. I use it as a crossover for connecting a pair of large speakers working as subwoofers. Then I run dirac on foobar to integrate all. One day I should try dirac running on its dsp/dac chip. This sub $500 solution might beat $5,000 setup.

I think the problem lies here:

As you can see, user can only set one value for the capture rate for the audio foobar is currently playing. The final value I’ll set here probably also will depend on the samplerate and bit depth that the dirac live VST plugin will accept as input. No need to do repeated up and down sampling before sending it to the streamer.

Hmm this is really tricky. I thought such a miniDSP should be an allround solution for Dirac / room correction. But seems unfortunately quite complicated to integrate into Roon.

I could certainly go with the minidsp box and put that between my pre and power amp. The downside is the additional AD/DA conversion that the minidsp would introduce to the signal chain - any benefits that my streamer (Linn Klimax DS) would have brought with its SOTA DA conversion would be lost (unless the DACs in minidsp are even better).

With my approach, the Dirac Live room correction is applied in the digital domain and the final stream is then sent to the Klimax’s DA-converter and onwards to the pre-amp etc.

One can argue whether there are any audible difference between the two approaches but at least logically my approach brings less opportunities for distortion in the signal chain.

I think this page is irrelevant because I am not using foo_upnp 's “Media Server” (i.e. it is turned off.). It is more of a function of foo_out_upnp. I am outputting contents being played by foobar to Jplay Femto renderer and its foobar setup dialog box looks like this.

My dac lights up correct sample rate led matching the source file. Your situation may differ from mine.

Ah, I was linking one too many UPnP media renderers in the chain - essentially capturing the audio playing on the laptop by foobar (acting as a LSM for Roon) and then sending it onward. Using your approach above works much better and the sample-rate now follows the source material.

The only thing that does not match the source is the bit depth: if I set the Output data format to 24-bits, then any 16bit material played via Roon is sent to the streamer in 24bit depth. This I can live with :slight_smile: