Author Topic: BASSASIO beta  (Read 128570 times)

Ian @ un4seen

  • Administrator
  • Posts: 20393
Re: BASSASIO beta
« Reply #50 on: 22 May '05 - 15:33 »
Unfortunately, I don't think it's possible to detect if another application is already using the device. As far as I can see, the drivers don't give that information.

HarryHar

  • Posts: 147
Re: BASSASIO beta
« Reply #51 on: 14 Jun '05 - 19:29 »
Hello,

Anybody already made some effort in trying to play more than 1 stream through 1 Asio Ouput?

gr. Harold

hukka

  • Posts: 77
Re: BASSASIO beta
« Reply #52 on: 15 Jun '05 - 12:56 »
Anybody already made some effort in trying to play more than 1 stream through 1 Asio Ouput?

Yeah, have only one stream use the callback and just mix the required streams into the buffer inside the callback.

HarryHar

  • Posts: 147
Re: BASSASIO beta
« Reply #53 on: 17 Jun '05 - 11:46 »
You mean just add values from streams together? How about clipping?

What if I want to output Stream A to more than 1 ASIO channel? (for monitoring purposes)


gr. Harold

Ian @ un4seen

  • Administrator
  • Posts: 20393
Re: BASSASIO beta
« Reply #54 on: 17 Jun '05 - 16:39 »
You mean just add values from streams together? How about clipping?

If you use floating-point sample data, you don't really need to worry about that (BASSASIO will clip when necessary).

What if I want to output Stream A to more than 1 ASIO channel? (for monitoring purposes)

Simply copy the stream data to all the channels :)

hukka

  • Posts: 77
Re: BASSASIO beta
« Reply #55 on: 17 Jun '05 - 17:45 »
Yeah, I just buffer the stream data and feed it to the monitor channel in its callback.

Unless you want to monitor using a different audio device; then you have the old problem of drifting tempos as the devices will slowly fall out of sync. I don't know if there's a proper solution to this, unless Ian knows something?

HarryHar

  • Posts: 147
Re: BASSASIO beta
« Reply #56 on: 17 Jun '05 - 20:27 »
But is there a way to feed the data, or do I need several call backs? 1 for each output and 1 for the monitor, or could I use just 1 callback and feed the data to different outputs?

gr. Harold

hukka

  • Posts: 77
Re: BASSASIO beta
« Reply #57 on: 17 Jun '05 - 20:30 »
You need several callbacks.

Ian @ un4seen

  • Administrator
  • Posts: 20393
Re: BASSASIO beta
« Reply #58 on: 22 Jun '05 - 16:13 »
If the "monitor" is on the same device as the output (eg. it's a multi-channel soundcard), you could actually join the channels and use a single callback. It may require slightly more work in the callback (to put the data in the ASIO channels), but less than buffering would anyway :)

HarryHar

  • Posts: 147
Re: BASSASIO beta
« Reply #59 on: 22 Jun '05 - 17:25 »
Can you UnJoin on the fly? And can you join multiple outputs to 1 monitor channel?

gr. Harold

Ian @ un4seen

  • Administrator
  • Posts: 20393
Re: BASSASIO beta
« Reply #60 on: 23 Jun '05 - 21:22 »
You can't join/unjoin channels while the device is processing, but stop'n'restarting (and joining/etc in between) only takes a split second.

Pixi

  • Guest
Re: BASSASIO beta
« Reply #61 on: 10 Jul '05 - 19:03 »
Code: [Select]
Compiling...
synth.c
Linking...
synth.obj : error LNK2019: unresolved external symbol _BASS_ASIO_ChannelJoin@12 referenced in function _main

Here is what happens when I  try to recompile the sample application "synth" of BASSASIO.

I'm using VC++ 7.1.

I don't understand why the linking of only one function fail (removing call to BASS_ASIO_ChannelJoin makes compilation successful, but I have monophonic output of course).

Any idea?

Thanks!

Pixi

  • Guest
Re: BASSASIO beta
« Reply #62 on: 11 Jul '05 - 08:35 »
...well, found a classical workaround ;)

Code: [Select]
typedef void (CALLBACK* LPFNDLLFUNC1)(int, int, int);

HINSTANCE hDLL;
LPFNDLLFUNC1 lpfnDllFunc1;

hDLL = LoadLibrary("bassasio");
if (hDLL != NULL)
{
lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL, "BASS_ASIO_ChannelJoin");
if (!lpfnDllFunc1)
{
// handle the error
FreeLibrary(hDLL);
AfxMessageBox("error");
}
}

Ian @ un4seen

  • Administrator
  • Posts: 20393
Re: BASSASIO beta
« Reply #63 on: 11 Jul '05 - 13:30 »
Oops, I see what's happened. An updated BASSASIO.LIB file is in the ZIP now.

radio42

  • Posts: 4573
Re: BASSASIO beta
« Reply #64 on: 29 Sep '05 - 22:07 »
When will ASIO support be fully integrated into BASS?
Or will it be always an extra lib?

I would love to let the user choose if he wants to use ASIO or DSound...will this be possible?
And will all BASS_FX and all other BASS_XY add-ons work with ASIO as well?

Ian @ un4seen

  • Administrator
  • Posts: 20393
Re: BASSASIO beta
« Reply #65 on: 30 Sep '05 - 14:20 »
You can use BASSASIO with BASS (as in the examples), but BASSASIO can also be used on it's own, and there are no plans to merge the two of them. Add-ons work with BASS, and as you can use BASS with BASSASIO, so you can use add-ons too :)

Chris

  • Posts: 1808
Re: BASSASIO beta
« Reply #66 on: 3 Oct '05 - 19:49 »
@ Ian is the Bassasio-beta compatible to bass 2.2 ??
Greets Chris

Svante

  • Posts: 296
Re: BASSASIO beta
« Reply #67 on: 3 Oct '05 - 19:57 »
@ Ian is the Bassasio-beta compatible to bass 2.2 ??
Greets Chris
You can use BASSASIO with BASS (as in the examples), but BASSASIO can also be used on it's own, and there are no plans to merge the two of them. Add-ons work with BASS, and as you can use BASS with BASSASIO, so you can use add-ons too :)
:D

Angel

  • Posts: 41
Re: BASSASIO beta
« Reply #68 on: 4 Oct '05 - 14:29 »
I'm still not sure if i will use asio, mainly because i dont know for 100% what it is, and why it would be better then the normal bass,i googled once a long time ago about asio, only found very technical sites hehe.

radio42

  • Posts: 4573
Re: BASSASIO beta
« Reply #69 on: 5 Oct '05 - 09:18 »
BASS so far uses the Windows Media Driver, like Direct Sound.

ASIO is 'another' Audio Sound Input/Output interface.
It was developed by Steinberg.
The main goal was to reduce the latency to an absolute minimum!
Latency is the time span between a software call like 'play-this' until you actually hear the sound.
The WMD direct sound is already not too bad, when it comes to latency, but ASIO is even much better. It of course also depends on the soundcard and the ASIO driver implementation, but some high-class professional soundcards have a latency of less than 3milliseconds! This is almost unhearable. WMD often has a latency of some 10milliseconds, e.g. 30ms or even 50ms - which you can already hear!
ASIO is therefore used a lot in professional studio environments where real-time sound processing is needed.

Think of software mixing or sound recording with immediate playback...with latency drivers you can hear an echo...
...or where you want to start a certain sound exactly in sync...here latency is important too, because if it takes too long to start the playback the mix is not in sync anymore.

So ASIO is not needed, when you do NOT play around within a professional environment.
But when you start dealing with professional studio equipment then ASIO is the choice!

Ian @ un4seen

  • Administrator
  • Posts: 20393
Re: BASSASIO beta
« Reply #70 on: 5 Oct '05 - 11:53 »
@ Ian is the Bassasio-beta compatible to bass 2.2 ??

Yep, it is. The examples have been updated to use BASS 2.2 now.

Angel2

  • Guest
Re: BASSASIO beta
« Reply #71 on: 5 Oct '05 - 12:25 »
Aha , i  see. Thanks for make it a bit clear :)

dj

  • Guest
Re: BASSASIO beta
« Reply #72 on: 5 Nov '05 - 10:47 »
Hi ! im using BASSASIO and it works fine but i noticed that the asio channel are the channel number on the soundcard ! So i was wondering how i can set the volume with BASSASIO and how i can use BASS_FX ? On BASS/WDM im using a custom stream (BASS_StreamCreate()) to achieve this. With BASSASIO i need to manage data by hand in the ASIOPROC() ?

Ian @ un4seen

  • Administrator
  • Posts: 20393
Re: BASSASIO beta
« Reply #73 on: 5 Nov '05 - 17:30 »
You can use BASS_FX on decoding channels, so that shouldn't be a problem. But the standard freq/vol/pan playback attributes (BASS_ChannelSetAttributes) don't apply. For volume control, you can apply it directly to the decoded sample data yourself, or you could just use the BASS_FX volume DSP if you're using BASS_FX anyway :)

3delite

  • Posts: 895
Re: BASSASIO beta
« Reply #74 on: 9 Nov '05 - 21:30 »
The command:

Code: [Select]
    Device := BASS_ASIO_GetDeviceDescription(0);

is crashing here. Or more precisely it goes to an infinite loop. Do I need to use something else before using this command?
 
EDIT:

Code: [Select]
    BASS_ASIO_ControlPanel;

also!

If I modify the dsptest example it works fine.  ???
« Last Edit: 9 Nov '05 - 22:05 by 3delite »