Изготовление синтезаторов

Начал вникать, как делать крутилки - либо аналоговые потенциометры, либо цифровые переключатели.
Немного застрял с громкостью и балансом левой и правой.

Миди шлет громкость от 0 до 127. Теоретически, я хочу, чтобы воздушный сенсор выдавал от 0 до 127, а ручка громкости в таком случае должна быть уже на процессоре. Иначе получается, что как бы я громкость на контроллере ни занижал, это негативно скажется на чувствительности сенсора...
Вариант раз: крутилка выставляет %, на который умножается громкость с сенсора. Если 100, то громкость 0-127. Если 98, то 0 - 124 и тп. В таком случае страдает чувствительность фортиссимо.
Вариант два: значение крутилки вычитается из громкости с сенсора. Если сенсор выдает 65, а на крутилке -2, то отсылается громкость 63. В таком случае, мне кажется, страдает чувствительность пианиссимо.
Но без регулировки громкости на инструменте жить как-то странно.

Баланс левой и правой делается изменением громкости одной из половинок. Так как логические клавиатуры уже разделены, то проблем с реализацией отдельной громкости нет, но все упирается в тот же вопрос, что и общая громкость - как ее реализовывать.

kep а по какому принципу у роланда работает воздушный клапан? Чем больше кнопок нажато, тем больше воздуха он проспускает? Вы не знаете, там один клапан с регулируемым зазором, или несколько клапанов? Изменение утечки воздуха плавное, или скачками?
Попробовал поискать информацию о том, какой клапан там стоит, но ничего не нашел.
 
Последнее редактирование:
С громкостью все оказалось намного сложнее (или проще? :unsure: )
Официальное описалово МИДИ можно почитать тут:

В миди контроллере аж 4 "громкости". Если кто знаком с миди протоколом, Данила, Ай нид хэлп. Без пол-литра тут не разберешься, а я уже лет 10, как трезвенник.

После первой попытки разобраться, мое понимание такое:

Volume (cс7) - громкость отдельного канала. В нашем случае - можно использовать для регулировки баланса левой и правой, т.к. они будут на разных каналах.
Expression (сс11) - экспрессия - для нас это будет мех.
Velocity - громкость каждой отдельно взятой ноты, которую необходимо указать каждый раз, когда мы отправляем команду вкл-выкл ноты. У меня, без возможности считывать силу удара по клавише, это будет константой.
Master Volume - регулировка громкости всех каналов. В нашем случае - ручка-крутилка.

Ко всему этому можно добавить CC1, CC2 - модуляция чего-угодно, втч и громкости o_O. И ручку гейна на процессоре, которая работает уже после того, как миди команды покинули контроллер.

Осталось понять, как эти переменные взаимодействуют между собой. Например, вот проблема: формула для общей громкости такая:
Gain in dB = (40 * log10(cc7/127)) + (40 * log10(cc11/127))"

Получается, что даже при сс11 = 0, без ведения меха, инструмент будет тихо играть за счет cc7 > 0?

"3.3.6 Expression (cc#11) Default Value: 127 (7FH) [...] Modifies the volume set by Channel Volume (cc#7) on the specified Channel.

Note: Expression (cc#11) and Channel Volume (cc#7) are used for different purposes. Channel Volume (cc#7) should be used to set the overall volume of the Channel prior to music data playback as well as for mixdown fader-style movements, while Expression (cc#11) should be used during music data playback to attenuate the programmed MIDI volume (cc#7) data, thus creating diminuendos and crescendos. This enables a listener, after the fact, to adjust the relative mix of instruments without destroying the dynamic expression of that instrument.

The formula used is:

Gain in dB = (40 * log10(cc7/127)) + (40 * log10(cc11/127))"
 
Официальное описалово МИДИ можно почитать тут:
Так это Вы сразу на Вильяма нашего Шекспира версию 2.0 замахнулись! Она еще только начала вдерняться, считанные инструменты ее поддерживают.
Может, посмотреть на версию 1?
 
И фундаментальный вопрос: что Вы хотите делать: MIDI контроллер или все на борту?
 
И фундаментальный вопрос: что Вы хотите делать: MIDI контроллер или все на борту?
Для начала, однозначно, только контроллер. Не раз писал, что хочу результат как можно быстрее, а все на борту - это отдельная тема и лишнее время на разработку. Контроллер можно воткнуть в комп по усб и, как инструмент для практики, он уже работает.

Как вариант - у Майкла есть готовое решение для Raspberry pi в режиме миди-сервера (думаю, аналоги тоже будут ок, если на них ставится дистрибутив линукса, поддерживающий FluidSynth прогу - миди процессор.) Пайку можно запустить с батареек, так что даже портативность появляется. С батарейками размер коробочки будет как очень толстый бумажник, набитый янки-долларами.
Наверное, можно в аккордеон воткнуть какой-нибудь крошечный Pi Zero в таком же режиме, но, опять, надо читать, вникать, пробовать, править баги, смотреть, какие самплы танец проц, и тп.
 
Версия 1 вот здесь:
Моя ссылка на GM2 - расширение было добавлено к МИДИ 1.0 аж в 99 году. Мне кажется, большинство современного софта и харда должно его поддерживать.

"Note: The GM 1 specification was superceded in 1999 by General MIDI 2 which added support for additional features and capabilities which had become commonly available since GM 1 devices first appeared. However, GM 1 remains a popular format and is still commonly used for music distributed in Standard MIDI File (*.mid) format."
 
Моя ссылка на GM2 - расширение было добавлено к МИДИ 1.0 аж в 99 году. Мне кажется, большинство современного софта и харда должно его поддерживать.
Ну да, долгострой еще тот - только в 20м году начали выходить какие-то продукты. Вот обзор 2020-го:
Introducing MIDI 2.0
 
kep а по какому принципу у роланда работает воздушный клапан? Чем больше кнопок нажато, тем больше воздуха он проспускает? Вы не знаете, там один клапан с регулируемым зазором, или несколько клапанов? Изменение утечки воздуха плавное, или скачками?
Попробовал поискать информацию о том, какой клапан там стоит, но ничего не нашел.
Кроме обсужденного в личке, есть большое движение в сторону правдоподобной имитации:
Cavagnolo, Bugari Evo, Proxima - делают клавиатуру с клапанами, открывающими дырки в воздушной камере с датчиком давления.
 
Мне кажется, мы все-таки друг друга не поняли...
Midi 2.0 и GM2 - две большие разницы. GM2 это просто менее бородатый Midi 1.0. А Midi 2.0 - это уже новейшие разработки.

Делать такого рода клапаны - прикол будет тот еще... Я сниму шляпу перед тем, кто что-то подобное сможет сделать с своем первом синтезаторе ;)

Я такой вариант надумал:
Дадена внутриполая трубка на выход из меховой камеры, и мотор, который эту трубку кулачковым механизмом зажимает. Нажали кнопку - кулачок повернулся, открыл зазор в трубке. Мне кажется, такой мезанизм используется в медицинском оборудовании.

Время на отклик современных моторчиков для чпу станков - 3мс (!!!). Шаг - градус, полтора.
Должно быть ок.

Примерные площади зазоров язычков можно рассчитать по Розенфельду. Навскидку, скажем, 10мм2 для басовых язычков, макс 8 открытых за раз - 80мм2. Трубочка диаметром 5мм.
 
Я бы всё ж несколько клапанов стравливания сделал в зависимости от количества звучащих голосов.
С двоичным весом каждого. Чтоб 4 клапана 16 градаций сопротивления давали. Нажимать клапан можно механизмом релюшки
 
Кроме обсужденного в личке, есть большое движение в сторону правдоподобной имитации:
Cavagnolo, Bugari Evo, Proxima - делают клавиатуру с клапанами, открывающими дырки в воздушной камере с датчиком давления.
Ну да. Проще взять обычный аккордеон. Выкинуть из него механические голоса, оставив только калибры для прохода воздуха. И будет почти стопроцентная реалистичность меховедения.
 
Мне кажется, мы все-таки друг друга не поняли...
Midi 2.0 и GM2 - две большие разницы. GM2 это просто менее бородатый Midi 1.0. А Midi 2.0 - это уже новейшие разработки.
OK, согласен.
такой вариант надумал:
Дадена внутриполая трубка на выход из меховой камеры, и мотор, который эту трубку кулачковым механизмом зажимает. Нажали кнопку - кулачок повернулся, открыл зазор в трубке. Мне кажется, такой мезанизм используется в медицинском оборудовании.
Какую задачу решаем? Роландовский мотор, как и клапаны, облегчает движение меха в зависимости от количества нажатых клавиш. Общая площадь открываемого отверстия довольно большая, это какого диаметра трубка должна быть?
 
Ну да. Проще взять обычный аккордеон. Выкинуть из него механические голоса, оставив только калибры для прохода воздуха. И будет почти стопроцентная реалистичность меховедения.
Не проханже - калибры от 2-3 рядов клапанов не выполнят задачу. Там все дырки близко должны быть:
Aperta-nocassa.jpg
 
Настоящая механика - это сильно круто, только с B на C не перейдешь... :poop:
Для данного проекта совершенно не вариант. Сначала ползаем, потом уже в космос будем летать.

Шаговики сильно гремят при работе.
Спасибо, не знал. А будет ли его слышно, если он внутри меховой камеры? Можно пенопластом обложить :unsure:.

Думал сначала релейные клапаны делать, но там только 2 позиции (вкл-выкл), и пинов много займут на плате...Читал, что они перегреваются, если их открытыми держать долго. Только если свои клапаны мастерить, как вы предложили. И все равно пинов много надо.
У шаговика с 2х-градусным шагом градаций, эдак, 20-30 будет, однако. И два пина только занимает. Установка внутри корпуса проще простого.

Общая площадь открываемого отверстия довольно большая, это какого диаметра трубка должна быть?
Согласно Розенфельду - не очень. 10мм2 на басовые советские фабричные клапаны. Предположим, что у меня будут стоять виртуальные а мано, так там еще меньше зазоры :cool:. Трубки диаметром 5-6мм должно хватить...
Спать пора, голова не варит - трубки радиусом 6мм должно хватить за глаза.
 
Последнее редактирование:
А шаговик потребует энкодер положения. Как минимум датчик начального положения. Но слабый шаговик может пропускать шаги и сбиваться, а мощный тяжёл и адско гремит при шагании.
 
Можно попробовать прислюнявить регулятор холостого хода от автомобиля. Это как раз регулируемый клапан подачи воздуха в обход закрытой дроссельной заслонки.
 
  • Вау
Реакции: kep