2011-12-22 3 views
0

Я пытаюсь создать небольшой звуковой генератор с pygame и numpy. Следующий код правильно воспроизводит данные из моих массивов numpy, но когда я пытаюсь использовать этот код в модуле и получаю доступ к нему либо из разных потоков, либо из разных процессов, чтобы воспроизводить по два звука за раз, воспроизводится один из звуков перед тем другой один вместо как в то же самое времяpygame: using pygame.mixer одновременно из 2 потоков не работает

def _play_array(array, ms, vol): 
    sound = pygame.sndarray.make_sound(_intern._as_int16(array)) 
    channel = sound.play(-1) 
    channel.set_volume(vol) 
    if ms > 50: 
     pygame.time.delay(ms-50) 
     channel.fadeout(50) 
    else: 
     pygame.time.delay(ms) 
    sound.stop() 

обновление:

Я попытался установить audiere, но все, что происходит в том, что он приходит с смехотворно длинной TRACEBACK ошибки, но это, по-видимому, проблема, с которой столкнулся установщик: /Developer/SDKs/MacOSX10.6.sdk/usr/include/stdarg.h:4:25: error: stdarg.h: No such file or directory

(редактировать) Теперь я узнал, что это не работает на Mac OS X

обновление 2:

пытается использовать закуску/tkSnack: RuntimeError: Tk not intialized or not registered with Snack

обновление 3:

пытается для установки wxPython для воспроизведения звука после его записи в файл - import wx просто не удается: /usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/_core_.so: no matching architecture in universal wrapper. Я получаю немного раздражен этой проблемой ...

обновления 4:

см отправлять

+0

Вы должны ознакомиться с нашим сайтом-сестрой, [Gamedev.se]. –

+0

Ну, это даже не об играх, но спасибо за сообщение ссылки, может быть, что-то там не нахожу – hlt

+0

Хе-хе, вот что я получаю за то, что смотрю на теги больше, чем на вопрос. :) Тем не менее, у них может быть больше вещей, связанных с pygame. –

ответ

0

Это стало раздражать меня. Я решил использовать стандартный музыкальный плеер os-wide, чтобы играть в него, так как ни один из других методов не работает.

os.system("open " + path) 

работает нормально на маке.

0

Чтобы полностью обойти проблему можно использовать р audiere, чтобы сделать свои звуки. с ним вы могли бы иметь сразу два разных тона.

Используя ваш код, я не думаю, что вы можете иметь сразу два тона. Это отрывок из моего генератора частоты:

speakers = audiere.open_device() 

tone = speakers.create_square(start_freq *2) 
tone.pan = 1 

tone.stop() 
tone.play() 

Просто два звука вместо одного.

Извините, но не использует ваш код, но, возможно, это может быть полезно для вас. :)

+1

Я действительно пытался установить его раньше, но он не смог построить. Когда я смотрел в Интернете, почему это произошло, мне сказали, что он не работает на mac os x. К сожалению, я разрабатываю и тестирую на Mac ... – hlt

 Смежные вопросы

  • Нет связанных вопросов^_^