Trying to understand ASIO and if it's the right approach

Hi all...

I have a small little app that I'd like to make.  Right now I have a set of computer speakers as well as Yamaha studio monitors.  As you might have guessed, the monitors don't sound as good as the computer speakers. I don't really want to keep both the computer speakers just to listen to music and or watch movies just because they sound better than the studio monitors.

A lot of the music i listen to comes from streams on the internet, mainly via my paid subscription to Spotify.  Forgetting about the computer speakers for a minute, my setup looks like this.

Internet stream -> computer sound card -> external digital interface -> studio monitors.

My ultimate goal here is to figure out how I can take my stream signal and run it though my DAW ( Sonar x3 ) prior to the audio being sent to my external digital interface then out to my monitors.  The reason for this is that I want to be able to put some EQ processing on the stream to try and bump up some of the frequencies that get killed by the flat response of the monitors. The purpose behind this is, is that if I'm successful, I can simply sell off my computer speakers and just use my monitors for listening to music.

So, I would like to go from this
Internet stream -> computer sound card -> external digital interface -> studio monitors

To this
Internet stream -> computer sound card -> Sonar X3 -> external digital -> studio monitors

Sonar X3 knows about the external interface which is great BUT.. It does not allow me to specify a source stream, from say my sound card, then output to my ASIO driven external digital interface....

So, my question becomes, can I create my own ASIO software device ( a client server type app ) that can connect to the computers audio card, read the stream, send it to Sonar X3 for processing, get the stream back from Sonar, then send that processed signal out to my digital interface?

If this is far fetched are there other alternatives get achieve the same thing?



I think I have been looking at this wrong. I could be mistaken but... Wouldn't I want to capture the stream before it even gets to the sound card... Somehow hijack the signal/audio stream directly from Spotify?

I'm not exactuly sure what I'm doing here. I come from 13 years of database driven type of apps.  Audio processing is completely foreign to me. But, i'm trying to ramp up on this. It's where I'm wanting to take my career. Any help to get me started in the right direction would be extremely helpful. :)

Oh and one more thing.  Where is a good source to learn more about ASIO? I went to Steinberg's developer area, downloaded the ASIO SDK. Even went into their forum, but there are no sections in there for ASIO.



I can think of a couple off-the-shelf free software solutions.

If I understand you correctly, what you'll want to do is install some sort of virtual audio driver, pipe spotify into that, pipe that into sonar, then sonar to your speakers.

On Mac, you can use Soundflower which is excellent

On windows, I am currently using vb virtual audio cable


I'm not sure exactly how spotify / your specific routing works, but that is the general idea, and I really don't think you'll need to create a whole new program to handle this. Even if you did, you'd still probably need a virtual cable technology like this within your program to make it work.


Hope that helps.


edit: My personal choice would be to keep both - I am a little confused why you want to keep the monitors if you really think the computer speakers sound better. Having said that, if you appreciate the flatness that the monitors give you, having another set of 'consumer' speakers that you listen to music on is a VERY handy tool to AB your mixes on. First you'd get them sounding good on your monitors, then flip to your 'normal listening' envrionment to compare with how other music sounds.


Hey turntable.... 

Great question as to the "why"... My pc speakers do sound better.  But... I guess it comes down the clutter factor.  The speakers are the Klipsch 4.1 THX series that came out some 10 years ago.  

If I do get rid of them, i would want to get the matching Yamaha sub for my monitors. You do make a great point though, when mixing audio, it is good to have something else to listen on.  

None the less, the developer in me still wants to learn and ramp up on ASIO to see if I can figure out how to make this happen. There are other projects that I want to do which would benifit from learning how to deal with ASIO like building a realtime spectrum analyzer.

Is ASIO still a major technology or are there are other options that are just as capable these days?  I'm surprised at the lack of information on this technology.  Are the JUCE audio classes just as powerful as ASIO regarding performance?  I've also been looking at the "Microsoft Windows Core Audio API".  Like how you can get up and close with the audio device.  Does JUCE have this level of capabilitiy?