Author Topic: New Bass 2.4.13  (Read 490 times)

Steve Grant

  • Posts: 159
New Bass 2.4.13
« on: 19 Dec '17 - 22:12 »
Just downloaded 2.4.13 and the Bass.bas file that goes with it. Ran into problems straight away as BASS_DEVICE_STEREO is no longer defined. I've quickly checked the new help file and it is still listed in there. Thought you would like to know.

Steve.

Wishmaster

  • Posts: 162
Re: New Bass 2.4.13
« Reply #1 on: 20 Dec '17 - 04:04 »
Hi. I also have some questions about the new version.


since WASAPI does not support arbitrary sample formats, do I still have to pay attention to it in the bass.dll?
especially because I initialize all my devices in a loop.
and what about BASS_SetDevice(), in the basswasapi.dll  I have a unique Device ID that need to keep track of.
and translate the Device ID into an Index  1,2,3,4,5... instead of an random Device ID 23, 57, 60....



so do i still have to use the basswasapi.dll if I want to record the input/output?

I'm just trying to find out, what is the best solution. use the basswasapi.dll for both input/output
or bass.dll for the output and the basswasapi.dll for input (Recording)
since both .dll's suport WASAPI output.




thx.



 








Ian @ un4seen

  • Administrator
  • Posts: 20845
Re: New Bass 2.4.13
« Reply #2 on: 20 Dec '17 - 16:39 »
Just downloaded 2.4.13 and the Bass.bas file that goes with it. Ran into problems straight away as BASS_DEVICE_STEREO is no longer defined. I've quickly checked the new help file and it is still listed in there. Thought you would like to know.

The BASS_DEVICE_STEREO flag has no effect on Windows, so I'm not sure it's needed in the VB6 BASS.BAS file, or are you using the BASS.BAS file with another version of Basic on a platform where the BASS_DEVICE_STEREO flag does have effect? If the BASS.BAS file can be used on other platforms, then there are a few other flags that should be added too.

since WASAPI does not support arbitrary sample formats, do I still have to pay attention to it in the bass.dll?

No, BASS will handle any necessary resampling.

and what about BASS_SetDevice(), in the basswasapi.dll  I have a unique Device ID that need to keep track of.
and translate the Device ID into an Index  1,2,3,4,5... instead of an random Device ID 23, 57, 60....

BASS's device list will be exactly the same as in previous versions. Internally, BASS has actually enumerated devices via WASAPI for a while now (on Vista and above), even though playback and recording has been via DirectSound.

so do i still have to use the basswasapi.dll if I want to record the input/output?

I'm just trying to find out, what is the best solution. use the basswasapi.dll for both input/output
or bass.dll for the output and the basswasapi.dll for input (Recording)
since both .dll's suport WASAPI output.
   
If you need exclusive mode or Win10's lower latency shared mode option, then you will need BASSWASAPI, otherwise I think you may as well use BASS.

MikeV

  • Posts: 181
Re: New Bass 2.4.13
« Reply #3 on: 2 Jan '18 - 16:21 »
BASS supporting WASAPI sounds like a great development (at least if WASAPI now works on factory default laptops), but would it be possible to create a todo list for those of use already using BASSWASAPI and wanting to migrate?

Also, AFAIK, the only documentation on this release is in the RSS feed which is very brief. So brief in fact that I do not understand some of the features. What does "Adds [...] default output device following support extended to Windows Vista and OSX" mean?

I don't suppose the behaviour of the "no sound" device has been updated to generate a pull clock?

Ian @ un4seen

  • Administrator
  • Posts: 20845
Re: New Bass 2.4.13
« Reply #4 on: 2 Jan '18 - 17:05 »
The full list of changes can be found in the "History" seection of the BASS.TXT file. The RSS feed is basically a reduced version of what's in there.

Regarding migrating from BASSWASAPI, if you would like to continue feeding sample data to a callback function then you would change your WASAPIPROC function to a STREAMPROC function (by adding a "handle" parameter), and call BASS_StreamCreate with it. You can get the device's sample format (to use in the BASS_StreamCreate call) from BASS_GetInfo.

Code: [Select]
BASS_INFO info;
BASS_GetInfo(&info);
stream = BASS_StreamCreate(info.freq, info.chans, BASS_SAMPLE_FLOAT, StreamProc, NULL);
BASS_ChannelSetAttribute(stream, BASS_ATTRIB_BUFFER, 0); // disable buffering

...

DWORD CALLBACK StreamProc(HSTREAM handle, void *buffer, DWORD length, void *user)
{
...
}