Преобразователь тона для гитары
|
|
peratron | Дата: Суббота, 01.10.2016, 11:34 | Сообщение # 1 |
Генерал-полковник
Группа: Администраторы
Сообщений: 1102
Статус: Offline
| В соседней ветке камрад Kvazar задал вопрос: Цитата peratron, надеюсь, вы меня не запинаете, но такой вопрос: на gtlab в теме про 6-канальный гитарный синтезатор, вы упоминали про возможность увода гитарного сигнала на 2-4 октавы вверх... А поподробнее прояснить схемку можете? Я примерно попробовал прикинуть в протеусе, как оное должно работать, но так ни шиша не понял. http://i.piccy.info/i9....er1.pngпримерная прикидка... ГЛУБОКО ИЗВИНЯЮСЬ ЗА ФЛЕЙМ, если что... Спрашиваете? Отвечаем!
Kvazar, идея родилась в процессе конструирования 6-канальной гитары а-ля Кетнерс.
Для начала - преамбула.
В кетнерсовском проекте преобразователи были на основе триггеров шмидта - с характерным для этого принципа артефактом в виде "ишачьего эффекта", порождаемого перескоком на октаву. Выход был найден в применении более продвинутого алгоритма - точки срабатывания триггера с помощью компаратора привязывались к пересечению нуля и огибающей сигнала струны. Если интересно - этот аспект можно обсудить, затравив отдельную тему.
Далее в прототипе к импульсному преобразователю цеплялась цепочка делителей органного типа. Первые же эксперименты показали, что для реального музыкального применения нужен октавер не столько вниз, сколько вверх - без этого регистровый синтез был всего лишь прикольным эффектом ограниченного применения, а затраты на реализацию шестиканальной обработки неоправданными. Потому мозговые усилия я сосредоточил на том, что б поднять ведущий генератор октавной цепочки хотя б на пару октав вверх.
И это получилось! (продолжение в следующем посте)
PERATRONIKA - персональная звукотехника
|
|
| |
peratron | Дата: Суббота, 01.10.2016, 12:20 | Сообщение # 2 |
Генерал-полковник
Группа: Администраторы
Сообщений: 1102
Статус: Offline
| Итак, как же можно перенести тон в реал-тайме на несколько октав вверх?
Идея вырисовалась такая: использовать частотомер в режиме измерения длительности периода!
Алгоритм такой: - по выбранному фронту открываем ворота и заполняем счётчик импульсами от тактового генератора с высокой частотой; - по следующему фронту гитарного сигнала той же полярности переписываем достигнутое значение в регистр и храним его вплоть до следующего цикла, после чего мгновенно обнуляем счётчик периодометра и снова считаем тактовые импульсы; - для синтеза сооружаем реверсивный счётчик и в рабочем цикле синтеза сгоняем его к нулю тем же тактовым клоком; - для воспроизведения периода, хранимого в регистре, переписываем регистр в счётчик и гоним его к нулю, после достижения которого снова переписываем регистр в счётчик: очевидно, что при равенстве тактовых частот период синтезированного сигнала совпадёт с хранимым в регистре. А вот если сгонять реверсивник клоком на октаву-другую выше - то за время обновления регистра гитарным сигналом, синтезатор успеет сгенерить соответствующее значение периодов!
Итак, в целом: на вход подаём гитарную частоту, а на выходе получаем её же, поднятую на нужное число октав. Остаётся прицепить к синтезатору регистровый счётчик и получить полноценный органный звук - очень впечатляющий при живом следовании за гитарой
Для этого устройства я применил 16-разрядный процессор на ТТЛ-логике (155 серия). Само счётное ядро занимало 4х3=12 корпусов, плюс ещё входной преобразователь. Всё это собрано на слепыше от стандартного крейта метеостанции ТАИР для телевышек, разработкой которого я занимался в оплачиваемое работодателем время
В общем, нехилый такой получился блочок - особенно при умножении всего канального хозяйтва на шесть! И жрал соответствующе...
Но, главное - он работал и уже удовлетворял поставленной заданию. Дальше я сообразил, что генерить оно будет и по завершении гитарного сигнала - что очень хорошо для формирования релиза с мягким спадом - ведь в регистре записан тон гитарного сигнала. Однако тут ожидала подводная коряга - система отлично отслеживала мгновенное значение тона, но мгновенка сильно отличалась от среднего! Потому система хватала последний период, а он мог отличаться от среднего очень сильно - и в фазе релиза звук скакал на фальшь Пришлось ограничиться коротким релизом
Стало понятно, что надо хранить в регистре осреднённое значение - и я засел за цифровой осреднитель на базе АЛУ всё той же 155 серии. То есть, схема сильно раздувалась...
Но зато при питании измерителя и синтезатора от разных генераторов можно было качать синтез по частоте как угодно! И можно было глиссандировать - правда, в пределах звучания струны.
Я прилепил к гитаре пот с рычагом - и Серёга с глазами тягал соляки на октаву туда-сюда. Гитараст был в шоке
(продолжение следует)
PERATRONIKA - персональная звукотехника
|
|
| |
peratron | Дата: Суббота, 01.10.2016, 12:40 | Сообщение # 3 |
Генерал-полковник
Группа: Администраторы
Сообщений: 1102
Статус: Offline
| В принципе, можно было лепить шестиканалку - благо, к этому моменту поспел контроллер на основе динамического съёма (про него тоже можно поговорить - благо он по сю пору валяется на шкафу и я могу его отщёлкать фотиком).
Но громоздкость решения не давала покоя - пока я не сообразил, что весь алгоритм синтеза можно воспризвести в аналоге: - периодометр на основе ГЛИН; - хранение - вместо регистра аналговое УВХ; - синтез - на основе генератора с тем же глин и компаратора, подцепленного к УВХ.
При идентичности ГЛИН схема воспроизводит период, как и цифровая, но если в ГЛИН в синтезаторе поставить ёмкость в 2-4-8 раз меньшую, то на выходе будет сигнал на одну, две, три октавы выше.
Разумеется, аналоговый синтез менее стабилен - но я прикинул, что при правильном проектировании нестабильность будет удовлетворительной. А в целом - на уровне тогдашних технологий - более компактным и менее жрущим питание.
И, главное, - два великолепных бонуса:
- на выходе синтезатора сразу же пила, пригодная для регистрового синтеза (правда, требуется коррекция по амплитуде - но это не чрезмерно сложно);
- главное же в том, что проблема осреднения решается элементарным RC-фильтром между УВХ и компаратором синтезатора! Причём, если сделать R переменным - получится классическое синтезаторное портаменто!
В общем, это направление достаточно перспективно даже и сейчас - хотя я предпочёл бы алгоритм впихнуть в микроконтроллер и решить всё в одном мелком чипе на канал (да хоть в восьминожке атмеловской).
Надеюсь, что на вопрос ответил - если что, задавай вопросы для уточнения.
PERATRONIKA - персональная звукотехника
|
|
| |