JES имеет базовую поддержку редактирования звука, но вы можете использовать его для выполнения некоторых полезных задач.

JES — это программа, которая позволяет программно изменять изображения, звуки и видео. JES имеет множество встроенных функций и инструментов отладки, которые помогут вам изучить язык Jython.

При импорте файла с помощью JES вы можете визуально исследовать его звуковые волны в отдельном окне. Вы также можете управлять значениями амплитуды этих звуковых волн в определенных точках. Это может помочь вам отредактировать звуковой файл для достижения различных эффектов.

Как изменить громкость звукового клипа

Когда ты визуализировать изображение в JES, вы можете получить доступ к отдельным пикселям, которые он содержит. Вы можете добиться определенных методы обработки изображений редактируя значения красного, зеленого и синего цветов для каждого пикселя.

Точно так же звуковой файл содержит множество отдельных «сэмплов», которые представляют собой небольшие фрагменты звуковых данных. Вы можете отредактировать импортированный звук, изменив значение амплитуды в каждом сэмпле.

instagram viewer

Код, используемый в этом проекте, доступен в этом репозиторий GitHub по лицензии MIT.

  1. Откройте приложение JES на своем компьютере.
  2. Создайте новую функцию с именем changeVolume(), которая принимает объем, который вы хотите изменить, в качестве входных данных:
    дефизменитьОбъем(объем):
  3. Внутри функции откройте подсказку, чтобы попросить пользователя выбрать допустимый звуковой файл. Хотя JES не совместим с файлами mp3, вы все равно можете импортировать файлы WAV. Добавьте некоторую проверку, чтобы убедиться, что файл совместим:
    файл = выбрать файл () 

    если файл != Никтои файл.заканчивается(".wav"):
    # Код для действительного файла
    еще:
    Распечатать("Выбран недопустимый файл. Пожалуйста, выберите действительный файл WAV.")

  4. Если выбранный файл действителен, создайте из него звуковой объект:
    звук = makeSound (файл)
  5. Прокрутите каждый образец звука:
    для я в диапазон(0, getLength (звук)):
  6. Проверьте, прошел ли пользователь вверх в функцию увеличения громкости. Если это так, получите значение выборки по этому индексу, используя встроенную функцию getSampleValueAt(). Увеличьте громкость, удвоив амплитуду, и используйте setSampleValueAt() для установки нового значения:
    если объем == 'вверх':
    sampleVal = getSampleValueAt (звук, я)
    setSampleValueAt (звук, я, sampleVal * 2)
  7. Проверьте, прошел ли пользователь вниз в функцию, чтобы сделать громкость мягче. Если это так, получите значение выборки по этому индексу и вместо этого разделите его на 2, чтобы уменьшить амплитуду:
    если объем == 'вниз':
    sampleVal = getSampleValueAt (звук, я)
    setSampleValueAt (звук, i, sampleVal / 2)
  8. Используйте функцию explore(), чтобы открыть окно проводника для звука:
    исследовать (звук)
  9. Нажать на Загрузить программу кнопка, расположенная между областью программирования и командной строкой. Сохраните файл, если будет предложено:
  10. Запустите функцию changeVolume() в командной строке, передав «вверх» в качестве аргумента функции:
    изменитьОбъем("вверх")
  11. Используя окно проводника файлов, перейдите к допустимому звуковому файлу:
  12. Нажать на Воспроизвести весь звук кнопка в новом окне:
  13. В командной строке снова запустите changeVolume() со значением «вниз» в качестве аргумента и выберите файл:
    изменитьОбъем("вниз")
  14. В окне проводника вы увидите, что звуковые волны стали меньше. Нажать на Воспроизвести весь звук кнопка в новом окне:

Как перевернуть звуковой клип

Вы можете обратить звук, создав новый пустой звук и скопировав каждый образец исходного звука в новый звук в обратном порядке.

  1. В новой функции предложите пользователю выбрать файл WAV и убедитесь, что файл действителен:
    дефобратный звук():
    файл = выбрать файл ()

    если файл != Никтои файл.заканчивается(".wav"):
    # Код для действительного файла
    еще:
    Распечатать("Выбран недопустимый файл. Пожалуйста, выберите действительный файл WAV.")

  2. Создайте новый звуковой объект из выбранного файла:
    звук = makeSound (файл) 
  3. Используйте встроенную функцию makeEmptySound() для создания нового пустого звукового объекта. Он будет состоять из того же количества сэмплов, что и исходный звук. Значение амплитуды для каждого образца будет равно 0:
    newReversedSound = makeEmptySound (getLength (звук))
  4. Прокрутите каждый образец нового пустого звукового объекта:
    для я в диапазон(0, getLength(newReversedSound)):
  5. Для каждого сэмпла в этой точке получите семпл на противоположном конце звука. Например, если длина выборки равна 100, а текущий индекс равен 0, будет получено значение выборки с индексом 99. Точно так же, если текущий индекс равен 3, будет получено значение выборки с индексом 96:
    sampleVal = getSampleValueAt (звук, getLength (звук) - 1 - я)
  6. Скопируйте значение семпла с другого конца звука в текущий индекс нового звука:
    setSampleValueAt (newReversedSound, i, sampleVal)
  7. Исследуйте новый перевернутый звук. Вы также можете изучить оригинальный звук для сравнения:
    исследовать (звук)
    исследовать (newReversedSound)
  8. Нажать на Загрузить программу кнопка, расположенная между областью программирования и командной строкой. Сохраните файл, если будет предложено.
  9. Запустите функцию с помощью командной строки:
    обратный звук()
  10. Просмотр исходного звука и перевернутого звука с помощью окон проводника. Нажать на Воспроизвести весь звук кнопку, чтобы услышать различия:

Как соединить два звуковых клипа вместе

Чтобы соединить два аудиоклипа вместе, вы можете попросить пользователя выбрать два отдельных файла WAV. Скопируйте каждый образец обоих звуков на новый звуковой объект.

  1. Создайте новую функцию с именем joinSounds():
    дефприсоединитьсяЗвуки():
  2. Используйте функцию pickAFile(), чтобы предложить пользователю выбрать первый файл. Если он недействителен, напечатайте сообщение об ошибке:
    файл1 = выбрать файл ()

    если файл1 == Никтоилинет файл1.заканчивается(".wav"):
    Распечатать("Выбран недопустимый файл. Пожалуйста, выберите действительный файл WAV.")

  3. Снова используйте функцию pickAFile(), чтобы запросить у пользователя второй действительный звуковой файл:
    файл2 = выбрать файл () 

    если файл2 == Никтоилинет файл2.заканчивается(".wav"):
    Распечатать("Выбран недопустимый файл. Пожалуйста, выберите действительный файл WAV.")

  4. Создайте два звуковых объекта из двух выбранных звуковых файлов:
    звук1 = создать звук (файл1) 
    звук2 = создать звук (файл2)
  5. Сложите длины двух звуков вместе, чтобы вычислить длину нового объединенного звука. Создайте новый пустой звуковой объект, используя длину:
    newSoundLength = getLength (звук1) + getLength (звук2)
    joinSound = makeEmptySound (newSoundLength)
  6. Прокрутите каждый образец первого звука. Скопируйте значение семпла в каждом индексе на новый звук:
    для я в диапазон(0, getLength (звук1)):
    sampleVal = getSampleValueAt (sound1, i)
    setSampleValueAt (joinedSound, i, sampleVal)
  7. Прокрутите каждый образец второго звука. Скопируйте значение семпла в каждом индексе на новый звук после первого звука:
    для я в диапазон(0, getLength (звук2)):
    sampleVal = getSampleValueAt (sound2, i)
    endOfFirstSound = getLength (sound1) - 1
    setSampleValueAt (joinedSound, endOfFirstSound + i, sampleVal)
  8. Исследуйте звук с помощью функции explore():
    исследовать (joinedSound)
  9. Нажать на Загрузить программу кнопка, расположенная между областью программирования и командной строкой. Сохраните файл, если будет предложено.
  10. Запустите функцию с помощью командной строки:
    присоединиться к звукам ()
  11. Просмотрите объединенный звук в новом окне и нажмите кнопку Воспроизвести весь звук кнопка, чтобы услышать звук:

Импорт и редактирование звуковых файлов с помощью JES

Теперь вы понимаете, как импортировать звуковые файлы и редактировать их с помощью JES. Есть так много других встроенных функций, которые может предложить JES, которые позволят вам сделать еще более продвинутое редактирование звука.

Вы можете узнать больше о других доступных функциях, используя окно справки JES.