Привет, я собираю синтезатор на Ардуино. В будущем собираюсь синтезировать более сложные звуки, но нужно с чего-то начать. Перейдём к задачкам. дядя Витя говорил: -Находите таблицу частот нот, и вписываете соответствующую цифру. Но таким методом точной звукопередачи в принципе не добиться, и всегда будут присутствовать вторичные и троичные гармоники. Можно ли улучшить звук ВЧ фильтром? Так, новый код: Код (C++): int val = 0; //сюда считываем сигнал void setup() { Serial.begin(9600); // setup serial pinMode(7, OUTPUT); // выход на светодиод digitalWrite(7, LOW); pinMode(11, OUTPUT); // выход на динамик } void loop() { for (int i = 0; i < 15; i ) // цикл на 15 раз { int val = analogRead(i); if (val != 0) { digitalWrite(7, LOW); noTone(11); continue; } switch (i) { case 0: { digitalWrite(7, HIGH); tone (11, 988); delay(100); break; } case 1: { digitalWrite(7, HIGH); tone (11, 880); delay(100); break; } case 2: { digitalWrite(7, HIGH); tone (11, 784); delay(100); break; } case 3: { digitalWrite(7, HIGH); tone(11, 698); delay(100); break; } case 4: { digitalWrite(7, HIGH); tone(11, 659); delay(100); break; } case 5: { digitalWrite(7, HIGH); tone(11, 587); delay(100); break; } case 6: { digitalWrite(7, HIGH); tone(11, 523); delay(100); break; } case 7: { digitalWrite(7, HIGH); tone (11, 494); delay(100); break; } case 8: { digitalWrite(7, HIGH); tone(11, 440); delay(100); break; } case 9: { digitalWrite(7, HIGH); tone (11, 392); delay(100); break; } case 10: { digitalWrite(7, HIGH); tone(11, 349); delay(100); break; } case 11: { digitalWrite(7, HIGH); tone(11, 329); delay(100); break; } case 12: { digitalWrite(7, HIGH); tone (11, 293); delay(100); break; } case 13: { digitalWrite(7, HIGH); tone(11, 261); delay(100); break; } case 14: { digitalWrite(7, HIGH); tone (11, 246); delay(100); break; } } } }
Нет. Нужен НЧ фильтр. ПЕРЕСТРАИВАЕМЫЙ. Причем с хорошей крутизной. На коленке без приборов не сделать.
Что такое вторичные и троичные гармоники? Меандр состоит в основном из нечетных гармоник. Допустим, мы генерируем 500 Гц. Третья гармоника будет на частоте 1500 Гц. Допустим, мы ее задавили. А теперь мы хотим воспроизвести меандр с частотой 1500 Гц. Но 1500 Гц задавлена фильтром. Что делать? Что мешает генерировать сигнал с помощью нормального ЦАП? Например, с помощью малины.
Предупреждаю, что я никогда не делал синтезаторы. Что вам нужно? Если вы не слухач, то есть гармоники или их нет зачем париться? Спойлер: Много слов Если слухач, то ардуино не лучшее решение. (решений не знаю, но уверен, что такие микросхемы есть) Но придётся паять. Если это развлекалово и вам по кайфу выжать всё из ардуинки, то нужно думать. На что вы готовы ради синтезатора) Синтезировать можно разными способами. На разных нотах у пассивного фильтра будет разный эффект. (фильтр не перестраиваемый?) Можно поставить набор полосовых фильтров и снимать сигнал с нужного. Можно поставить перестраиваемый полосовой фильтр и просто его двигать на ту ноту, что должна играть. Можно генерить ужасный сигнал, у него будет забор гармоник с почти одинаковой амплитудой и опять полосовым выделять нужную. Можно поставить кучу генераторов и снимать сигнал с нужного. Можно поставить один генератор с кольцом ФАП и задавать ему нужную ноту. Надеюсь, мы правильно поняли слово "синтезатор".
Синтезатор должен быть полифоническим. А tone - монофоническое. Читайте о DDS - прямом цифровом синтезе частоты. Вот еще для просветления http://pic24.ru/doku.php/osa/articles/pk2_osa_piano
Просто человек не понимает что такое синтез и как это должно работать. Все видят только вершину айсберга. В что произходит в синте при нажатии клавиш знают только единици. Маленькую атари PINK можно сделать на ардуино. А во DXсовский звук ты точно не сможешь повторить.
Увы там работа 6 операторов. И при этома какой то оператор управляет другим оператором. Если знаешь как это работает и как делают звук то можно было много чего "насентезировать" и еще ямаховкские DXксы и прочие синты 80-90годав работали на присетах. А семплы это исходники для семплера. А это уже другая история.
не знаю. Потому и спрашиваю. ну я скачал тут прогу для MIDI ударных - звучат ударные очень сочно. Очень сильно сомневаюсь, что это пресет.
Молодец. Теперь скачай мануалы и почитай. Миди это набор команд которая объединяет работу нескольких синтезаторов. В системе есть мастер и есть слейв. Ведущий и ведомый. Как вот миди это как игра "САЙМОН ГОВОРИТ" Включи ноту ля. - Выключи ноту ля. И все. Миди это набор контроллеров со своими инструкциями. И миди их передает. Теперь постараюсь ответить на тему семл. Смотри. Работа синтезатора ето исполнение инструции. Инструкции это набор параметров. При этом инструкции для скрипки одни а для пианино другии. При этом синтезатор так же понимает инстркции и твоих барабанов. Звуковому чипу что стоит у тебя в компьютере все равно что он получает по шине данных. В покете который получит чип будут данные о типе ГОЛОСА его длительности ,высоте, уровне, и прочие. Так вот миди и есть эти инстркуции. Стандартный голос синтезатора это набор параметров. Есть голоса которые можно поменять. Есть голоса которые не возможно поменять. Сами голоса могут быть либо синтезированны. Либо за семплированы и оцифрованны в таблично волновые формы(как правило с такими голосами работают рабочие станции) что требует больших вычеслительных ресурсов. Чип твоего компьтера может и на этом работать. Все в что нужно в пакете данных. А по просту миди это просто управление с одного синтезатора ;секвенсора;семплера;ритм компьтера; -други миди устройством. Другое применение миди это создание присета. То есть используя ручки синтезатора я создал какой то оригинальный звук. В эпоху когда миди не было с сентезаторам шли такие листы бумаги где были нарисованны все ручки кнопки и прочие. Так что бы не забыть как я сделал это "шедевр"я брал ручку и просто зарисовывал положение моих ручек. А с появлением миди я создавал свой пресет с теми настройками которые я накрутил(насентезировал). И по миди я просто давал команду включи ка мой пресет. И он играл. Это было круто. Самый крутой синт 80-90 ямаха DX7. Ну или KORG POLI800.