Skip to content

VartoSss/AudioRedactor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

python task: Аудиоредактор

Авторы проекта:

Александров Никита @VartoSss

Ёлкин Арсений @o_0bebrik


Описание продукта:

Для удобного монтажа аудиофрагментов было разработано приложение, в котором человек может быстро и удобно редактировать аудиофайлы формата .mp3 или .wav

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

Описание функций:

  1. Добавить аудиофрагмент через диалоговое окно выбора файлов
  2. Ускорение фрагмента
  3. Замедления фрагмента
  4. Обрезка и разрез фрагмент
  5. эффекты Fade in / Fade out
  6. Разворот трека (он же reverse)
  7. Повторение фрагмента несколько раз
  8. Удаление фрагмента
  9. undo для нежелательных / неудачных изменений
  10. всех фрагментов и их экспорт через диалоговое окно экспорта

Главная особенность нашего продукта заключается в том, что работа ведется в терминах фрагментов. Что это значит?

Это значит, что можно будет управлять не всей аудиодорожкой сразу, а делать это точечно и только для тех фрагментов аудио, где это необходимо

Возможный пример использования

Вы готовитесь к конерту ДММ и хотите прогнать всю свою программу без остановок.

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

После этого для более крутого звучания можно добавить фрагменту, например плавное появления (оно же fade in) Для этого нужно нажать на фрагмент, который только что появился на экране и после того, как он выделится более темным цветом станут доступны кнопки функций, заблокированные ранее. Нажмем на кнопку fade in и перед нами появится маленькое диалоговое окошко, с полем ввода и описанием формата ввода.

После добавления нескольких треков вы вдруг решили, что вам не нравится один из фрагментов песни (слишком долгий проигрыш) Тогда воспользуйтесь функцией обрезки трека и избавьтесь от этой неприятности.

И даже если вдруг вы тут же передумаете - ничего страшного, ведь можно нажать на кнопку "Назад" и эффект отменится.

После завершения работы с приложением сохранить полученный файл используя кнопку "Экспорт"

Описание структуры программы:

class Fragment: В экземплярах этого класса как раз таки и будут хранится наши фрагменты, значение аудио хранится как AudioSegment библиотеки pydub, в экземпляре хранится имя трека, путь до него, его уникальный id.

class TimeLine: Основной класс для работы логики приложения. Именно в нем и хранятся все фрагменты, их последовательность и история изменений, произведенных над ними. Для хранения фрагментов используется связный список. Работы команд реализованна через паттерн "Команда". В каждом классе <something>Command есть методы execute() и undo(), а также все нужные данные для этих функций. Для хранения истории команд используется стек.

Логика работы GUI описанна в классе GraphicalInterface

Для корректной работы GUI отдельно были выделены классы TimeLineGraphicalFrame и ButtonTimeLine. В первом классе описана логика отрисовки фрагментов (Так, что если их становится слишком много, появляется возможность их скролить). Во втором же классе верcтается кнопка фрагмента для таймлайна.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages