Code: Select all
BASS_SetVolume(100/100)
Code: Select all
BASS_SetVolume(100/100)
Hi SeregaZ,thanks!, but this is only for mic?BASS_SetVolume(100/100)
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)
Yes, what do you kind for me? Thanks.yoxola wrote:Hey oryaaaaa, long time no see.
"DSD" is trademark, then You don't display "DSD" on playing. You should change to "Direct Stream Digital".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
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