Это моя 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,........)
Но, похоже, это не работает.