Для удобного монтажа аудиофрагментов было разработано приложение, в котором человек может быстро и удобно редактировать аудиофайлы формата .mp3 или .wav
Так, с помощью этого приложения человек может менять громкость и скорость треков, плавно увеличивать и уменьшать громкость, разрезать и обрезать файлы и конечно же склеивать их между сообщений
Описание функций:
- Добавить аудиофрагмент через диалоговое окно выбора файлов
- Ускорение фрагмента
- Замедления фрагмента
- Обрезка и разрез фрагмент
- эффекты Fade in / Fade out
- Разворот трека (он же reverse)
- Повторение фрагмента несколько раз
- Удаление фрагмента
- undo для нежелательных / неудачных изменений
- всех фрагментов и их экспорт через диалоговое окно экспорта
Главная особенность нашего продукта заключается в том, что работа ведется в терминах фрагментов. Что это значит?
Это значит, что можно будет управлять не всей аудиодорожкой сразу, а делать это точечно и только для тех фрагментов аудио, где это необходимо
Вы готовитесь к конерту ДММ и хотите прогнать всю свою программу без остановок.
Для того, чтобы начать работу нужно запустить приложение и добавить свой первый фрагмент, используя кнопку "Добавить трек" в правом верхнем углу экрана
После этого для более крутого звучания можно добавить фрагменту, например плавное появления (оно же fade in) Для этого нужно нажать на фрагмент, который только что появился на экране и после того, как он выделится более темным цветом станут доступны кнопки функций, заблокированные ранее. Нажмем на кнопку fade in и перед нами появится маленькое диалоговое окошко, с полем ввода и описанием формата ввода.
После добавления нескольких треков вы вдруг решили, что вам не нравится один из фрагментов песни (слишком долгий проигрыш) Тогда воспользуйтесь функцией обрезки трека и избавьтесь от этой неприятности.
И даже если вдруг вы тут же передумаете - ничего страшного, ведь можно нажать на кнопку "Назад" и эффект отменится.
После завершения работы с приложением сохранить полученный файл используя кнопку "Экспорт"
class Fragment: В экземплярах этого класса как раз таки и будут хранится наши фрагменты, значение аудио хранится как AudioSegment библиотеки pydub, в экземпляре хранится имя трека, путь до него, его уникальный id.
class TimeLine: Основной класс для работы логики приложения. Именно в нем и хранятся все фрагменты, их последовательность и история изменений, произведенных над ними. Для хранения фрагментов используется связный список. Работы команд реализованна через паттерн "Команда". В каждом классе <something>Command есть методы execute() и undo(), а также все нужные данные для этих функций. Для хранения истории команд используется стек.
Логика работы GUI описанна в классе GraphicalInterface
Для корректной работы GUI отдельно были выделены классы TimeLineGraphicalFrame и ButtonTimeLine. В первом классе описана логика отрисовки фрагментов (Так, что если их становится слишком много, появляется возможность их скролить). Во втором же классе верcтается кнопка фрагмента для таймлайна.