Затухание начала звука с помощью Python

#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) .