#actionscript-3 #audio
#actionscript-3 #Аудио
Вопрос:
Я пытаюсь выяснить, как изменить высоту звука в библиотеке actionscript Standing Wave 3. Я импортировал звук с частотой 440 Гц (A) и пытаюсь изменить его высоту, чтобы произнести ноту (C).
Любые советы приветствуются.
Ответ №1:
Вы ознакомились с фильтрами? Особенно ResamplingFilter
. Вы используете is, создавая новый ResamplingFilter
с 2 параметрами. Первый параметр — это источник ( IAudioSource
), а второй параметр — коэффициент, на который будет изменяться частота.
Вот как это могло бы выглядеть:
var aNote:IAudioSource = new SoundSource(new ANoteSoundAsset());
var cNote:IAudioSource = new ResamplingFilter(aNote, 1.189);
player.play(cNote);
Это повысило бы высоту тона ноты с A4 примерно до ноты C5.
Полезные ссылки:
Комментарии:
1. Извините, что так долго отвечаю. Большое спасибо.
2. Просто возвращаюсь к этому. Мне интересно, как вы пришли к числу 1.189? A4 равен 440 Гц, C5 равен 523,251. Я не вижу связи?
3. «коэффициент, на который следует умножать входную частоту». Повышая его с 440 до 523, вы умножаете 440 на 1.189, чтобы получить около 523, что является нотой C.
4. Спасибо! На самом деле не очень хорош в математике. Допустим, я хотел вычислить все ноты от A4 до A5 (все двенадцать нот), есть ли простая формула для этого. Спасибо
5. Отлично! 🙂 Чтобы найти коэффициент, на который вам нужно умножить, используйте эту простую формулу. A / B = C. В этом примере A = 523,251, B = 440 и C = 1,189. Затем просто посмотрите на справочную таблицу, чтобы узнать, каковы частоты всех различных нот. phy.mtu.edu /~suits/notefreqs.html