Воспроизведение звуков с помощью python и изменение их тона во время воспроизведения?

StackOverflow https://stackoverflow.com/questions/1561104

  •  21-09-2019
  •  | 
  •  

Вопрос

Есть ли способ сделать это?Кроме того, мне это нужно для работы с pygame, так как я хочу, чтобы в моей игре был звук.Я спрашиваю об этом, потому что я не видел никакой функции изменения тона в pygame..Кто-нибудь знает?

Обновить:

Мне нужно изобразить что-то вроде шума разгоняющейся машины.Я действительно не знаю, тембр это или интонация.

Это было полезно?

Решение

Ну, это зависит от того, как вы воспроизводите свои звуки:Я не уверен, возможно ли это с pygame, но SDL (на котором основана pygame) позволяет вам выполнять обратный вызов для извлечения данных для звукового буфера, и можно изменять частоту синусоидальной волны (или что-то еще), чтобы получать разные тона при обратном вызове, учитывая, что вы генерируете звук там.

Если вы используете предварительно отрисованный тон или звуковой файл, то вам, вероятно, придется выполнить повторную выборку, чтобы заставить его воспроизводиться на разных частотах, хотя было бы трудно сохранить одинаковую длину.Если вы говорите об изменении тембра звука, то это совершенно другой подход...

Кроме того, это зависит от того, насколько быстро должен изменяться звук:если вы можете смириться с небольшой задержкой в ответе, вы, вероятно, могли бы сгенерировать несколько коротких звуков и воспроизводить их по мере необходимости.Однако я не уверен, как постоянное воспроизведение звуков повлияет на производительность / общее качество звука:вам нужно было бы убедиться, что концы всех сигналов плавно переходят к началу следующего (возможно).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top