Cubase.net Forum Index

FAQFAQ / Steinberg Key Information
SearchSearch / Steinberg Knowledge Base
MemberlistMemberlist
UsergroupsUsergroups
RegisterRegister

ProfileProfile
Log in to check your private messagesLog in to check your private messages
Log inLog in


New oversampling ASIO driver

 
Post new topic   Reply to topic    Cubase.net Forum Index -> Computer / Studio Hardware & Setup
View previous topic :: View next topic  
Author Message
Scali
New Member


Joined: 08 Apr 2007
Posts: 7

PostPosted: Sun Apr 06, 2008 2:28 pm    Post subject: New oversampling ASIO driver Reply with quote

I bought a guitar processor a while ago (a Zoom G9.2tt to be exact), which has a USB connection with ASIO support. Very convenient for recording. However, it only supports 16-bit 48 KHz.
My own soundcard does 24-bit 96 KHz, and therefore whenever I wanted to add a guitar track, I either had to use an analog connection and record with my soundcard (which means plugging out other sources and plugging the guitar processor in), or convert my entire project down to 48 KHz or less, if I wanted to use the USB connection.
Or if I *really* wanted to have my hands full, I could make a copy of my 24/96 project, downsample the copy to 48 KHz, then record the guitar track... then import that 48 KHz track into the original 24/96 project, while having Cubase convert it.

So I thought it would be very convenient if the signal of the guitar processor could be upsampled to 96 KHz instead. This would allow me to preserve the quality of the other tracks, and as a bonus I could apply any effects in 24/96 on the guitar track aswell, which should improve the overall quality compared to doing everything in 48 KHz.. even if the source audio itself isn't of better quality.

Anyway, I started creating a proof-of-concept ASIO driver which can be placed in between Cubase and an actual ASIO device, and perform upsampling on the incoming signals, and downsampling on the outgoing signals (it does some basic linear filtering aswell, so the resulting quality is actually quite nice on the ears). Currently I have a driver which can double the samplerate, and I have it working for my guitar processor, and I've also done some small tests with my 24/96 soundcard, and it seems to work okay aswell. The nicest part is that there is no additional latency when using this driver. It costs a bit of extra CPU power, but on a modern machine it's negligible. The cost of having all VSTis, effects, mixing etc at 96 KHz instead of 48 KHz is far larger than the extra overhead that the driver adds.

If anyone is interested, I can clean the driver up a bit, shave off some of the rough edges, and release it to the public. I plan to release the sourcecode of this driver aswell, so other people can modify it to make it support other devices and perhaps other functionality.
It isn't a whole lot of extra work to add in support for more generic upsampling/downsampling... Currently you're limited to only the double samplerates of your device, but with a bit of extra work you could also turn eg 44.1 KHz into 96 KHz, or even 192 KHz or whatever you want.

Speaking of other functionality... Currently I can only use a single ASIO device for the multitracking. This means that I can use either my soundcard, or my guitar processor. I have this idea of adding multiplexing to the driver. With the resampling in place, I can basically make every ASIO device appear as having the same capabilities. Currently both my soundcard and guitar processor appear to Cubase as 96 KHz devices. The next step could be that I combine both to a single ASIO device with multiple inputs. This will allow me to record the guitar and other instruments at the same time, and multiple outputs could also come in handy, no doubt.
The current concept I have in mind, would give you an input latency equal to the highest latency device that you're using, and an output latency of twice the highest latency. In that case I think I can make it work in a robust way. With modern hardware, latencies of below 1 ms are doable, so if by using this driver you'd go up to 2 ms, that would probably still be acceptable. With older/higher latency devices, it may become a bit of a problem... You might also get problems when the latency between different devices is too large.
Anyway, currently I don't even know for sure if it will actually work properly in practice at all. But I am willing to give it a try.
I think the end result could be quite cool. If you were to combine the resampling, multiplexing, and the ASIO4All driver, then basically you can combine virtually any soundcard at virtually any sampling frequency and use them all in a single Cubase project at the same time. If it works well, it means you can create a fancy multichannel studio setup at home, by just combining a few cheap audio interfaces.

Anyway, feel free to express your thoughts on this, and perhaps you have other ideas that could be implemented.
Back to top
View user's profile Send private message
Kahlbert
Grand Senior Member


Joined: 11 Jan 2008
Posts: 3560
Location: Germany

PostPosted: Sun Apr 06, 2008 2:41 pm    Post subject: Reply with quote

Hi there,

Sounds great, as I have the exact same "problem" with my USB E Guitar.

Although I'm very picking in what may get into my system, this won't be a problem because I use imaging software very thoroughly.

So I'd be quite interested in trying this when I have some spare time (and a proper project to do).
_________________
Intel Core2Duo E6400, 4 GB RAM, ATI Radeon, RME Hammerfall, Win XP, Cubase 4, Studio One Pro, ...
Back to top
View user's profile Send private message
Troubadix
Member


Joined: 13 Dec 2007
Posts: 515
Location: Eastern outskirts of Hamburg/Germany

PostPosted: Sun Apr 06, 2008 6:26 pm    Post subject: Reply with quote

Hello Scali,

really a nice idea!
Beside the possibility of integrating those "virtual" ASIO guitar amps to an existing ASIO setup:

It also could be useful for two partner studios: they could lump together their audio hardware of different manufacturers (maybe 8 In/Out each) into one PC and make a live recording (or whatever they need 16 I/Os for sometimes)

Here's a suggestion for a small and concise driver name Wink :

ASIO splitter/combiner with up/downsampling capabillity.


But I also ask myself if the feature of selecting multiple ASIO drivers could be part of Cubase in near future* ?

Cheers,

T.

*) maybe because you sell it to SB Cool
_________________
SW: Cubase 4.5.2 | WaveLab Studio 6.1.1 | NI Battery 3.0.6 | NI Komplete Synths
PC: Win 7 Ult 64Bit | Asus P5WDH Deluxe | 8GB RAM | Q6600 | 2x Asus EN8600GT Sil. + 1x22" + 2x19"
NB: Win 7 Ult 32Bit | Dell Inspiron 1720 | 4GB RAM | Core2Duo T9300 | NVIDIA GeForce 8600GT | 2x200GB-HD@7200rpm
Misc.: 1x Fireface 400 (PC & NB) | Eurorack MX2642 | Virus A | Line6Pod 2.0 | ESI M4U XL | Fatar 610+ | FCB 1010 | Marshall Valvest. 8240 | Starfield & Washb. Dime D. Guit.
Back to top
View user's profile Send private message
Troubadix
Member


Joined: 13 Dec 2007
Posts: 515
Location: Eastern outskirts of Hamburg/Germany

PostPosted: Fri Apr 11, 2008 5:44 pm    Post subject: Reply with quote

Troubadix wrote:
But I also ask myself if the feature of selecting multiple ASIO drivers could be part of Cubase in near future* ?


...there's an (german) interview with Karl Steinberg and he noted in the margin something about a new "multi ASIO thing" (whatever that means...*)

http://www.musotalk.de/ausgefragt/detailansicht/article/karl-steinberg-teil-2/

(at 6:15 ....)

*) Maybe you ARE Karl Cool
_________________
SW: Cubase 4.5.2 | WaveLab Studio 6.1.1 | NI Battery 3.0.6 | NI Komplete Synths
PC: Win 7 Ult 64Bit | Asus P5WDH Deluxe | 8GB RAM | Q6600 | 2x Asus EN8600GT Sil. + 1x22" + 2x19"
NB: Win 7 Ult 32Bit | Dell Inspiron 1720 | 4GB RAM | Core2Duo T9300 | NVIDIA GeForce 8600GT | 2x200GB-HD@7200rpm
Misc.: 1x Fireface 400 (PC & NB) | Eurorack MX2642 | Virus A | Line6Pod 2.0 | ESI M4U XL | Fatar 610+ | FCB 1010 | Marshall Valvest. 8240 | Starfield & Washb. Dime D. Guit.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cubase.net Forum Index -> Computer / Studio Hardware & Setup All times are GMT + 1 Hour
Page 1 of 1

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Jump to:  


Powered by phpBB © 2001, 2005 phpBB Group