Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Abu Idris ([info]zhd)
@ 2017-01-09 13:43:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Настроение: calm
Музыка:Black Marble -- Pretender

Против аналогового секвенсора не попрешь, part 0
Ах да, синтостроительный блог. Все в курсе, что пресеты убивают музыку, да? Вместо того, чтобы искать интересные новые звуки, люди просто строят композиции из уже готовых. Иногда это уместно, но когда я снова и снова слышу драм-машину TB-808, хочется ``блевануть, прыгнуть с обрыва, броситься по автобус''. Симфонический оркестр, панк-тройка это все виды пресетов. Кроме того, думаю ясно, что инструмент (в широком смысле) накладывает определенные ограничения на конечный результат. Здесь должна быть релевантная цитата из Миши про кубейс, но я ее почему-то не нашел.

На самом деле, как правильно заметил анон, музыка здесь играет второстепенную роль. Я просто хочу сделать для себя playground для экспериментов в мета-программировании, предметно-ориентированных языках и высокопроизводительных вычислениях.</p>

Значит нашей предметной областью будет построение (виртуальных) модульных синтезаторов. Как известно, в этой области популярны так называемые ``визуальные языки программирования'' типа Pure Data, Max и Reactor. Мне они не нравятся своей вопиющей двухмерностью. Мне кажется (входим в область спекуляций), что гораздо удобнее будет иметь язык для описания модулей и язык для описания их комбинаций, имеющие некоторые формы полиморфизма, возможности задания параметрических семейств и т.п. Типа если мне нужен fm-синтезатор с n осцилляторами, то мне проще описать семейство, параметризованное натуральными числами, чем рисовать гребанные диаграммы для каждого конкретного n.

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

Реализуется все в Hasckell, по описанию моделей генерируется С код, который затем компилируется и динамически подгружается обратно в Hasckell. Промежуточные типы для взаимодействия между С и Hasckell генерируются автоматически (Look Mum No Hands!).

Такие дела, на фото я.



(Читать комментарии)

Добавить комментарий:

Как:
(комментарий будет скрыт)
Identity URL: 
имя пользователя:    
Вы должны предварительно войти в LiveJournal.com
 
E-mail для ответов: 
Вы сможете оставлять комментарии, даже если не введете e-mail.
Но вы не сможете получать уведомления об ответах на ваши комментарии!
Внимание: на указанный адрес будет выслано подтверждение.
Имя пользователя:
Пароль:
Тема:
HTML нельзя использовать в теме сообщения
Сообщение:



Обратите внимание! Этот пользователь включил опцию сохранения IP-адресов тех, кто пишет анонимно.