Popular Post BrettF Posted October 29, 2008 Popular Post Share Posted October 29, 2008 (edited) BASS Function Library This library is a wrapper for the powerful Bass.DLL and add-ons (which increase the functionality of Bass.DLL). Bass.DLL is ideal for use in your applications and scripts if you want an easy way to play a vast range of music and sound files formats while keeping dependency on just Bass.dll and it's add-ons (which in turn maximizes compatibility and minimizes extra requirements for your software to run.), while retaining a small file size. The UDFs included with the release are: Bass The basic Bass library. Required with all (most) add-on libraries. Provides playback of many sound files (and streams). BassASIO (By eukalyptus) BASSASIO is basically a wrapper for ASIO drivers, with the addition of channel joining, format conversion and resampling. BassCD Allows for digital streaming and ripping of audio CDs along with analog playback support. BassFX (By eukalyptus/BrettF) An extension providing several effects, including tempo & pitch control. BassEnc (By eukalyptus) An extension that allows BASS channels to be encoded using any command-line encoder with STDIN support (LAME/OGGENC/etc), or any ACM codec. Also features Shoutcast and Icecast stream sourcing, and PCM/WAV file writing. BassSFX Provides a complete set of functions to include support for winamp, sonique, bassbox, and Windows Media Player visualization plugins. BassTags Provides a simple way to retrieve ID3 tags from stream handles. BassCB/Bass_EXT (ProgAndy) This is for advanced users. BassCB allows the playback of streams in AutoIt. BassVST Allows use of VST effect plugins. Download The download includes all of the wrapper and constants, the original download, examples for all of the previously mentioned add-ons, sample audio files (6 channel audio files also included), sample visualization plugins for BassSFx and more. Current Version: 9 Size: 7360KB AutoIt Version Required: 3.3.2.0 Changelog: /> Fixed _BassRecordGetInputName (updated production versions) +> Added Memory Examples of Bass (Thanks ProgAndy and UEZ) +> Added BassVST (Not 100% complete) +> Added BassFX Examples showing use of most functions: Pitch.au3 Reverse.au3 Tempo.au3 /> Fixed error with calling _BASS_ErrorGetCode in BASSCD.au3 /> Fixed startup functions return the wrong value (Thanks ProgAndy!) +> Added helper functions _BASS_ChannelSetVolume, _BASS_ChannelGetVolume (Thanks ProgAndy) Download Link: https://www.autoitscript.com/forum/files/file/493-basszip/ Previous versions are not supported. Patches: Patch 1 "BASS_ASIO" Fixes issues with BASS ASIO and examples. Patch 2 "BASS_FX/BASS" Fixes issues with BASS FX and BASS. Edited March 18, 2020 by Melba23 Updated download link Wiliat87, this-is-me, Bumek662 and 5 others 8 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! Link to comment Share on other sites More sharing options...
BrettF Posted October 29, 2008 Author Share Posted October 29, 2008 (edited) Great example of visualisations using bass.dll:Thanks to monoceres.#596104 Edited November 10, 2008 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! Link to comment Share on other sites More sharing options...
ProgAndy Posted October 29, 2008 Share Posted October 29, 2008 Great! I recommend to rename _PtrStringRead to __BASS_PtrStringRead So there are no errorrs, if another UDF incudes those function, too *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 Link to comment Share on other sites More sharing options...
BrettF Posted October 29, 2008 Author Share Posted October 29, 2008 Great! I recommend to rename _PtrStringRead to __BASS_PtrStringRead So there are no errorrs, if another UDF incudes those function, too Was the header info for those functions correct? I basically made it up from what I understood about 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! Link to comment Share on other sites More sharing options...
ronriel Posted October 29, 2008 Share Posted October 29, 2008 This is very interesting! Thank you. [font="Comic Sans MS"]-ronriel[/font][topic="48542"]r4r media player[/topic][topic="80836"]OCR & Paste[/topic] Link to comment Share on other sites More sharing options...
ProgAndy Posted October 29, 2008 Share Posted October 29, 2008 (edited) Was the header info for those functions correct? I basically made it up from what I understood about it... Well, most ist correct Here the corrected headers: ; #INTERNAL# ==================================================================================================================== ; Name...........: _PtrStringLen ; Description ...: Retrieves the lenth of a string in a PTR. ; Syntax.........: _PtrStringLen($ptr, $IsUniCode = False) ; Parameters ....: - $ptr - Pointer to the string ; - [Optional] $IsUniCode - True = Unicode, False (Default) = ANSI ; Return values .: Success - Returns length of string ( can be 0 as well ) ; Failure - Returns -1 and sets @ERROR ; @error will be set to 1 ; Author ........: Prog@ndy ; Modified.......: ; Remarks .......: ; Related .......: ; Link ..........; ; Example .......; ; =============================================================================================================================== ; #INTERNAL# ==================================================================================================================== ; Name...........: _PtrStringRead ; Description ...: Reads a string from a pointer ; Syntax.........: _PtrStringRead($ptr, $IsUniCode = False, $StringLen = -1) ; Parameters ....: - $ptr - Pointer to the string ; - $IsUniCode - [Optional] True = Unicode, False (Default) = ANSI ; - $StringLen - [Optional] Length of the String ; Return values .: Success - Returns the read string (can be empty) ; Failure - Returns "" (empty String) and sets @ERROR ; @error will be set to 1 ; Author ........: Prog@ndy ; Modified.......: ; Remarks .......: ; Related .......: ; Link ..........; ; Example .......; ; =============================================================================================================================== Edited October 29, 2008 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 Link to comment Share on other sites More sharing options...
BrettF Posted October 29, 2008 Author Share Posted October 29, 2008 Thanks mate. Edited on my copy. Not too much difference so will upload when someone does the inevitable and finds where I've missed something... 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! Link to comment Share on other sites More sharing options...
eukalyptus Posted October 29, 2008 Share Posted October 29, 2008 YEAHHH!!! You are my Hero! Thx for this great stuff! DirectSound UDF Direct2D UDF Link to comment Share on other sites More sharing options...
trancexx Posted October 29, 2008 Share Posted October 29, 2008 Thanks mate. Edited on my copy. Not too much difference so will upload when someone does the inevitable and finds where I've missed something... _BASS_ChannelBytes2Seconds()... "uint65" ???_BASS_ChannelGetPosition()... change return type from "uint64" to "udword" ♡♡♡ . eMyvnE Link to comment Share on other sites More sharing options...
BrettF Posted October 29, 2008 Author Share Posted October 29, 2008 _BASS_ChannelBytes2Seconds()... "uint65" ???_BASS_ChannelGetPosition()... change return type from "uint64" to "udword"ty 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! Link to comment Share on other sites More sharing options...
BrettF Posted October 30, 2008 Author Share Posted October 30, 2008 (edited) _BASS_ChannelBytes2Seconds()... "uint65" ???_BASS_ChannelGetPosition()... change return type from "uint64" to "udword"This is confusing me, cause it never works for me (setting position.) I have something working, but its not updating the position?EDIT: Worked it out! Will update bass.au3 soon, and add another example of getting and setting the position! Edited October 30, 2008 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! Link to comment Share on other sites More sharing options...
eukalyptus Posted November 2, 2008 Share Posted November 2, 2008 Hi How do I get the name of a recordingdevice? _BASS_RecordGetDeviceInfo returns only: 0x00144328 thx E DirectSound UDF Direct2D UDF Link to comment Share on other sites More sharing options...
BrettF Posted November 2, 2008 Author Share Posted November 2, 2008 Made a mistake. How does this go for you?Example;Get Recording Device Information. #include <Bass.au3> #include <BassConstants.au3> #include <Array.au3> $bass_dll = DllOpen("BASS.dll") $return = _BASS_RecordGetDeviceInfo($bass_dll, 0) _ArrayDisplay ($return)Functionexpandcollapse popup; #FUNCTION# ==================================================================================================== ================ ; Name...........: _BASS_RecordGetDeviceInfo ; Description ...: Retrieves information on a recording device. ; Syntax.........: _BASS_RecordGetDeviceInfo($bass_dll, $device) ; Parameters ....: - $bass_dll - Handle to opened Bass.dll ; - $device - The device to get the information of... 0 = first. ; Return values .: Success - Returns an array containg the device info. ; - [0] = Name ; - Description of the device. ; - [1] = Driver ; - driver The filename of the driver... ; NULL = no driver ("no sound" device). On systems that can use both VxD and WDM ; drivers (Windows Me/98SE), this will reveal which type of driver is being used. ; Further information can be obtained from the file using the GetFileVersionInfo ; Win32 API function. ; - [2] = Flags ; - The device's current status... a combination of these flags. ; - BASS_DEVICE_ENABLED ; - The device is enabled. It will not be possible to initialize the ; device if this flag is not present. ; - $BASS_DEVICE_DEFAULT ; - The device is the system default. ; - $BASS_DEVICE_INIT ; - The device is initialized, ie. BASS_Init or BASS_RecordInit has been called. ; Failure - Returns 0 and sets @ERROR to error returned by _BASS_ErrorGetCode() ; @error will be set to- ; - $BASS_ERROR_DX ; - A sufficient version of DirectX is not installed. ; - $BASS_ERROR_DEVICE ; - device is invalid. ; Author ........: Brett Francis (BrettF) ; Modified.......: ; Remarks .......: ; Related .......: ; Link ..........; ; Example .......; ; ==================================================================================================== =========================== Func _BASS_RecordGetDeviceInfo($bass_dll, $device) Local $aRet[3] $sRet = DllStructCreate($BASS_DEVICEINFO) $BASS_ret_ = DllCall($bass_dll, "int", "BASS_RecordGetDeviceInfo", "dword", $device, "ptr", DllStructGetPtr($sRet)) $error = _BASS_ErrorGetCode($bass_dll) If $error <> 0 Then Return SetError($error, "", 0) Else $rest = DllStructCreate ("char[255]", DllStructGetData($sRet, 1)) $aRet[0] = DllStructGetData ($rest, 1) $rest = DllStructCreate ("char[255]", DllStructGetData($sRet, 2)) $aRet[1] = DllStructGetData ($rest, 1) $aRet[2] = DllStructGetData($sRet, 3) Return SetError(0, "", $aRet) EndIf EndFunc ;==>_BASS_RecordGetDeviceInfoCheers,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! Link to comment Share on other sites More sharing options...
eukalyptus Posted November 2, 2008 Share Posted November 2, 2008 works fine big thx! DirectSound UDF Direct2D UDF Link to comment Share on other sites More sharing options...
rasim Posted November 3, 2008 Share Posted November 3, 2008 BrettFGreat job! Thank you for sharing! Link to comment Share on other sites More sharing options...
BrettF Posted November 3, 2008 Author Share Posted November 3, 2008 Thanks! First post will be updated soon when I get round to it... I might make a new example based around Monoceres' work on visualisations. They really do rock! 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! Link to comment Share on other sites More sharing options...
eukalyptus Posted November 3, 2008 Share Posted November 3, 2008 Hi I´ve tried to write an UDF for bassenc.dll bassenc.dll is used to write audiodata to disk, send to an encoder (lame.exe...) or stream to an icecast or shoutcast-server. bassenc.rar there are 2 examples (simple wav/mp3 recording scripts) included: example_callback.au3 example_no_callback.au3 why? because there are problems... if you use _BASS_RecordStart without a CallBack then you´ve to call _BASS_ChannelGetLevel at least once in the specified $BASS_CONFIG_REC_BUFFER-time otherwise no data is sent to the encoder!?! This example is stable, but if you are moving the GUI during encoding, no _BASS_ChannelGetLevel is called and the recordingfile has dropouts. _BASS_RecordStart with a CallBack sends all recorded data to the encoder, but the callback procedure crashes the script after a while! can this be fixed? I hope you understand my bad english Eukalyptus by the way: I found 3 bugs: line 218: "_BASS_SetConfig" ________^ underscore line 1092: " BASS_Get3DFactors" _________^ space _BASS_RecordStart: if you don´t use a callback ("") then error @ DllCallBackRegister DirectSound UDF Direct2D UDF Link to comment Share on other sites More sharing options...
BrettF Posted November 4, 2008 Author Share Posted November 4, 2008 (edited) Hi I´ve tried to write an UDF for bassenc.dll bassenc.dll is used to write audiodata to disk, send to an encoder (lame.exe...) or stream to an icecast or shoutcast-server. bassenc.rar there are 2 examples (simple wav/mp3 recording scripts) included: example_callback.au3 example_no_callback.au3 why? because there are problems... if you use _BASS_RecordStart without a CallBack then you´ve to call _BASS_ChannelGetLevel at least once in the specified $BASS_CONFIG_REC_BUFFER-time otherwise no data is sent to the encoder!?! This example is stable, but if you are moving the GUI during encoding, no _BASS_ChannelGetLevel is called and the recordingfile has dropouts. _BASS_RecordStart with a CallBack sends all recorded data to the encoder, but the callback procedure crashes the script after a while! can this be fixed? I hope you understand my bad english Eukalyptus by the way: I found 3 bugs: line 218: "_BASS_SetConfig" ________^ underscore line 1092: " BASS_Get3DFactors" _________^ space _BASS_RecordStart: if you don´t use a callback ("") then error @ DllCallBackRegisterI will take a look at the BASSENC, but I'm confused about the first 2 bugs... Number 3 makes sense EDIT Nice work on BASSENC! It looks nice and works very well. I've started to get BASS_Video in the works as well. I'd say it might be easier to use an ADLIB loop? See how that goes. Its nice to see people expanding on the original UDF to start to utilise the many other BASS_*.dll's. Nice work! Cheers, Brett Edited November 4, 2008 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! Link to comment Share on other sites More sharing options...
eukalyptus Posted November 4, 2008 Share Posted November 4, 2008 ...but I'm confused about the first 2 bugs... Number 3 makes sense wrong dll-function names: DllCall($bass_dll, "int", "_BASS_SetConfig"...the functionname in bass.dll is "BASS_SetConfig" without the first underscore. (copy & paste *g*)---Because of the crashing callback, I wrote a dll in freepascal some time ago, including the basic functions I need to record audio.Do you think that it´s possible to write a dll with the function _Bass_RecordStart incl. callback and do all the other things in AutoIt?The problem is, that the dll and AutoIt have to use the same instance/handle of bass.dll !?c.u.E DirectSound UDF Direct2D UDF Link to comment Share on other sites More sharing options...
BrettF Posted November 4, 2008 Author Share Posted November 4, 2008 Ah I see now. I've fixed them, will update some time soon. Can't write DLLs in AutoIt. 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! Link to comment Share on other sites More sharing options...
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