Затухающий звук в Python - PullRequest
       0

Затухающий звук в Python

0 голосов
/ 12 октября 2011

Это моя fade_out функция.

def fade_out (snd, fade_length):
    new_snd = sound.copy(snd)
    factor = 1.0/fade_length
    fade_o = 1
    for sample in new_snd:
        sound.set_left(sample, int(sound.get_left(sample)*fade_o))
        sound.set_right(sample, int(sound.get_right(sample)*fade_o))
        if fade_o > 0:
            fade_o = fade_o - factor
    return new_snd

Первая проблема, с которой я столкнулся, связана с этой частью:

    if fade_o > 0:
       fade_o = fade_o - factor

Я не понимаю, почему face_o вычитается только один раз. Я думал, что fade_o будет продолжать вычитаться до тех пор, пока не достигнет 0.

Вторая проблема, с которой я столкнулся, заключается в том, что я не знаю, как начать постепенное исчезновение в нужное мне время. Например, если длина звука составляет 600 000, а длина фейдера - 100 000, я хочу начать постепенное затухание со смещением 500 000 (что составляет 600 000 - 100 000). Я не уверен, как это сделать.

Я думал о чем-то вроде этого:

    for sample in new_snd:
        if sound.get_index(sample) > (len(snd)-fade_length):
            sound.set_left(sample,........)

Но, похоже, это не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...