BASS audio library v2.4 PureBasic 4.20 includes.

Developed or developing a new product in PureBasic? Tell the world about it.
SeregaZ
Enthusiast
Enthusiast
Posts: 617
Joined: Fri Feb 20, 2009 9:24 am
Location: Almaty (Kazakhstan. not Borat, but Triple G)
Contact:

Re: BASS audio library v2.4 PureBasic 4.20 includes.

Post by SeregaZ »

Code: Select all

BASS_SetVolume(100/100)
User avatar
minimy
Enthusiast
Enthusiast
Posts: 344
Joined: Mon Jul 08, 2013 8:43 pm

Re: BASS audio library v2.4 PureBasic 4.20 includes.

Post by minimy »

BASS_SetVolume(100/100)
Hi SeregaZ,thanks!, but this is only for mic?
If translation=Error: reply="Sorry, Im Spanish": Endif
SeregaZ
Enthusiast
Enthusiast
Posts: 617
Joined: Fri Feb 20, 2009 9:24 am
Location: Almaty (Kazakhstan. not Borat, but Triple G)
Contact:

Re: BASS audio library v2.4 PureBasic 4.20 includes.

Post by SeregaZ »

ops... i dont know :) i think it is main volume of windows.
User avatar
oryaaaaa
Enthusiast
Enthusiast
Posts: 791
Joined: Mon Jan 12, 2004 11:40 pm
Location: Okazaki, JAPAN

Re: BASS audio library v2.4 PureBasic 4.20 includes.

Post by oryaaaaa »

Hello.

I checked BASS Direct Stream Digital (DSD) output.
64-bit and 32-bit binary are asio output ok.

- BASS Direct Stream Digital (DSD) add-on -
http://goo.gl/7UPKMB

- Bug head Emperor 3.98 develop blog -
http://goo.gl/BrC75K

Ultimate high quality sound player by BASS
* Bug head Emperor 3.98 supported DSD (dsf,dff) files
* Required ASIO device driver
* Windows 7 or Windows 8 only

Code: Select all

; Import ASIO libraly
Structure BASS_ASIO_DEVICEINFO
  *name;	// description
  *driver;	// driver
EndStructure

#BASS_ASIO_FORMAT_FLOAT = 19
#BASS_ASIO_RESET_ENABLE	= 1
#BASS_ASIO_RESET_JOIN	= 2
#BASS_ASIO_RESET_PAUSE	= 4
#BASS_ASIO_THREAD    = 1
#BASS_ASIO_JOINORDER = 2
#BASS_OK = 0 ; all is OK
#BASS_ERROR_DRIVER =	3 ; can't find a free/valid driver
#BASS_ERROR_FORMAT = 6	; unsupported sample format
#BASS_ERROR_INIT = 8	; BASS_ASIO_Init has Not been successfully called
#BASS_ERROR_START	= 9 ; BASS_ASIO_Start has/hasn't been called
#BASS_ERROR_ALREADY	= 14 ; already initialized/started
#BASS_ERROR_NOCHAN = 18 ; no channels are enabled
#BASS_ERROR_ILLPARAM =	20 ; an illegal parameter was specified
#BASS_ERROR_DEVICE = 23 ; illegal device number
#BASS_ERROR_NOTAVAIL =	37 ; Not available
#BASS_ERROR_UNKNOWN = -1 ; some other mystery error

Import "bassasio.lib"
  BASS_ASIO_GetDeviceInfo.l(device.l, *info.BASS_ASIO_DEVICEINFO)
  BASS_ASIO_Init.l(device.l, flags.l)
  BASS_ASIO_Free.l()
  BASS_ASIO_ErrorGetCode.l()
  BASS_ASIO_ControlPanel.l()
  BASS_ASIO_CheckRate.l(rate.d)
  BASS_ASIO_SetRate.l(rate.d)
  BASS_ASIO_GetRate.d()
  BASS_ASIO_Start.l(buflen.l, threads.l)
  BASS_ASIO_Stop.l()
  BASS_ASIO_SetUnicode.b(unicode.b)
  BASS_ASIO_IsStarted.l()
  BASS_ASIO_ChannelReset.l(input.l, channel.l, flags.l)
  BASS_ASIO_ChannelEnable.l(input.l, channel.l, *proc, *User)
  BASS_ASIO_ChannelJoin.l(input.l, channel.l, channel2.l)
  BASS_ASIO_ChannelPause.l(input.l, channel.l)
  BASS_ASIO_ChannelSetFormat.l(input.l, channel.l, format.l)
  BASS_ASIO_ChannelSetVolume.l(input.l, channel.l, volume.f)
EndImport
; End Import ASIO libraly

; Import BASS DSD Addon
;
; Additional BASS_SetConfig options
#BASS_CONFIG_DSD_FREQ =	$10800
#BASS_CONFIG_DSD_GAIN = $10801
;
; BASS_CHANNELINFO Type
#BASS_CTYPE_STREAM_DSD = $11700
;
; Additional attributes
#BASS_ATTRIB_DSD_GAIN = $14000
#BASS_ATTRIB_DSD_RATE = $14001
;
Import "bassdsd.lib"
  BASS_DSD_StreamCreateFile.l(mem.b, *file, offset.q, length.q, flags.l, freq.l)
  BASS_DSD_StreamCreateFileUser.l(system.l, flags.l, *procs, *User, freq.l)
EndImport
; End Import BASS DSD Addon

Code: Select all

chan =  BASS_DSD_StreamCreateFile(#False, @FileName, 0, 0, #BASS_UNICODE | #BASS_STREAM_DECODE  | #BASS_SAMPLE_FLOAT | #BASS_SAMPLE_SOFTWARE , 0) 
User avatar
yoxola
Enthusiast
Enthusiast
Posts: 383
Joined: Sat Feb 25, 2006 4:23 pm

Re: BASS audio library v2.4 PureBasic 4.20 includes.

Post by yoxola »

Hey oryaaaaa, long time no see.
This field was left intentionally as signature.
User avatar
oryaaaaa
Enthusiast
Enthusiast
Posts: 791
Joined: Mon Jan 12, 2004 11:40 pm
Location: Okazaki, JAPAN

Re: BASS audio library v2.4 PureBasic 4.20 includes.

Post by oryaaaaa »

yoxola wrote:Hey oryaaaaa, long time no see.
Yes, what do you kind for me? Thanks.
oryaaaaa wrote:Hello.

I checked BASS Direct Stream Digital (DSD) output.
64-bit and 32-bit binary are asio output ok.

- BASS Direct Stream Digital (DSD) add-on -
http://goo.gl/7UPKMB

- Bug head Emperor 3.98 develop blog -
http://goo.gl/BrC75K
"DSD" is trademark, then You don't display "DSD" on playing. You should change to "Direct Stream Digital".

I checked Native DSD Output. DSD64 and DSD128 native output is OK.
If you want to check DSD output, you should use my sound player.

Bug head Emperor 4.04 beta
http://1drv.ms/1nBAKyD

Code: Select all

#BASS_ASIO_FORMAT_DSD_LSB	= 32 ; DSD (LSB 1st)
#BASS_ASIO_FORMAT_DSD_MSB	= 33 ; DSD (MSB 1st) ; infinity said better, reason is low jitter

Import "bassasio.lib"
  ...
  BASS_ASIO_SetDSD.b(dsd.b)
  BASS_ASIO_Future.b(selector.l, *param)
EndImport

Code: Select all

Select dsd_play
  Case 0 ; PCM
    chan =  BASS_DSD_StreamCreateFile(#False, @FileName, 0, 0, #BASS_UNICODE | #BASS_STREAM_DECODE  | #BASS_SAMPLE_FLOAT | #BASS_SAMPLE_SOFTWARE , dsd_freq) 
  Case 1 ; Native
    chan =  BASS_DSD_StreamCreateFile(#False, @FileName, 0, 0, #BASS_UNICODE | #BASS_STREAM_DECODE  | #BASS_DSD_RAW | #BASS_SAMPLE_SOFTWARE , 0) 
EndSelect

Code: Select all

BASS_Init(0, freqS,#BASS_DEVICE_NOSPEAKER,WindowID(#WindowMain),#Null)  : BASS_SetDevice(0)
  
BASS_ChannelGetAttribute(chan, #BASS_ATTRIB_DSD_RATE, @dsd_check_freq)
  
If BASS_ASIO_Init(AsioSelectDevice, #BASS_ASIO_THREAD) And BASS_ASIO_SetDSD(#True) And BASS_ASIO_CheckRate(dsd_check_freq)
  BASS_ASIO_SetRate(dsd_check_freq)  : Delay(200)
  dsd_now_freq = dsd_check_freq
  BASS_ASIO_ChannelEnable(0,Int(AsioChShift_1),@AsioProc(), 0) ; (0,Left,@AsioProc(),0)
  BASS_ASIO_ChannelJoin(0,Int(AsioChShift_1+1),Int(AsioChShift_1)) ; (0,Right,Left)
  BASS_ASIO_ChannelSetFormat(0, 0, #BASS_ASIO_FORMAT_DSD_MSB); // set the data format (DSD with MSB 1st)
  BASS_ASIO_Start(0, 0) 
Else
  asio_error = GetASIO_Error(BASS_ASIO_ErrorGetCode()) ; get ASIO error code
  BASS_ASIO_Free()
  BASS_StreamFree(chan) 
EndIf
Post Reply