def init(freq=48000): """ Initialize BASS and the opus plugin """ global dll, use_ctypes if not dll: if platform.system() == "Darwin": dll = ctypes.CDLL(dllf) use_ctypes = True else: import pybass as dll dll.BASS_Init(ini.read_ini_int("aaio.ini", "Audio", "device", -1), freq, 0, 0, 0) dll.BASS_PluginLoad(os.path.abspath(opus), 0)
def __init__(self, *args, **kwargs): self.config_file_name = kwargs.pop('config_file_name', 'randomiz.ini') self.config = config(file_name=self.config_file_name) self.time_delay = self.config.get_int('time_delay', 2) self.play_sound = self.config.get_bool('play_sound', True) self.texture_from_file = self.config.get_bool('texture_from_file', False) self.sound_volume = self.config.get_float('sound_volume', 1.0) self.sound_file = self.config.get('sound_file', 'media//sound.mod') self.bass_handle = None self.sound_playing = False self.menu_options = None if pybass: if pybass.BASS_Init(-1, 44100, 0, 0, 0): pybass.BASS_SetVolume(self.sound_volume) if os.path.isfile(self.sound_file): self.bass_handle = pybass.BASS_MusicLoad( False, self.sound_file, 0, 0, pybass.BASS_MUSIC_PRESCAN | pybass.BASS_SAMPLE_LOOP, 0) if self.play_sound: self.sound_play() self.device_type = self.config.get_int('device_type', EDT_OPENGL) self.window_size = dimension2du( self.config.get_int('window_width', 640), self.config.get_int('window_height', 480)) self.device = createDevice(self.device_type, self.window_size) self.menu_device_types = {} self.help_dialog = None self.fog_enable = self.config.get_bool('fog_enable', True) self.fog_color = SColor( *self.config.get('fog_color', (0, 255, 255, 255))) self.fog_type = self.config.get_int('fog_type', EFT_FOG_LINEAR) self.fog_start = self.config.get_float('fog_start', 500.0) self.fog_end = self.config.get_float('fog_end', 1000.0) self.fog_density = self.config.get_float('fog_density', 0.01) self.fog_pixel = self.config.get_bool('fog_pixel', False) self.fog_range = self.config.get_bool('fog_range', False) # random volume variable self.tile_count = randint(10, 50) # len tile self.tile_len = 100 self.results = 0
BASS_WMA_EncodeOpenNetworkMulti = func_type(HWMENCODE, ctypes.c_ulong, ctypes.c_ulong, ctypes.c_ulong, ctypes.POINTER(ctypes.c_ulong), ctypes.c_ulong, ctypes.c_ulong)(('BASS_WMA_EncodeOpenNetworkMulti', basswma_module)) #HWMENCODE BASSWMADEF(BASS_WMA_EncodeOpenPublish)(DWORD freq, DWORD chans, DWORD flags, DWORD bitrate, const char *url, const char *user, const char *pass); BASS_WMA_EncodeOpenPublish = func_type(HWMENCODE, ctypes.c_ulong, ctypes.c_ulong, ctypes.c_ulong, ctypes.c_ulong, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p)(('BASS_WMA_EncodeOpenPublish', basswma_module)) #HWMENCODE BASSWMADEF(BASS_WMA_EncodeOpenPublishMulti)(DWORD freq, DWORD chans, DWORD flags, const DWORD *bitrates, const char *url, const char *user, const char *pass); BASS_WMA_EncodeOpenPublishMulti = func_type(HWMENCODE, ctypes.c_ulong, ctypes.c_ulong, ctypes.c_ulong, ctypes.POINTER(ctypes.c_ulong), ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p)(('BASS_WMA_EncodeOpenPublishMulti', basswma_module)) #DWORD BASSWMADEF(BASS_WMA_EncodeGetPort)(HWMENCODE handle); BASS_WMA_EncodeGetPort = func_type(ctypes.c_ulong, HWMENCODE)(('BASS_WMA_EncodeGetPort', basswma_module)) #BOOL BASSWMADEF(BASS_WMA_EncodeSetNotify)(HWMENCODE handle, CLIENTCONNECTPROC *proc, void *user); BASS_WMA_EncodeSetNotify = func_type(ctypes.c_byte, HWMENCODE, CLIENTCONNECTPROC, ctypes.c_void_p)(('BASS_WMA_EncodeSetNotify', basswma_module)) #DWORD BASSWMADEF(BASS_WMA_EncodeGetClients)(HWMENCODE handle); BASS_WMA_EncodeGetClients = func_type(ctypes.c_ulong, HWMENCODE)(('BASS_WMA_EncodeGetClients', basswma_module)) #BOOL BASSWMADEF(BASS_WMA_EncodeSetTag)(HWMENCODE handle, const char *tag, const char *text, DWORD form); BASS_WMA_EncodeSetTag = func_type(ctypes.c_byte, HWMENCODE, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_ulong)(('BASS_WMA_EncodeSetTag', basswma_module)) #BOOL BASSWMADEF(BASS_WMA_EncodeWrite)(HWMENCODE handle, const void *buffer, DWORD length); BASS_WMA_EncodeWrite = func_type(ctypes.c_byte, HWMENCODE, ctypes.c_void_p, ctypes.c_ulong)(('BASS_WMA_EncodeWrite', basswma_module)) #BOOL BASSWMADEF(BASS_WMA_EncodeClose)(HWMENCODE handle); BASS_WMA_EncodeClose = func_type(ctypes.c_byte, HWMENCODE)(('BASS_WMA_EncodeClose', basswma_module)) #void *BASSWMADEF(BASS_WMA_GetWMObject)(DWORD handle); BASS_WMA_GetWMObject = func_type(ctypes.c_void_p, ctypes.c_ulong)(('BASS_WMA_GetWMObject', basswma_module)) if __name__ == "__main__": if not pybass.BASS_Init(-1, 44100, 0, 0, 0): print('BASS_Init error %s' % pybass.get_error_description(pybass.BASS_ErrorGetCode())) else: handle = BASS_WMA_StreamCreateFile(False, b'test.wma', 0, 0, 0) pybass.play_handle(handle) if not pybass.BASS_Free(): print('BASS_Free error %s' % pybass.get_error_description(pybass.BASS_ErrorGetCode()))
def __init__(self, *args, **kwargs): self.stream = kwargs.pop('stream', None) self.name_stream = kwargs.pop('name_stream', 'memory_stream') self.bass_handle = 0 self.sound_font = 0 result = pybass.BASS_Init(-1, 44100, 0, 0, 0) if not result: bass_error_code = pybass.BASS_ErrorGetCode() if bass_error_code != pybass.BASS_ERROR_ALREADY: self.slider.Enable(False) self.btn_play.Enable(False) self.btn_stop.Enable(False) print('BASS_Init error %s' % pybass.get_error_description(bass_error_code)) self.plugins = {} self.plugins['aac'] = (pybass.BASS_PluginLoad('bass_aac.dll', 0), '|AAC|*.aac') self.plugins['ac3'] = (pybass.BASS_PluginLoad('bass_ac3.dll', 0), '|AC3|*.ac3') self.plugins['aix'] = (pybass.BASS_PluginLoad('bass_aix.dll', 0), '|AIX|*.aix') self.plugins['ape'] = (pybass.BASS_PluginLoad('bass_ape.dll', 0), '|APE|*.ape') self.plugins['mpc'] = (pybass.BASS_PluginLoad('bass_mpc.dll', 0), '|MPC|*.mpc') self.plugins['ofr'] = (pybass.BASS_PluginLoad('bass_ofr.dll', 0), '|OFR|*.ofr') self.plugins['spx'] = (pybass.BASS_PluginLoad('bass_spx.dll', 0), '|SPX|*.spx') self.plugins['tta'] = (pybass.BASS_PluginLoad('bass_tta.dll', 0), '|TTA|*.tta') self.plugins['cda'] = (pybass.BASS_PluginLoad('basscd.dll', 0), '|CDA|*.cda') self.plugins['flac'] = (pybass.BASS_PluginLoad('bassflac.dll', 0), '|FLAC|*.flac') self.plugins['wma'] = (pybass.BASS_PluginLoad('basswma.dll', 0), '|WMA, WMV|*.wma;*.wmv') if pybassmidi: sound_font_file_name = 'CT4MGM.SF2' self.sound_font = pybassmidi.BASS_MIDI_FontInit( sound_font_file_name, 0) if self.sound_font == 0: print( 'BASS_MIDI_FontInit error %s (sound font file must be %s)' % (pybass.get_error_description( pybass.BASS_ErrorGetCode()), sound_font_file_name)) else: self.plugins['midi'] = (pybass.BASS_PluginLoad( 'bassmidi.dll', 0), '|MID|*.mid') else: print('pybassmidi module not accessible') wx.Panel.__init__(self, *args, **kwargs) sizer_h = wx.BoxSizer(wx.HORIZONTAL) self.btn_play = wx.Button(self, wx.ID_ANY, _('Play'), style=wx.NO_BORDER) self.btn_play.SetToolTip(_('Play media data')) self.Bind(wx.EVT_BUTTON, self.event_play, self.btn_play) sizer_h.Add(self.btn_play) self.btn_stop = wx.Button(self, wx.ID_ANY, _('Stop'), style=wx.NO_BORDER) self.Bind(wx.EVT_BUTTON, self.event_stop, self.btn_stop) sizer_h.Add(self.btn_stop) self.btn_open = wx.Button(self, wx.ID_OPEN, _('Open'), style=wx.NO_BORDER) self.Bind(wx.EVT_BUTTON, self.event_open, self.btn_open) sizer_h.Add(self.btn_open) sizer_v = wx.BoxSizer(wx.VERTICAL) self.status_line = Ticker(self, fgcolor='#000062', bgcolor='#7F7F8F', start=False, ppf=1, fps=50, direction='ltr') sizer_v.Add(self.status_line, 0, wx.EXPAND) self.slider = slider_ctrl(self, wx.ID_ANY, 0, 0, 1) sizer_v.Add(self.slider, 0, wx.EXPAND) sizer_v.Add(sizer_h) self.SetSizer(sizer_v) self.SetAutoLayout(True) self.volume_slider = wx.Slider(self, wx.ID_ANY, pybass.BASS_GetVolume() * 100, 0, 100) self.Bind(wx.EVT_SCROLL, self.event_volume_slider, self.volume_slider) sizer_h.Add(self.volume_slider, 0, wx.EXPAND) self.method_check_controls()
def __init__(self, *args, **kwargs): global pybass, pyespeak self.config_file_name = kwargs.pop('config_file_name', 'entrain.ini') self.config = config(file_name=self.config_file_name) self.time_delay = self.config.get_int('time_delay', 5) self.play_sound = self.config.get_bool('play_sound', True) self.sound_volume = self.config.get_float('sound_volume', 0.5) self.music_file = self.config.get('music_file', 'music//Ranger_Song.s3m') self.svg_directory = self.config.get('svg_dir', 'svg_data') if not os.path.isdir(self.svg_directory): self.svg_directory = '' self.bass_handle = None self.sound_playing = False self.menu_options = None if pybass: if pybass.BASS_Init(-1, 44100, 0, 0, 0): pybass.BASS_SetVolume(self.sound_volume) if os.path.isfile(self.music_file): self.bass_handle = pybass.BASS_MusicLoad( False, self.music_file, 0, 0, pybass.BASS_MUSIC_PRESCAN | pybass.BASS_SAMPLE_LOOP, 0) if self.play_sound: self.sound_play() else: pybass = None self.voice_rate = self.config.get_int('voice_rate', 150) self.voice_pitch = self.config.get_int('voice_pitch', 50) if pyespeak: if pyespeak.espeak_Initialize(pyespeak.AUDIO_OUTPUT_SYNCH_PLAYBACK, 0, '.', 0) == pyespeak.EE_INTERNAL_ERROR: pyespeak = None else: pyespeak.espeak_SetVoiceByName('default') pyespeak.espeak_SetParameter(pyespeak.espeakRATE, self.voice_rate, 0) pyespeak.espeak_SetParameter(pyespeak.espeakPITCH, self.voice_pitch, 0) default_driver_type = EDT_SOFTWARE if 'win' in sys.platform: default_driver_type = EDT_DIRECT3D9 elif 'linux' in sys.platform: default_driver_type = EDT_OPENGL self.device_parameters = SIrrlichtCreationParameters() self.device_parameters.DriverType = self.config.get_int( 'driver_type', default_driver_type) self.device_parameters.WindowSize = dimension2du( self.config.get_int('window_width', 640), self.config.get_int('window_height', 480)) self.device_parameters.AntiAlias = self.config.get_int('anti_alias', 2) self.device_parameters.WithAlphaChannel = self.config.get_bool( 'with_alpha_channel', True) self.device = createDeviceEx(self.device_parameters) self.menu_driver_types = {} self.help_dialog = None self.good_results = 0 self.bad_results = 0 #~ self.button_repeat_voice = None self.voice_on = self.config.get_bool('voice_on', True) self.font_size = self.config.get_int('font_size', 32) self.font_file = self.replace_env_vars( self.config.get('font_file', '@SYSTEMROOT@/Fonts/arial.ttf')) self.gui_font_size = self.config.get_int('gui_font_size', 24) self.gui_font_file = self.replace_env_vars( self.config.get('gui_font_file', '@SYSTEMROOT@/Fonts/arial.ttf')) self.svg_image = None