Pull to refresh

Comments 6

Для затравки хорошо, но сразу возникает много вопросов:
1. Хочется немного более подробно про сам механизм генерации звуков, немного бэкграунда по ChucK и OSC. (Хотя бы вводные слова)
2. На какие платформы можно применить данный подход
3. Если можно на мобилки, то как там с производительностьюю
4. Может есть какая-то реализация на C#/.NET для того чтобы исключить это взаимодействие через сокеты и прочие свистопляски?
На 2-3-4 вопросы не могу ответить, к сожалению. Просто не обладаю достаточным опытом/информацией. На сколько я понял, сама тема активного использования OSC достаточно молодая, информации о реальных проектах не много, а уж про технические подробности тем более. Изначально ставил себе задачу подключить внешнюю генерацию звуков к unity. На данном этапе получилось вот так (Unity->OSC->Chuck). Даже не представляю как это всё забилдить в один проект, что бы поиграть не в движке.
Сам Chuck — это один из языков программирования аудио (есть ещё pure data, max/msp и т.д.). Сделан на основе C++. Суть в том, что в нём уже есть минимальная библиотека инструментов работы со звуком (генераторы сигналов, эффекты, механизмы проигрывания аудио-файлов и т.п.), т.е. их не надо программить. Дальше уже из них делаются разнообразные решения. Активно используется всякими гиками типа Stanford Laptop Orchestra (для генерации звука) и Karmetik Machine Orchestra (для обработки сигналов с реальных инструментов и посыла инфы роботам что играть).
OSC изначально должен был стать заменой MIDI-протокола, но в итоге отпачковался в отдельную ветку и используется для соединения различных мультимедийных устройств (всё вместе — «internet of things», по-моему, называется). В отличие от midi способен передавать и string и int и float сообщения. Судя по вики он ещё и работает быстрее. Думаю, со временем появятся более гуманные решения (а не то что я описал) по использованию OSC в играх, но пока всё это вот в таком состоянии.
OSC — это сетевое взаимодействие через UDP сокет посредством управляющих сообщений в определенном формате. Года 3 назад требовалось сделать нечто подобное, только в обратном направлении — получать команды с midi-синтезатора по сети и реагировать на них в 3д-сцене. OSC часто применяется в разных световых шоу для синхронизации с музыкой в реалтайме.
2. OSC — на любые, где можно завести UDP сокеты.
3. Аналогично, если сможете пробивать NAT или будете крутить в локалке — проблем быть не должно.
4. Не помню, что конкретно использовал, но вроде вот это: https://github.com/ValdemarOrn/SharpOSC
Исходя из своего демосценерского прошлого, давно думал сделать подобное для Unity. Генерировать wav при первом запуске игры и в результате снизить использование процессора на постоянную генерацию звука.
Sign up to leave a comment.

Articles