"""This is a python binding for BASS library (http://www.un4seen.com) Author: Victor Lin (bornstub@gmail.com) Blog: http://ez2learn.com """ from _pybass import * bassmix = windll.bassmix # constants BASS_CONFIG_MIXER_FILTER = 0x10600 BASS_CONFIG_MIXER_BUFFER = 0x10601 BASS_CONFIG_SPLIT_BUFFER = 0x10610 BASS_MIXER_END = 0x10000 # end the stream when there are no sources BASS_MIXER_NONSTOP = 0x20000 # don't stall when there are no sources BASS_MIXER_RESUME = 0x1000 # resume stalled immediately upon new/unpaused source BASS_MIXER_FILTER = 0x1000 # resampling filter BASS_MIXER_BUFFER = 0x2000 # buffer data for BASS_Mixer_ChannelGetData/Level BASS_MIXER_LIMIT = 0x4000 # limit mixer processing to the amount available from this source BASS_MIXER_MATRIX = 0x10000 # matrix mixing BASS_MIXER_PAUSE = 0x20000 # don't process the source BASS_MIXER_DOWNMIX = 0x400000 # downmix to stereo/mono BASS_MIXER_NORAMPIN = 0x800000# don't ramp-in the start BASS_MIXER_ENV_FREQ = 1 BASS_MIXER_ENV_VOL = 2 BASS_MIXER_ENV_PAN = 3 BASS_MIXER_ENV_LOOP = 0x10000 # FLAG: loop BASS_SYNC_MIXER_ENVELOPE = 0x10200 BASS_CTYPE_STREAM_MIXER = 0x10800 BASS_CTYPE_STREAM_SPLIT = 0x10801 # structures class BASS_MIXER_NODE(Structure): _fields_ = [ ("pos", QWORD), ("value", c_float) ] # bassmix BASS_Mixer_GetVersion = bassmix.BASS_Mixer_GetVersion BASS_Mixer_GetVersion.restype = DWORD BASS_Mixer_GetVersion.argtypes = [] BASS_Mixer_StreamCreate = bassmix.BASS_Mixer_StreamCreate BASS_Mixer_StreamCreate.restype = HSTREAM BASS_Mixer_StreamCreate.argtypes = [DWORD, DWORD, DWORD] BASS_Mixer_StreamAddChannel = bassmix.BASS_Mixer_StreamAddChannel BASS_Mixer_StreamAddChannel.restype = BOOL BASS_Mixer_StreamAddChannel.argtypes = [HSTREAM, DWORD, DWORD] BASS_Mixer_StreamAddChannelEx = bassmix.BASS_Mixer_StreamAddChannelEx BASS_Mixer_StreamAddChannelEx.restype = BOOL BASS_Mixer_StreamAddChannelEx.argtypes = [HSTREAM, DWORD, DWORD, QWORD, QWORD] # channel BASS_Mixer_ChannelGetMixer = bassmix.BASS_Mixer_ChannelGetMixer BASS_Mixer_ChannelGetMixer.restype = HSTREAM BASS_Mixer_ChannelGetMixer.argtypes = [DWORD] BASS_Mixer_ChannelFlags = bassmix.BASS_Mixer_ChannelFlags BASS_Mixer_ChannelFlags.restype = DWORD BASS_Mixer_ChannelFlags.argtypes = [DWORD, DWORD, DWORD] BASS_Mixer_ChannelRemove = bassmix.BASS_Mixer_ChannelRemove BASS_Mixer_ChannelRemove.restype = BOOL BASS_Mixer_ChannelRemove.argtypes = [DWORD] BASS_Mixer_ChannelSetPosition = bassmix.BASS_Mixer_ChannelSetPosition BASS_Mixer_ChannelSetPosition.restype = BOOL BASS_Mixer_ChannelSetPosition.argtypes = [DWORD, QWORD, DWORD] BASS_Mixer_ChannelGetPosition = bassmix.BASS_Mixer_ChannelGetPosition BASS_Mixer_ChannelGetPosition.restype = QWORD BASS_Mixer_ChannelGetPosition.argtypes = [DWORD, DWORD] BASS_Mixer_ChannelGetLevel = bassmix.BASS_Mixer_ChannelGetLevel BASS_Mixer_ChannelGetLevel.restype = DWORD BASS_Mixer_ChannelGetLevel.argtypes = [DWORD] BASS_Mixer_ChannelGetData = bassmix.BASS_Mixer_ChannelGetData BASS_Mixer_ChannelGetData.restype = DWORD BASS_Mixer_ChannelGetData.argtypes = [DWORD, c_void_p, DWORD] BASS_Mixer_ChannelSetSync = bassmix.BASS_Mixer_ChannelSetSync BASS_Mixer_ChannelSetSync.restype = HSYNC BASS_Mixer_ChannelSetSync.argtypes = [DWORD, DWORD, QWORD, SYNCPROC, c_void_p] BASS_Mixer_ChannelRemoveSync = bassmix.BASS_Mixer_ChannelRemoveSync BASS_Mixer_ChannelRemoveSync.restype = BOOL BASS_Mixer_ChannelRemoveSync.argtypes = [DWORD, HSYNC] BASS_Mixer_ChannelSetMatrix = bassmix.BASS_Mixer_ChannelSetMatrix BASS_Mixer_ChannelSetMatrix.restype = BOOL BASS_Mixer_ChannelSetMatrix.argtypes = [DWORD, POINTER(c_float)] BASS_Mixer_ChannelGetMatrix = bassmix.BASS_Mixer_ChannelGetMatrix BASS_Mixer_ChannelGetMatrix.restype = BOOL BASS_Mixer_ChannelGetMatrix.argtypes = [DWORD, POINTER(c_float)] BASS_Mixer_ChannelSetEnvelope = bassmix.BASS_Mixer_ChannelSetEnvelope BASS_Mixer_ChannelSetEnvelope.restype = BOOL BASS_Mixer_ChannelSetEnvelope.argtypes = [DWORD, DWORD, POINTER(BASS_MIXER_NODE), DWORD] BASS_Mixer_ChannelSetEnvelopePos = bassmix.BASS_Mixer_ChannelSetEnvelopePos BASS_Mixer_ChannelSetEnvelopePos.restype = BOOL BASS_Mixer_ChannelSetEnvelopePos.argtypes = [DWORD, DWORD, QWORD] BASS_Mixer_ChannelGetEnvelopePos = bassmix.BASS_Mixer_ChannelGetEnvelopePos BASS_Mixer_ChannelGetEnvelopePos.restype = QWORD BASS_Mixer_ChannelGetEnvelopePos.argtypes = [DWORD, DWORD, POINTER(c_float)] # split BASS_Split_StreamCreate = bassmix.BASS_Split_StreamCreate BASS_Split_StreamCreate.restype = HSTREAM BASS_Split_StreamCreate.argtypes = [DWORD, DWORD, POINTER(c_int)] BASS_Split_StreamGetSource = bassmix.BASS_Split_StreamGetSource BASS_Split_StreamGetSource.restype = DWORD BASS_Split_StreamGetSource.argtypes = [HSTREAM] BASS_Split_StreamReset = bassmix.BASS_Split_StreamReset BASS_Split_StreamReset.restype = BOOL BASS_Split_StreamReset.argtypes = [DWORD]