Приложение для iOS

Demo

Demo — приложение для тех, кто любит музыку и хочет превращать в нее свои фантазии. Неважно занимаетесь вы сольфеджио 2 раза в неделю или не разу не видели аккорды — с Demo каждый может записать собственную песню без съема студии звукозаписи. Требуется всего лишь щепотка воображения и айфон под рукой.
Услуги
Дизайн Документация • iOS • Контроль качества • Поддержка
Золото
Золотое приложение 2021
«Образ жизни»
Аккорды
На экране Chords вы можете собрать свой аудиотрек из представленных приложением аккордов. Сделать это можно двумя способами: выбрать готовые из библиотеки стилей или создать собственные.
Для каждого стиля задан свой ритм и возможность добавить звучание клавиш, барабанов и баса. Возможна также настройка этих инструментов, например, для клавиш можно выбрать пианино или синтезатор.
Технологии
Firebase
AVAudioEngine
Под капотом у аккордов
За техническую часть отвечает движок AVAudioEngine. На его основе удалось выстроить гибкую работу с аудио данными. На основе выбранных пользователем стиля и ритма генерируются MIDI данные, для работы с которыми используется AVAudioSequencer. Он отсылает данные о проигрываемых нотах объекту AVAudioUnitSampler, который в свою очередь определяет какой сэмпл из заданного sf2-инструмента должен быть проигран для соответствующей ноты (а также обрабатывает все его параметры: громкость, настройки фильтра, данные adsr-огибающих и т.д.).

На аудио сигнал от сэмплера накладывается реверб при помощи AVAudioUnitReverb, а итоговый микс аккордов с записанными аудио-файлами происходит в mainMixerNode AVAudioEngine.
Для проигрывания записанного аудио используется AVAudioPlayerNode, он позволяет достаточно гибко управлять воспроизведением и позволяет точно синхронизировать записанное аудио с синтезированным (от AVAudioUnitSampler).

Для обеспечения компрессии динамического диапазона аудио используется обертка AVAudioUnitEffect, которая позволяет использовать в графе AVAudioEngine любой эффект в формате AudioUnit (в данном случае — встроенный в систему kAudioUnitSubType _ DynamicsProcessor).
Лирика
На этом этапе вы можете написать собственный текст для песни. Если возникнут проблемы с вдохновением, приложение поможет подобрать рифму для выбранной строчки при помощи технологии райминга. Мы использовали стороннюю API Datamuse, но при этом кэшируем запросы на бэкенде, чтобы пользователи быстрее получали результат.
Запись вокала
В Demo есть возможность записать сразу несколько звуковых дорожек, для сопровождения написанного ранее текста. При воспроизведении каждая из них накладывается друг на друга, воспроизводя общую картину, не теряя возможности редактировать отдельные дорожки при необходимости.
Микшер
В микшере собраны все стандартные музыкальные настройки для управления дорожками (громкость, mute, solo) и добавление аудио-эффектов, таких как реверб и компрессор для сжатия динамического диапазона аудио.
Экспорт
Demo предлагает три варианта экспорта:
— микшированная песня, т.е. mp3 с аккордами и записанными дорожками, сведенными вместе;
— аккорды и лирика, т.е. текстовый файл со словами песни и использованными аккордами;
— отдельные дорожки с возможностью экспорта каждой аудио дорожки в виде отдельного wav-файла, а также каждого инструментального трека (бас, клавиши и барабаны) в виде отдельного MIDI-файла.
Панель администратора
Для реализации управления стилями и ритмами без необходимости постоянного обновления приложения используется Firebase, который позволил сократить затраты на разработку и обслуживание приложения. Приложение напрямую обращается к базе Firestore и хранилищу Storage для получения всех необходимых данных. Панель администратора реализована с помощью Firebase Functions.
Trey George
There aren't enough good things I can say about Rosberry. Simply some of the best developers I've ever worked with. They're my first choice if I'm ever in need of contract app work. I will be working with them again.
Скачать Demo
в App Store
Скачать Demo
Template
Следующий кейс