Esempio n. 1
0
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)
Esempio n. 2
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
Esempio n. 3
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()))
Esempio n. 4
0
    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()
Esempio n. 5
0
 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