Клиент-серверное iOS-приложение для создания музыки
Обзор и сравнение мобильных приложений для создания музыки. Особенность воспроизведения звука с MIDI-клавиатуры. Исследование сохранения файлов midi. Формирование запросов в сеть. Обработка пользовательских мелодий алгоритмами машинного обучения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 10.12.2019 |
Размер файла | 936,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
5. Приложение получает токен пользователя, сохраняет в безопасном хранилище, возвращает пользователя на экран меню.
Альтернативный поток
1. Если пользователь ввел некорректные символы, пробелы, то выводится сообщение об ошибки правильности данных и приложение просит отредактировать их и внести снова.
2. При отсутствии интернета на момент отправки данных на веб-сервер, пользователю выводится соответствующая ошибка.
3. При несовпадении логина и пароля на сервере, приложение отобразит информацию о том, что не удается авторизоваться с введенными логином и паролем.
4.4 Экран регистрации
На экране регистрации пользователь приложения может зарегистрировать нового пользователя в системе.
Рисунок 4.4. Экран регистрации
Авторизация пользователя
Аннотация
Сценарий описывает порядок регистрации нового пользователя в системе.
Основной поток
1. Пользователь вводит в текстовые поля «Логин», «Email», «Пароль», «Повторить пароль» данные для регистрации.
2. Пользователь нажимает кнопку «Подтвердить»
3. Приложение проверяет правильность введенных данных.
4. Приложение отправляет на веб-сервер введенные данные.
5. Приложение получает токен пользователя, сохраняет в безопасном хранилище, возвращает пользователя на экран меню.
Альтернативный поток
1. Если пользователь ввел некорректные символы, пробелы, то выводится сообщение об ошибки правильности данных и приложение просит отредактировать их и внести снова.
2. Если поля «Пароль» и «Повторить пароль» не совпадают, приложение сообщит об этом пользователю и попросит отредактировать эти поля.
3. При отсутствии интернета на момент отправки данных на веб-сервер, пользователю выводится соответствующая ошибка.
4. Если в системе уже существует пользователь с именем введенным в поле «Логин», то приложение сообщит об этой ошибке сервера пользователю и попросит ввести снова.
4.5 Экран синтезатора мелодий
Основной экран приложения. На рис. 9 изображен сам экран, а на рис. 10 можно посмотреть пользовательские сценарии, которые присутствуют на этом экране.
Рисунок 4.5. Экран Синтезатора
Рисунок 4.6. Диаграмма пользовательских сценариев
В тексте ниже приводятся описания пользовательских сценариев: либо их краткое описание, либо с описанием основного и альтернативных потоков.
Воспроизведение звуков инструмента
По нажатию на клавиши клавиатуры, приложение воспроизводит соответствующие данной клавише ноту у выбранного инструмента.
Выбор инструмента
По нажатию на кнопку с названием инструмента, кнопка слева от «Настройки синтезатора», появляется список доступных инструментов. После выбора инструмента из списка, клавиатура будет воспроизводить ноты выбранного инструмента.
Настройка клавиш синтезатора
Аннотация
Сценарий описывает, как можно изменить внешний вид клавиатура синтезатора
Предварительные условия
Пользователь открыл экран с настройками синтезатора по нажатию на кнопку «Настройки синтезатора»
Основные потоки
1. Настройка цвета клавиш
a. Пользователь может выбрать цвет клавиш «Черный» или «Белый»
b. После выбора цвета, клавиатура меняет у клавиш цвет на выбранный
c. Пользователь закрывает экран
2. Настройка количества отображаемых октав
a. Пользователь выбирает сколько октав отображается на клавиатуре от 1 до 3
b. Клавиатура меняет количество отображаемых октав
c. Пользователь закрывает экран
3. Настройка подписей клавиш
a. Пользователь выбирает какие подписи будут у клавиш: «Нет» - нет подписей, «Октавы» - только у первой ноты каждой октавы, «Все» - подпись ноты у каждой клавиши
b. Клавиатура отображает подписи в соответствии с выбранным вариантом
c. Пользователь закрывает экран
Альтернативные потоки
Альтернативные потоки отсутствуют
Запись новой дорожки
Аннотация
Сценарий описывает запись пользователем новой дорожки для текущей мелодии в синтезаторе
Основной поток
1. Пользователь нажимает на иконку записи
2. Секвенсор создает новую дорожку для записи в нее нот, начинает воспроизведение
3. Пользователь нажимает клавиши на клавиатуре, время и длительность нажатых нот записывается в текущую дорожку для записи
4. Пользователь нажимает на иконку стоп
Альтернативные потоки
1. При записи мелодии пользователь может нажать на кнопку назад, тогда запись будет приостановлена на момент нажатия этой кнопки и пользователь перейдет на экран меню
Постусловия
1. Запись останавливается, таблица с дорожками обновится с отображением информации по уже новой только что записанной дорожке
Воспроизведение записанной дорожки
Аннотация
Сценарий описывает воспроизведение записанной пользователем дорожки.
Предварительные условия
Пользователь уже записал как минимум одну дорожку. Мелодия не воспроизводится и не записывается.
Основной поток
1. Пользователь нажимает на иконку воспроизведения
2. Секвенсор начинает воспроизведение всех дорожек сначала
3. По окончанию воспроизведения пользователь может воспроизвести дорожку сначала
Альтернативные потоки
1. При воспроизведении мелодии пользователь может нажать на кнопку назад, тогда воспроизведение будет остановлено
2. Во время воспроизведения мелодии пользователь может нажать иконку стоп, воспроизведение закончиться именно там, где пользователь остановился.
a. По нажатию на иконку воспроизведения, воспроизведение продолжится с того же месте
b. По нажатию на иконку возврата, воспроизведение сбросится
Выбор исполняемого инструмента у дорожки
При однократном нажатии на заголовок записанной дорожки появляется список инструментов для выбора:
Рисунок 4.7. Выбор инструмента для дорожки
После выбора инструмента из списка, при воспроизведении мелодии секвенсора, данная дорожка будет воспроизводить ноты выбранного инструмента.
Удаление дорожки
При длительном нажатии на заголовок записанной дорожки, пользователю предлагается удалить выбранную дорожку:
Рисунок 4.8. Удаление выбранной дорожки
После нажатия на кнопку «Удалить», дорожка будет удалена из сиквенсора и больше не отображаться в таблице записанных дорожек.
Удаление всех дорожек
Пользователь нажимает на кнопку «Очистить», у него уточняется, уверен ли он, что хочет удалить все дорожки в секвенсоре:
Рисунок 4.9. Удаление всех дорожек
После нажатия кнопки «Да», из секвенсора удалятся все дорожки и таблица о дорожках станет пустой.
Сохранение мелодии
При нажатии кнопки «Сохранить», пользователь переходит на экран сохранения мелодии. Если дорожки в секвенсоре отсутствуют, пользователю сообщается, что сохранять нечего и перехода на экран не произойдет.
4.6 Экран сохранения мелодии
На экране сохранения пользователь может выбрать, как ему удобно сохранить свою записанную мелодию.
Рисунок 4.10. Экран сохранения мелодии
Сохранение мелодии
Аннотация
Сценарий описывает сохранение записанной пользователем мелодии
Основной поток
1. Пользователь вводит желаемое название для мелодии в поле «Название песни»
2. Нажимает кнопку
a. «Обработать мелодию» - происходит переход на экран обработки мелодии
b. «Сохранить в iCloud» - мелодия с указанным названием сохраняется в формате MIDI в папку приложения в iCloud. Происходит возврат на предыдущий экран.
c. «Загрузить на сервер» - мелодия с указанным названием отправляется на сервер. При успешной отправке, показывается сообщение о добавлении мелодии в личную библиотеку этого пользователя. Происходит возврат на предыдущий экран.
Альтернативные потоки
1. Если пользователь на устройстве не авторизирован в iCloud, то вместо кнопки «Сохранить в iCloud» будет кнопка «Сохранить на устройстве» и сохранение мелодии будет происходить в локальную папку приложения на самом устройстве.
2. Если при отправке или во время загрузки мелодии на сервер не будет интернета, выведется соответствующее сообщение и пользователю будет предложено повторить попытку.
3. Если пользователь не будет авторизован в системе, то при нажатии на кнопки «Обработать мелодию» или «Загрузить на сервер» будет выведено сообщение о том, что необходимо авторизоваться.
4.7 Экран обработки мелодии
На экране обработке мелодии, пользователь может отправить свою мелодию на обработку алгоритмами машинного обучения на сервер.
Рисунок 4.11. Экран обработки мелодии
Обработка мелодии
Аннотация
Сценарий описывает отправку мелодии пользователя на обработку
Основной поток
1. Пользователь вводит название для обработанной мелодии в поле «Название обработанной мелодии»
2. Пользователь нажимает на кнопку «?»
3. Приложение загружает с сервера список доступных музыкальных жанров для обработки
Рисунок 4.12. Список доступных жанров для обработки
4. Пользователь выбирает понравившийся ему жанр
5. Пользователь нажимает кнопку «Отправить на обработку»
Альтернативные потоки
1. При неверном вводе названия мелодии, приложение показывает пользователю ошибку и предлагает ввести название снова.
2. При отсутствии интернета при загрузке списка жанров или отправки на обработку, пользователю показывается ошибка об отсутствии соединения с интернетом.
3. При ошибки во время отправки мелодии на веб-сервер, пользователю показывается соответствующая ошибка.
Постусловие
При успешном выполнении сценария, пользователю показывается информация о том, что мелодия отправлена на обработку и что после окончания обработки ее можно будет воспроизвести. Происходит возврат на предыдущий экран.
4.8 Экран библиотеки
Экран библиотеки предназначен для выбора раздела мелодии, которые хочет просмотреть пользователь.
Рисунок 4.13. Экран библиотеки
4.9 Экран списка мелодий
На этом экране можно просмотреть список мелодий, которые были загружены в iCloud, либо, если пользователь не авторизован в iCloud, то будет отображаться список локальной папки приложения.
Рисунок 4.14. Экран списка мелодий
Список мелодий
Аннотация
Сценарий описывает процесс получения и отображения списка мелодий.
Основной поток
1. Пользователь переходит на экран списка мелодий
2. Приложение запрашивает список файлов нужной директории
a. Если пользователь авторизован в iCloud, то запрашивается список файлов из директории приложения в iCloud
b. Если пользователь не авторизован в iCloud, то запрашивается список файлов в локальной папке приложения
3. Приложение отображает список мелодий со следующей информацией
a. Название мелодии с расширением
b. Время создания файла
c. (Опционально) Длительность мелодии, если мелодия была создана в приложении
d. Кнопка «Обработать алгоритмами» для перехода на экран обработки выбранной мелодии
4. По клику на одну из строк, открывается экран воспроизведения выбранной мелодии
5. Пользователь может потянуть экран вниз для обновления списка мелодий
Альтернативные потоки
1. При отсутствии MIDI файлов, приложение отображает пустой список и информацию об их отсутствии пользователю.
4.10 Экран «Моя библиотека»
Экран со списком мелодии, которые хранятся на сервере. Отображает список мелодий как пользовательских, так и обработанных алгоритмами машинного обучения.
Список мелодий из моей библиотеки
Аннотация
Сценарий описывает процесс получения и отображения списка мелодий.
Предусловие
Пользователь авторизован
Основной поток
1. Пользователь переходит на экран «Моя библиотека»
2. Приложение запрашивает с сервера список мелодий пользователя
3. Приложение отображает список мелодий со следующей информацией
Рисунок 4.15. Экран «Моя библиотека»
a. Название мелодии с расширением
b. Время создания файла
c. Автор мелодии
d. Кнопка «Опубликовать», чтобы сделать мелодию доступной всем пользователям
i. По нажатии на кнопку у пользователя запрашивается подтверждение на публикацию мелодии
e. (Опционально) Стиль, в котором обрабатывается/обработана синтезированная мелодия
f. (Опционально) Надпись «В обработке», если мелодия все еще находится у сервера в обработке
4. По клику на одну из строк, открывается экран воспроизведения выбранной мелодии
5. Пользователь может потянуть экран вниз для обновления списка мелодий
Альтернативные потоки
1. При отсутствии у пользователя мелодий на сервере, приложение отображает пустой список и информацию об их отсутствии пользователю.
2. При отсутствии интернета, пользователю показывается ошибка об отсутствии соединения с интернетом.
4.11 Экран публичного списка мелодий
Экран отображает список мелодий, которые пользователи пожелали опубликовать для общего доступа всем пользователям системы.
Рисунок 4.16. Экран публичных мелодий
Список публичных мелодий
Аннотация
Сценарий описывает процесс получения и отображения списка публичных мелодий.
Предусловие
Пользователь авторизован
Основной поток
1. Пользователь переходит на экран «Публичные мелодии»
2. Приложение запрашивает с сервера список публичных мелодий
3. Приложение отображает список мелодий со следующей информацией
a. Название мелодии с расширением
b. Время создания файла
c. Автор мелодии
d. Средний рейтинг мелодии
e. (Опционально) Стиль, в котором обрабатывается/обработана синтезированная мелодия
f. (Опционально) Надпись «В обработке», если мелодия все еще находится у сервера в обработке
4. По клику на одну из строк, открывается экран воспроизведения выбранной мелодии
5. Пользователь может потянуть экран вниз для обновления списка мелодий
Альтернативные потоки
1. При отсутствии публичных мелодий на сервере, приложение отображает пустой список и информацию об их отсутствии пользователю.
2. При отсутствии интернета, пользователю показывается ошибка об отсутствии соединения с интернетом.
4.12 Экран воспроизведения мелодии
При выборе мелодии из любого списка мелодий (iCloud, библиотеки или публичного), открывается экран воспроизведения мелодии. В заголовке экрана отображается название файла мелодии. Если мелодия загружена на сервер, то доступна функция оценить мелодию.
Рисунок 4.17. Экран воспроизведения мелодии
Оценка мелодии
Аннотация
Сценарий описывает процесс оценки мелодии пользователем.
Предусловие
Пользователь авторизован и открыл экран воспроизведения на мелодии, которая загружена на сервер. Пользователь еще не голосовал за выбранную мелодию
Основной поток
1. Пользователь выбирает оценку на звёздах: от 1 до 5 звёзд.
Рисунок 4.18. Оценка мелодии пользователем
2. Пользователь нажимает кнопку «Отправить»
3. Приложение отсылает пользовательскую оценку
4. При успешной отправке оценки, отображается средний рейтинг от всех пользователей
Рисунок 4.19. Средний рейтинг мелодии
Альтернативные потоки
1. При отсутствии или проблем с интернетом, пользователю отображается соответствующая ошибка, рейтинг сбрасывается и необходимо оценить мелодию заново
В данной главе были рассмотрены экраны приложения, их основная функциональность, основные пользовательские сценарии.
Заключение
Результатом данной выпускной квалификационной работы является разработанное клиент-серверное приложение для создания музыки. При работе над приложениями использовались современные и проверенные технологии и подходы в разработке программного обеспечения.
В первой главе проведен анализ существующих на рынке похожих приложений. Выявлены основные пользовательские потребности, какой функционал будет отличать разработанное приложение на рынке среди других.
Во второй главе приведены аргументы в пользу выбора Swift как языка разработки мобильного приложения, архитектуры MVP и других подходов и технологий.
В третьей главе было рассмотрено почему именно Python в связке с микро-фреймворком Flask были выбраны в качестве основы для разработки серверного приложения, какие инструменты и технологии были выбраны для реализации функционала базы данных, распараллеливания задач, взаимодействия с клиентским приложением.
В четвертой главе детально описаны основные экраны и кейсы, которые реализует приложение и которые точно могут возникнуть у пользователя при пользовании приложением.
В ходе работы были достигнуты следующие промежуточные результаты:
1. Разработано техническое задание с описанием функциональных требований к мобильному и серверному приложению;
2. Разработан дизайн мобильного приложения;
3. Реализован функционал для мобильного приложения в соответствии с функциональными требованиями;
4. Разработан набор методов API для взаимодействия мобильного приложения с веб-сервером;
5. Реализован функционал серверного приложения в соответствии с функциональными требованиями;
6. Разработана техническая документация для программного продукта.
Приложение реализовано с архитектурным подходом, с разделенными несвязанными модулями, что позволяет постепенно наращивать существующий функционал, не уменьшая отказоустойчивость и стабильность системы.
Дальнейшее развитие может развиваться в сторону реализации новых пользовательских сценариев, которые могут возникать в ходе работы приложения, публикация приложения в App Store, расширение функционала секвенсора, подключение внешних MIDI-контроллеров для записи и воспроизведения мелодий.
Размещено на Allbest.ru
Подобные документы
Исследование проблемы сравнения звуковых файлов и определение степени их схожести. Сравнение файлов с использованием метода нечеткого поиска, основанного на метрике (расстоянии) Левенштейна. Сравнение MIDI-файлов и реализация алгоритмов считывания.
курсовая работа [2,0 M], добавлен 14.07.2012Создание клиент-серверного приложения "Чат" с помощью среды визуальной разработки приложений Borland C++ Builder версии 6. Описание функциональности приложения: наличие клиент-серверной архитектуры, обмен короткими сообщениями, а также передача файлов.
курсовая работа [302,0 K], добавлен 30.01.2012Суть MIDI-технологии и типы музыкальных программ. Основные возможности программ: редакторов цифрового аудио, секвенсоров (программ для написания музыки), анализаторов и реставраторов аудио, трекеров. Копирование и сжатие цифрового звука с компакт-дисков.
реферат [21,1 K], добавлен 27.02.2009Устройство веб-приложений, преимущества их построения. Характеристика технологий веб-программирования, используемых на стороне сервера и на стороне клиента. Формирование и обработка запросов, создание интерактивного и независимого от браузера интерфейса.
контрольная работа [76,4 K], добавлен 08.07.2014Архитектура Windows NT 5. Приоритеты выполнения программного кода. Описание формата MIDI-данных. Установка драйвера в системе. Выбор средств разработки программного обеспечения. Обработка запросов драйверной модели WDM. Использование библиотеки DirectKS.
курсовая работа [498,8 K], добавлен 24.06.2009Исследование особенностей систем управления сайтами. Обоснование выбора Joomla, функционала для создания многофункциональных сайтов. Цифровая обработка музыки на компьютере. Использование программного секвенсора. Создание и заполнение сайта информацией.
курсовая работа [2,9 M], добавлен 15.01.2015Обзор стандарта IEEE 802.15.4. Упрощенная модель OSI. Беспроводные сенсорные сети. Взаимодействие сетевых протоколов. Серверное приложение, отправка теста, получение результатов, клиентское приложение. MAC слой, механизм адресации, точки доступа.
курсовая работа [334,6 K], добавлен 31.05.2016Технические характеристики микропроцессора Aduc 812. Основные блоки электрической структурной схемы: микроконтроллер, клавиатура, индикатор, интерфейс последовательного midi-порта. Выбор элементной базы, описание алгоритма работы устройства и программы.
курсовая работа [68,0 K], добавлен 23.12.2012Анализ архитектуры информационной системы, в структуру которой входят системы файл-сервер и клиент-сервер. Сравнение языков запросов SQL и QBE. Принципы разработки приложений архитектуры клиент-сервер при помощи структурированного языка запросов SQL.
курсовая работа [88,9 K], добавлен 11.04.2010История компьютеризации музыкального обучения. Функциональные возможности компьютера по организации обмена музыкальной информацией. Рассмотрение технологий и средств обработки звуковой информации. Применение технологии создания позиционируемого 3D звука.
реферат [44,2 K], добавлен 18.12.2017