ProgAndy Posted January 14, 2010 Posted January 14, 2010 BASS can load a file from memory when you supply a pointer to thze Memory-block and the size. I think it should work like this: #include<WinAPI.au3> #include<Memory.au3> #include<BASS.au3> Global $ahOGGHandle[2] = [0,0] ; global Variables $sOGGFile = "C:\test.ogg" ; Load at the beginning: Local $iSize = FileGetSize($sOGGFile) If $iSize Then Local $ahOGGHandle[0] = _MemGlobalAlloc($iSize, $GPTR) $hFile = _WinAPI_CreateFile($sOGGFile, 2, 2) Local $iRead _WinAPI_ReadFile($hFile, $ahOGGHandle[0], $iSize, $iRead) If $iRead < $iSize Then _MemGlobalFree($ahOGGHandle[0]) $ahOGGHandle[0] = 0 EndIf _WinAPI_CloseHandle($hFile) ; create Stream: If $ahOGGHandle[0] Then $ahOGGHandle[1] = _BASS_StreamCreateFile(True, $ahOGGHandle[0], 0, $iSize, 0) EndIf ; now play & stop Music, _BASS_ChannelPlay($ahOGGHandle[1], 1) Sleep(1000) _BASS_ChannelStop($ahOGGHandle[1]) ; free on exit If $ahOGGHandle[1] Then _BASS_StreamFree($ahOGGHandle[1]) If $ahOGGHandle[0] Then _MemGlobalFree($ahOGGHandle[0]) *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes
UEZ Posted January 14, 2010 Posted January 14, 2010 (edited) Here another method: expandcollapse popup;coded by UEZ 2010 #include <WinAPI.au3> #include <BASS.au3> Do $file = FileOpenDialog("Select audio file to load", @ScriptDir, "Audio (*.mp3;*.ogg; *.wma)") If @error Then $msg = MsgBox(20, "Error", "Please select an audio file!") If $msg = 7 Then Exit Else SetError(1) EndIf EndIf Until Not @error HotKeySet("{ESC}", "_Close") $file_size = FileGetSize($file) If $file_size Then $tBuffer = DllStructCreate("byte[" & $file_size & "]") $pMem = DllStructGetPtr($tBuffer) Global $nBytes $hFile =_WinAPI_CreateFile($file, 2, 2) _WinAPI_SetFilePointer($hFile, 3) _WinAPI_ReadFile($hFile, $pMem, $file_size, $nBytes) _WinAPI_CloseHandle($hFile) $bass_dll = _BASS_Startup(@ScriptDir & "\BASS.dll") _BASS_Init($BASS_DEVICE_CPSPEAKERS) $hMusic = _BASS_StreamCreateFile(True, $pMem, 0, $file_size, 0) $song_length = _BASS_ChannelGetLength($hMusic, $BASS_POS_BYTE) _BASS_ChannelPlay($hMusic, 1) While 1 Sleep(250) If _BASS_ChannelGetPosition($hMusic, $BASS_POS_BYTE) >= _BASS_ChannelGetLength($hMusic, $BASS_POS_BYTE) Then ExitLoop WEnd _Close() EndIf Func _CLose() _BASS_ChannelStop($hMusic) _BASS_StreamFree($hMusic) DllClose(@ScriptDir & "\BASS.dll") Exit EndFunc UEZ Edited January 15, 2010 by UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
UEZ Posted January 14, 2010 Posted January 14, 2010 Anyone knows why the example still crashes ?Which example?UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
Dracil Posted January 14, 2010 Posted January 14, 2010 The one we are talking about on page 10, BassEnc, recording example.
BrettF Posted January 14, 2010 Author Posted January 14, 2010 (edited) Argh. What the hell. BassEnc works, then it just doesn't. Seriously getting annoying now... Moving on. I'll try work out BassEnc AGAIN now. I've got a funny feeling I mucked up one of the functions in Bass.au3... Cheers, Brett Edited January 14, 2010 by BrettF Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version!
BrettF Posted January 14, 2010 Author Posted January 14, 2010 As I thought. Please update this function in Bass.au3 again. Func _BASS_RecordGetInputName($inputn) Local $BASS_ret_ = DllCall($_ghBassDll, "ptr", "BASS_RecordGetInputName", "int", $inputn) If @error Then Return SetError(1,1,0) If $BASS_ret_[0] = "" Then Return SetError(_BASS_ErrorGetCode(),0,$BASS_ret_[0]) $struc = DllStructCreate ("char[255]", $BASS_ret_[0]) Return DllStructGetData ($struc, 1) EndFunc ;==>_BASS_RecordGetInputName Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version!
Dracil Posted January 14, 2010 Posted January 14, 2010 Nope still dosent works, now it jsut closes when i try to start it. autoit says this: STARTING TO DEBUG BASS_ENC_EXAMPLE. OS = WIN_XP (X86) (SERVICE PACK = Service Pack 2) BUILD = 2600 KB Layout = 0000041D Running AutoIt V3.3.0.0(64 bit native = 0) GETTING DEVICES FAILED 0 0 INITATING RECORDING FAILED 1 0 GETTING INPUTS FAILED 1 0 BASSCB RECORD START FAILED 0 0 C:\Documents and Settings\record\BassEnc.au3 (210) : ==> Cannot assign values to constants.: $error = _BASS_ErrorGetCode() ^ ERROR
BrettF Posted January 15, 2010 Author Posted January 15, 2010 (edited) Update your version of AutoIt. My Output: STARTING TO DEBUG BASS_ENC_EXAMPLE. OS = WIN_7 (X64) (SERVICE PACK = ) BUILD = 7100 KB Layout = 00000409 Running AutoIt V3.3.2.0(64 bit native = 0) GETTING DEVICES FAILED 0 0 INITATING RECORDING FAILED 1 0 GETTING INPUTS FAILED 0 0 BASSCB RECORD START FAILED 0 0 Edited January 15, 2010 by BrettF Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version!
BrettF Posted January 15, 2010 Author Posted January 15, 2010 Glad its working. Added the AutoIt version into the first posts as well as the "patches" required to make it work. Cheers, Brett Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version!
Dracil Posted January 15, 2010 Posted January 15, 2010 Any idea how to set a time limit for it ? so it after certain secounds stop automatically ?
BrettF Posted January 15, 2010 Author Posted January 15, 2010 Easy Like Follows... Start Recording Initiate Timer While 1 Check if timer is <= to the length of time Exit Loop Wend Stop Recording Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version!
oriolgs58 Posted January 15, 2010 Posted January 15, 2010 I am currently working on a little library called EasyBass using bass.au3 and sound effects for simple loading and playing of sounds in games. I eventually want to code windows sound recorder plus , but that might take a while and I would probably need bassmix for it, since believe it or not I use the windows recorder to mix all the time. Yay for unprofessional audio editing *grin*.
oriolgs58 Posted January 15, 2010 Posted January 15, 2010 Issues issues! bass_fx doesn't seem to be t working properly. The effects don't do anything. I've edited the example to show @error when you press the echo checkbox, it seems as though we'er calling an incorrect effect type or something. The edited example can be found at http://mycrap.scrapping.cc/example.rar
BrettF Posted January 15, 2010 Author Posted January 15, 2010 I am currently working on a little library called EasyBass using bass.au3 and sound effects for simple loading and playing of sounds in games. I eventually want to code windows sound recorder plus , but that might take a while and I would probably need bassmix for it, since believe it or not I use the windows recorder to mix all the time. Yay for unprofessional audio editing *grin*.I feel it is fairly simple as it is? If people can't work out what the functions needed are from the examples and the like, then maybe they should think of trying a more basic project first? Its not really that complicated. Feel free to try the recorder and the like.Issues issues!bass_fx doesn't seem to be t working properly. The effects don't do anything. I've edited the example to show @error when you press the echo checkbox, it seems as though we'er calling an incorrect effect type or something.The edited example can be found athttp://mycrap.scrapping.cc/example.rarI found that too. The last effect worked though. Let me continue to do some testing to see what I can find. I still need to make some examples for BassFX anyways to make sure its working... At the moment its relatively untested... It will take me a few days to get anything solid going, so hang tight.Cheers,Brett Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version!
BrettF Posted January 16, 2010 Author Posted January 16, 2010 Woo. Got some examples going. Tempo: expandcollapse popup#include <Bass.au3> #include <BassConstants.au3> #include <BassFX.au3> #include <BassFXConstants.au3> Global $playing_state = -1 ;Startup Bass & BassFX. Also check if loading failed. _BASS_STARTUP ("BASS.dll") If @error = -1 Then MsgBox (0, "", "DLL Does not exist? Please check file exists.") Exit EndIf _BASS_FX_Startup("bass_fx.dll") If @error = -1 Then MsgBox (0, "", "DLL Does not exist? Please check file exists.") Exit EndIf ;Initalize bass. Required for most functions. _BASS_Init(0, -1, 44100, 0, "") ;Check if bass iniated. If not, we cannot continue. If @error Then MsgBox(0, "Error", "Could not initialize audio") Exit EndIf ;Prompt the user to select a MP3 file $file = FileOpenDialog("Open...", "", "MP3 Files (*.mp3)") ;Create a stream from that file. $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, $BASS_STREAM_DECODE) ;Check if we opened the file correctly. If @error Then MsgBox(0, "Error", "Could not load audio file" & @CR & "Error = " & @error) Exit EndIf $tempo = _BASS_FX_TempoCreate ($MusicHandle, 0) ;Iniate playback _BASS_ChannelPlay($tempo, 1) ;Get the length of the song in bytes. $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE) ;Create a timer $timer = TimerInit () ;So we can set it to something different each time. $numberchanges = 0 While 1 ;Test so we can change the tempo after 5 seconds. If TimerDiff ($timer) >= 5000 Then ;Make it a loop - reseting after we've cycled through the changes Switch $numberchanges Case 0 ; Tempo is 0% Set it to 75% ToolTip ("Setting Tempo to +75%", 0, 0) _BASS_ChannelSetAttribute ($tempo, $BASS_ATTRIB_TEMPO, 75) Case 1; Tempo is 75% Set it to 100% ToolTip ("Setting Tempo to 100%", 0, 0) _BASS_ChannelSetAttribute ($tempo, $BASS_ATTRIB_TEMPO, 100) Case 2; Tempo is 100% Set it to 50% ToolTip ("Setting Tempo to +50%", 0, 0) _BASS_ChannelSetAttribute ($tempo, $BASS_ATTRIB_TEMPO, 50) Case 3; Tempo is 50% Set it to -50% ToolTip ("Setting Tempo to -50%", 0, 0) _BASS_ChannelSetAttribute ($tempo, $BASS_ATTRIB_TEMPO, -50) Case 4; Tempo is -50% Set it to -75% ToolTip ("Setting Tempo to -75%", 0, 0) _BASS_ChannelSetAttribute ($tempo, $BASS_ATTRIB_TEMPO, -75) Case Else $numberchanges = 0 EndSwitch $numberchanges += 1 ;Reset the timer $timer = TimerInit () Sleep (2000) EndIf Sleep(20) ;Get the current position in bytes $current = _BASS_ChannelGetPosition($MusicHandle, $BASS_POS_BYTE) ;Calculate the percentage $percent = Round(($current / $song_length) * 100, 0) ;Display that to the user ToolTip("Completed " & $percent & "%", 0, 0) ;If the song is complete, then exit. If $current >= $song_length Then ExitLoop WEnd Func OnAutoItExit() ;Free Resources _BASS_Free() EndFunc ;==>OnAutoItExit Pitch: expandcollapse popup#include <Bass.au3> #include <BassConstants.au3> #include <BassFX.au3> #include <BassFXConstants.au3> Global $playing_state = -1 ;Startup Bass & BassFX. Also check if loading failed. _BASS_STARTUP ("BASS.dll") If @error = -1 Then MsgBox (0, "", "DLL Does not exist? Please check file exists.") Exit EndIf _BASS_FX_Startup("bass_fx.dll") If @error = -1 Then MsgBox (0, "", "DLL Does not exist? Please check file exists.") Exit EndIf ;Initalize bass. Required for most functions. _BASS_Init(0, -1, 44100, 0, "") ;Check if bass iniated. If not, we cannot continue. If @error Then MsgBox(0, "Error", "Could not initialize audio") Exit EndIf ;Prompt the user to select a MP3 file $file = FileOpenDialog("Open...", "", "MP3 Files (*.mp3)") ;Create a stream from that file. $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, $BASS_STREAM_DECODE) ;Check if we opened the file correctly. If @error Then MsgBox(0, "Error", "Could not load audio file" & @CR & "Error = " & @error) Exit EndIf $tempo = _BASS_FX_TempoCreate ($MusicHandle, 0) ;Iniate playback _BASS_ChannelPlay($tempo, 1) ;Get the length of the song in bytes. $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE) ;Create a timer $timer = TimerInit () ;So we can set it to something different each time. $numberchanges = 0 While 1 ;Test so we can change the tempo after 5 seconds. If TimerDiff ($timer) >= 5000 Then ;Make it a loop - reseting after we've cycled through the changes Switch $numberchanges Case 0 ToolTip ("Setting Tempo to +60", 0, 0) _BASS_ChannelSetAttribute ($tempo, $BASS_ATTRIB_TEMPO_PITCH, 60) Case 1 ToolTip ("Setting Tempo to +30", 0, 0) _BASS_ChannelSetAttribute ($tempo, $BASS_ATTRIB_TEMPO_PITCH, 30) Case 2 ToolTip ("Setting Tempo to +10", 0, 0) _BASS_ChannelSetAttribute ($tempo, $BASS_ATTRIB_TEMPO_PITCH, 10) Case 3 ToolTip ("Setting Tempo to -30", 0, 0) _BASS_ChannelSetAttribute ($tempo, $BASS_ATTRIB_TEMPO_PITCH, -30) Case 4 ToolTip ("Setting Tempo to -60", 0, 0) _BASS_ChannelSetAttribute ($tempo, $BASS_ATTRIB_TEMPO_PITCH, -60) Case Else $numberchanges = 0 EndSwitch $numberchanges += 1 ;Reset the timer $timer = TimerInit () Sleep (2000) EndIf Sleep(20) ;Get the current position in bytes $current = _BASS_ChannelGetPosition($MusicHandle, $BASS_POS_BYTE) ;Calculate the percentage $percent = Round(($current / $song_length) * 100, 0) ;Display that to the user ToolTip("Completed " & $percent & "%", 0, 0) ;If the song is complete, then exit. If $current >= $song_length Then ExitLoop WEnd Func OnAutoItExit() ;Free Resources _BASS_Free() EndFunc ;==>OnAutoItExit Reverse: expandcollapse popup#include <Bass.au3> #include <BassConstants.au3> #include <BassFX.au3> #include <BassFXConstants.au3> Global $playing_state = -1 ;Startup Bass & BassFX. Also check if loading failed. _BASS_STARTUP ("BASS.dll") If @error = -1 Then MsgBox (0, "", "DLL Does not exist? Please check file exists.") Exit EndIf _BASS_FX_Startup("bass_fx.dll") If @error = -1 Then MsgBox (0, "", "DLL Does not exist? Please check file exists.") Exit EndIf ;Initalize bass. Required for most functions. _BASS_Init(0, -1, 44100, 0, "") ;Check if bass iniated. If not, we cannot continue. If @error Then MsgBox(0, "Error", "Could not initialize audio") Exit EndIf ;Prompt the user to select a MP3 file $file = FileOpenDialog("Open...", "", "MP3 Files (*.mp3)") ;Create a stream from that file. $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, $BASS_STREAM_DECODE) ;Check if we opened the file correctly. If @error Then MsgBox(0, "Error", "Could not load audio file" & @CR & "Error = " & @error) Exit EndIf $tempo = _BASS_FX_ReverseCreate ($MusicHandle, 10, 0) _BASS_ChannelSetAttribute ($tempo, $BASS_ATTRIB_REVERSE_DIR, $BASS_FX_RVS_FORWARD) ;Iniate playback _BASS_ChannelPlay($tempo, 1) ;Get the length of the song in bytes. $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE) $timer = TimerInit () $next = 30000; 30seconds into the song so we can try reduce the chance of going backwards.... $state = 1 While 1 If TimerDiff ($timer) >= $next Then If $state = 1 Then _BASS_ChannelSetAttribute ($tempo, $BASS_ATTRIB_REVERSE_DIR, $BASS_FX_RVS_REVERSE) $next = Random (3000, 5000, 1) ToolTip ("Reverse for " & $next & "ms", 0,0) $state = 0 Else _BASS_ChannelSetAttribute ($tempo, $BASS_ATTRIB_REVERSE_DIR, $BASS_FX_RVS_FORWARD) $next = Random (5000, 10000, 1) ToolTip ("Forward for " & $next & "ms", 0,0) $state = 1 EndIf $timer = TimerInit () Sleep (2000) EndIf Sleep(20) ;Get the current position in bytes $current = _BASS_ChannelGetPosition($MusicHandle, $BASS_POS_BYTE) ;Calculate the percentage $percent = Round(($current / $song_length) * 100, 0) ;Display that to the user ToolTip("Completed " & $percent & "%", 0, 0) ;If the song is complete, then exit. If $current >= $song_length Then ExitLoop WEnd Func OnAutoItExit() ;Free Resources _BASS_Free() EndFunc ;==>OnAutoItExit Please tell me what you think. The reverse was an interesting one as I initially thought it was going to play the whole thing in reverse. But instead it plays sections, similar to what you'd expect from a DJ scratch and the like... I might just try that now... Cheers, Brett Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version!
BrettF Posted January 16, 2010 Author Posted January 16, 2010 Woo again for making Progress with BassVST. I dislike the author for not including a decent help file but I think I'm getting somewhere with it! Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version!
ProgAndy Posted January 16, 2010 Posted January 16, 2010 (edited) Just some small helper functions for setting and getting volume of a channel. I think they are quite useful ; $nVol: 0(silent) ... 100(full) Func _BASS_ChannelSetVolume($hChannel, $nVol) ; Author: Prog@ndy Local $ret = _BASS_ChannelSetAttribute($hChannel,$BASS_ATTRIB_VOL,$nVol/100) Return SetError(@error,@extended,$ret) EndFunc ; returns Volume: 0(silent) ... 100(full) Func _BASS_ChannelGetVolume($hChannel) ; Author: Prog@ndy Local $ret = _BASS_ChannelGetAttribute($hChannel,$BASS_ATTRIB_VOL) Return SetError(@error,@extended,$ret*100) EndFunc //Edit: in BASS.au3 the return value of _BASS_Startup is incorrect. To fix it, replace the last if-construct with this line: ;Check if the DLL was opened correctly. Return $_ghBassDll<>-1 Edited January 16, 2010 by ProgAndy *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes
BrettF Posted January 16, 2010 Author Posted January 16, 2010 Just some small helper functions for setting and getting volume of a channel. I think they are quite useful ; $nVol: 0(silent) ... 100(full) Func _BASS_ChannelSetVolume($hChannel, $nVol) ; Author: Prog@ndy Local $ret = _BASS_ChannelSetAttribute($hChannel,$BASS_ATTRIB_VOL,$nVol/100) Return SetError(@error,@extended,$ret) EndFunc ; returns Volume: 0(silent) ... 100(full) Func _BASS_ChannelGetVolume($hChannel) ; Author: Prog@ndy Local $ret = _BASS_ChannelGetAttribute($hChannel,$BASS_ATTRIB_VOL) Return SetError(@error,@extended,$ret*100) EndFunc Added, thank you. //Edit: in BASS.au3 the return value of _BASS_Startup is incorrect. To fix it, replace the last if-construct with this line: ;Check if the DLL was opened correctly. Return $_ghBassDll<>-1 Error was carried over with all Startup functions. Fixed thank you! Uploading Version 9 (7360KB) on dial up speeds... Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now