#python #audio #fadein
#python #Аудио #затухание
Вопрос:
Я студент в классе программирования, и я просто не могу заставить это затухание работать… Прямо сейчас он просто отключает первые несколько сэмплов длины fade_length … кто-нибудь может сказать мне, почему это так, чтобы я мог найти способ это исправить?
<code erased>
Помощь без прямых ответов была бы отличной. Спасибо
Комментарии:
1. Достаточно ли велика длина затухания? Оно должно быть 44100, если вы хотите, чтобы затухание составляло 1 секунду (при условии, что это частота дискретизации).
2. да, я сделал, и это полностью отключило область, которую я хотел, чтобы она исчезла…
3. Возможно
sound.set_left(samp, int(new_left))
, он ожидает число от 0 до 1 (где вы округляете до int)?4. это должно быть левое значение, умноженное на коэффициент, который находится между 0 и 1, поэтому само значение должно быть больше единицы… но я вижу, откуда вы это взяли… Я проверю и посмотрю, может быть, это отчасти причина…
5. <код удален> ???
Ответ №1:
Если вы используете Python 2.x, попробуйте
factor = 1.0 * index / fade_length
int
Деленное на большее int
значение равно 0. Вы должны принудить операцию к делению с плавающей запятой.
Редактировать:
Вы также можете использовать from __future__ import division
, чтобы заставить оператор деления использовать истинное деление, как в Python 3. Используйте ‘//’ для разделения по этажам.
Комментарии:
1. Правильно. Вы слишком поздно переводите его в режим float. Порядок операций заключается в разделении, а затем преобразовании в float. Вам нужно сначала преобразовать в float, а затем разделить.
2. Для удобства чтения я бы выбрал
factor = index / float(fade_length)
.