Воспроизведение звуков с Python и изменение их тона во время воспроизведения?
Есть ли способ сделать это? Кроме того, мне нужно это для работы с Pygame, так как я хочу аудио в моей игре. Я спрашиваю об этом, потому что я не видел никакой функции изменения тона в Pygame.. Кто-нибудь знает?
Обновить:
Мне нужно сделать что-то вроде шума ускоряющейся машины. Я действительно не знаю, тембр это или тон.
1 ответ
Ну, это зависит от того, как вы делаете свои звуки: я не уверен, возможно ли это с Pygame, но SDL (на котором основана Pygame) позволяет вам иметь обратный вызов для извлечения данных для звукового буфера, и это Можно изменить частоту синусоидальной волны (или любую другую), чтобы получить разные тоны в обратном вызове, учитывая, что вы генерируете звук там.
Если вы используете предварительно обработанный тон или звуковой файл, то вам, вероятно, придется повторно сэмплировать его, чтобы он воспроизводился на разных частотах, хотя было бы трудно сохранить одинаковую длину. Если вы говорите об изменении тембра звука, то это совсем другой пример...
Кроме того, это зависит от того, насколько быстро должен измениться звук: если вы можете принять небольшое отставание в ответ, вы, вероятно, можете генерировать несколько коротких звуков и воспроизводить / зацикливать их по мере необходимости. Я не уверен, как постоянное воспроизведение звуков повлияет на производительность / общее качество звука: вам нужно убедиться, что концы всех концов сигнала плавно переходят в начало следующего (возможно).