JES имеет базовую поддержку редактирования звука, но вы можете использовать его для выполнения некоторых полезных задач.
JES — это программа, которая позволяет программно изменять изображения, звуки и видео. JES имеет множество встроенных функций и инструментов отладки, которые помогут вам изучить язык Jython.
При импорте файла с помощью JES вы можете визуально исследовать его звуковые волны в отдельном окне. Вы также можете управлять значениями амплитуды этих звуковых волн в определенных точках. Это может помочь вам отредактировать звуковой файл для достижения различных эффектов.
Как изменить громкость звукового клипа
Когда ты визуализировать изображение в JES, вы можете получить доступ к отдельным пикселям, которые он содержит. Вы можете добиться определенных методы обработки изображений редактируя значения красного, зеленого и синего цветов для каждого пикселя.
Точно так же звуковой файл содержит множество отдельных «сэмплов», которые представляют собой небольшие фрагменты звуковых данных. Вы можете отредактировать импортированный звук, изменив значение амплитуды в каждом сэмпле.
Код, используемый в этом проекте, доступен в этом репозиторий GitHub по лицензии MIT.
- Откройте приложение JES на своем компьютере.
- Создайте новую функцию с именем changeVolume(), которая принимает объем, который вы хотите изменить, в качестве входных данных:
дефизменитьОбъем(объем):
- Внутри функции откройте подсказку, чтобы попросить пользователя выбрать допустимый звуковой файл. Хотя JES не совместим с файлами mp3, вы все равно можете импортировать файлы WAV. Добавьте некоторую проверку, чтобы убедиться, что файл совместим:
файл = выбрать файл ()
если файл != Никтои файл.заканчивается(".wav"):
# Код для действительного файла
еще:
Распечатать("Выбран недопустимый файл. Пожалуйста, выберите действительный файл WAV.") - Если выбранный файл действителен, создайте из него звуковой объект:
звук = makeSound (файл)
- Прокрутите каждый образец звука:
для я в диапазон(0, getLength (звук)):
- Проверьте, прошел ли пользователь вверх в функцию увеличения громкости. Если это так, получите значение выборки по этому индексу, используя встроенную функцию getSampleValueAt(). Увеличьте громкость, удвоив амплитуду, и используйте setSampleValueAt() для установки нового значения:
если объем == 'вверх':
sampleVal = getSampleValueAt (звук, я)
setSampleValueAt (звук, я, sampleVal * 2) - Проверьте, прошел ли пользователь вниз в функцию, чтобы сделать громкость мягче. Если это так, получите значение выборки по этому индексу и вместо этого разделите его на 2, чтобы уменьшить амплитуду:
если объем == 'вниз':
sampleVal = getSampleValueAt (звук, я)
setSampleValueAt (звук, i, sampleVal / 2) - Используйте функцию explore(), чтобы открыть окно проводника для звука:
исследовать (звук)
- Нажать на Загрузить программу кнопка, расположенная между областью программирования и командной строкой. Сохраните файл, если будет предложено:
- Запустите функцию changeVolume() в командной строке, передав «вверх» в качестве аргумента функции:
изменитьОбъем("вверх")
- Используя окно проводника файлов, перейдите к допустимому звуковому файлу:
- Нажать на Воспроизвести весь звук кнопка в новом окне:
- В командной строке снова запустите changeVolume() со значением «вниз» в качестве аргумента и выберите файл:
изменитьОбъем("вниз")
- В окне проводника вы увидите, что звуковые волны стали меньше. Нажать на Воспроизвести весь звук кнопка в новом окне:
Как перевернуть звуковой клип
Вы можете обратить звук, создав новый пустой звук и скопировав каждый образец исходного звука в новый звук в обратном порядке.
- В новой функции предложите пользователю выбрать файл WAV и убедитесь, что файл действителен:
дефобратный звук():
файл = выбрать файл ()если файл != Никтои файл.заканчивается(".wav"):
# Код для действительного файла
еще:
Распечатать("Выбран недопустимый файл. Пожалуйста, выберите действительный файл WAV.") - Создайте новый звуковой объект из выбранного файла:
звук = makeSound (файл)
- Используйте встроенную функцию makeEmptySound() для создания нового пустого звукового объекта. Он будет состоять из того же количества сэмплов, что и исходный звук. Значение амплитуды для каждого образца будет равно 0:
newReversedSound = makeEmptySound (getLength (звук))
- Прокрутите каждый образец нового пустого звукового объекта:
для я в диапазон(0, getLength(newReversedSound)):
- Для каждого сэмпла в этой точке получите семпл на противоположном конце звука. Например, если длина выборки равна 100, а текущий индекс равен 0, будет получено значение выборки с индексом 99. Точно так же, если текущий индекс равен 3, будет получено значение выборки с индексом 96:
sampleVal = getSampleValueAt (звук, getLength (звук) - 1 - я)
- Скопируйте значение семпла с другого конца звука в текущий индекс нового звука:
setSampleValueAt (newReversedSound, i, sampleVal)
- Исследуйте новый перевернутый звук. Вы также можете изучить оригинальный звук для сравнения:
исследовать (звук)
исследовать (newReversedSound) - Нажать на Загрузить программу кнопка, расположенная между областью программирования и командной строкой. Сохраните файл, если будет предложено.
- Запустите функцию с помощью командной строки:
обратный звук()
- Просмотр исходного звука и перевернутого звука с помощью окон проводника. Нажать на Воспроизвести весь звук кнопку, чтобы услышать различия:
Как соединить два звуковых клипа вместе
Чтобы соединить два аудиоклипа вместе, вы можете попросить пользователя выбрать два отдельных файла WAV. Скопируйте каждый образец обоих звуков на новый звуковой объект.
- Создайте новую функцию с именем joinSounds():
дефприсоединитьсяЗвуки():
- Используйте функцию pickAFile(), чтобы предложить пользователю выбрать первый файл. Если он недействителен, напечатайте сообщение об ошибке:
файл1 = выбрать файл ()
если файл1 == Никтоилинет файл1.заканчивается(".wav"):
Распечатать("Выбран недопустимый файл. Пожалуйста, выберите действительный файл WAV.") - Снова используйте функцию pickAFile(), чтобы запросить у пользователя второй действительный звуковой файл:
файл2 = выбрать файл ()
если файл2 == Никтоилинет файл2.заканчивается(".wav"):
Распечатать("Выбран недопустимый файл. Пожалуйста, выберите действительный файл WAV.") - Создайте два звуковых объекта из двух выбранных звуковых файлов:
звук1 = создать звук (файл1)
звук2 = создать звук (файл2) - Сложите длины двух звуков вместе, чтобы вычислить длину нового объединенного звука. Создайте новый пустой звуковой объект, используя длину:
newSoundLength = getLength (звук1) + getLength (звук2)
joinSound = makeEmptySound (newSoundLength) - Прокрутите каждый образец первого звука. Скопируйте значение семпла в каждом индексе на новый звук:
для я в диапазон(0, getLength (звук1)):
sampleVal = getSampleValueAt (sound1, i)
setSampleValueAt (joinedSound, i, sampleVal) - Прокрутите каждый образец второго звука. Скопируйте значение семпла в каждом индексе на новый звук после первого звука:
для я в диапазон(0, getLength (звук2)):
sampleVal = getSampleValueAt (sound2, i)
endOfFirstSound = getLength (sound1) - 1
setSampleValueAt (joinedSound, endOfFirstSound + i, sampleVal) - Исследуйте звук с помощью функции explore():
исследовать (joinedSound)
- Нажать на Загрузить программу кнопка, расположенная между областью программирования и командной строкой. Сохраните файл, если будет предложено.
- Запустите функцию с помощью командной строки:
присоединиться к звукам ()
- Просмотрите объединенный звук в новом окне и нажмите кнопку Воспроизвести весь звук кнопка, чтобы услышать звук:
Импорт и редактирование звуковых файлов с помощью JES
Теперь вы понимаете, как импортировать звуковые файлы и редактировать их с помощью JES. Есть так много других встроенных функций, которые может предложить JES, которые позволят вам сделать еще более продвинутое редактирование звука.
Вы можете узнать больше о других доступных функциях, используя окно справки JES.