Введение 3
1 Анализ задания на выпускную квалификационную работу 5
1.1 Обзор существующих решений 5
1.1.1 Serum 6
1.1.2 Nexus 3 8
1.1.3 F abFilter Pro-Q3 9
1.1.4 Lokomotiv 10
1.1.5 Итоги обзора 10
1.2 Интерфейс приложения 11
1.3 Диаграмма вариантов использования 12
1.4 Выбор инструментов 14
1.4.1 Выбор библиотеки для разработки 14
1.4.2 Выбор DAW 15
1.4.3 Выбор языка программирования 15
1.5 Итог анализа задания 16
2 Проектирование и реализация приложения 17
2.1 Структура приложения 17
2.2 Алгоритм работы 20
3 Инструкции 25
3.1 Инструкция пользователя 25
3.2 Инструкция разработчика 27
Заключение 29
Список сокращений 30
Список использованных источников 31
Музыка всегда была неотъемлемой частью нашей культуры. Конечно же, Прогресс не обошел стороной эту сферу деятельность человека. По мере развития цифровых технологий, музыкантам и композиторам становился доступен все более широкий и удобный набор инструментов для создания музыки.
Термин VST расшифровывается как Virtual Studio Technology. Это технология, позволяющая писать плагины для программ обработки звука. Плагин — это программный модуль, подключаемый к основной программе, который предназначен для расширения ее возможностей. Сейчас существует большое множество плагинов, решающих различные задачи: синтезаторы, эффекты, анализаторы звука, виртуальные инструменты и так далее [1].
VST-плагины работают в DAW - Digital Audio Workstation, это электронное устройство или программа, которая используется для записи и редактирования звуковых файлов. В качестве такой программы в данной работе использована Ableton Live.
VST-плагины сделали процесс создания музыки намного проще и доступнее. В прошлом требовалось оборудование, которое было практически недоступно для большинства начинающих музыкантов из-за стоимости.
Целью выпускной квалификационной работы является разработка VST- синтезатора для Ableton Live [2] под управлением операционной системы Windows. Плагин должен позволить синтезировать собственные звуки и управлять ими.
Программа должна обладать следующими особенностями:
- поддержка MIDI-клавиатуры;
- генерация сигналов различной частоты и формы;
- фильтрация частот;
- визуализация звуковых волн;
- сохранение и загрузка пользовательских настроек, а также загрузка предустановленных настроек (пресетов).
Для достижения цели в работе решаются следующие задачи:
- анализ задания на выпускную квалификационную работу;
- проектирование VST-синтезатора;
- реализация VST-синтезатора.
Далее перечислены основные термины, использованные в выпускной квалификационной работе.
Сэмпл - относительно небольшой оцифрованный звуковой фрагмент.
Волновая таблица - это таблица сэмплов, используемая для синтеза звука путём их комбинирования во времени [3].
Пресет - файл с набором настроек.
Эквализация - управление частотами в аудиосигнале путем их усиления или ослабления.
Варпинг — это синхронизация по темпу различных аудиоматериалов: лупов, сэмплов, треков, мелодических партий и других элементов в аранжировке.
Луп — это фрагмент звуковой записи для циклического воспроизведения.
MIDI-клавиатура — устройство, которое преобразует нажатие клавиш в поток MIDI команд.
MIDI — это стандарт формата обмена данными между электронными музыкальными инструментами [4].
ADSR-огибающая — функция, которая изменяет параметры звука во времени, используется в синтезаторах [5].
Gate — это сигнал, который пропускает или глушит другие сигналы в зависимости от установленного порогового значения. Gate пропускает сигнал только тогда, когда его уровень выше установленного порога. Используется для контроля уровня звукового сигнала, при редактировании значений ADSR- огибающей.
В результате работы был спроектирован и реализован VST-синтезатор.
Был разработан графический интерфейс программы, структура приложения. В плагине реализована возможность генерировать звуковые волны разной частоты и формы и обрабатывать их с помощью фильтра частот. Предусмотрена визуализация звуковой волны. Пользователь может сохранять и загружать сделанные им настройки программы, а также загружать предустановленные настройки (пресеты).
Возможные направления для дальнейшей доработки:
- добавление реверберации звука;
- добавление низкочастотной огибающей LFO (Low Frequency Oscillator).
Последняя версия приложения размещена в git-репозитории [21].