Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
Ответить

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 08:32:54

Отключает. Там сбрасывать нечего - он "беспамятный".

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 08:47:39

Для чего там нужен вывод 15 (E)?
?

Если на входе Е высокий уровень = все каналы РАЗОМКНУТЫ. Если НИЗКИЙ, каналы переключаются по одному, согласно двоичному коду по АДРЕСНЫМ входам.
0000 = 1
0001 = 2
0010 = 3
0011 = 4 и так далее до 1111 = 16
Я вот тут прикинул: может и мне секвенсор собрать, но в "железе" Детали у меня есть. Как это сделать - представляю. Только время на всё не хватает. Тут и без электроники проблем выше крыши....
Но я пойду другим путем: запоминаться будут ноты с рояльной клавиатуры, а какие звуки запоминать - это уже другая цель: зависит от звукообразующего блока, секвенсор всего лишь схема выбора номера тембра и запоминание.
И вот опять: зачем МНЕ это надо? Да просто интересно. Хобби.
Последний раз редактировалось Brigadir Чт авг 17, 2017 09:05:38, всего редактировалось 1 раз.

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 08:57:51

То есть подал набор нужных уровней, один из каналов соединился с выходом (Z). Подал другой набор уровней, этот канал разъединился и соединился другой?
Это упрощает задачу :)

А вот кстати, как правильно организовать подачу адресов (последовательно 16 адресов с заданными интервалами)?
Я сперва думал просто посылать сигналы на нужные выходы, соединённые с портами мультиплексора для адресов (A0 - A3), потом небольшая пауза для антидребезга, затем определение включенных переключателей, отправка соответствующих нот, затем снова небольшая пауза (чтобы сигналы не выключились раньше времени), отключение сигналов, потом регулируемая большая пауза (ну относительно большая) и далее следующий адрес и т.д. Тут получается что цикл всегда одинаковый, отличаются только адреса (которых 16 штук). Наверняка подачу адреса можно как-то получше и покомпактнее организовать?
Наверное лучше сделать в виде такого-же массива из 4х строк и 16 команд в длину?
В массиве как я понял, не получится делать так, чтобы одни паузы регулировались, а другие нет?
Или тут можно какой-то другой вариант применить?

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 09:21:44

В двоичном коде (адреса А1 - А4 ) у тебя мозг свихнется каждый раз помнить какие кнопки и тумблеры вкл/выкл. Тогда уж к мультиплексору придется пристегнуть десятично - двоичный преобразователь, то есть - шифратор. Или....переключать по очереди с 1 до 16 одной кнопкой (пошаговый режим), то есть пристегнуть счетчик и к нему вместо генератора импульсов, RS триггер с кнопкой.
Но такая система справедлива, если к мультиплексору приколхозить память ОЗУ. То есть: ты пошагово программируешь ритмический рисунок, затем переводишь схему в автоматический режим (подключаем генератор импульсов на счетчик) и даем команду пуск. И автомат в точности повторяет то, что ты до этого "нащелкал".
Но для твоего аппарата (не помню, что ты там купил) десятичный код (то есть мультиплексор) ни к чему. Он наверняка воспринимает управляющие сигналы в двоичном коде по 4 или 8 каналам.
Давай начнем с того: как твоя игрушка работает? Какие управляющие сигналы ей надо? А тогда уже будем думать = как ею управлять и с помощью чего.
Да и нафига тебе мультиплексор? Просто возьми самую дохлую МК и запрограммируй как тебе хочется: несколько портов на кнопки управления и сколько то там портов = на твою игрушку. МК и выдаст нужные текущие коды с нужной скоростью и запомнит кнопки, по которым ты тыкал.
Да вот ещё: для пошагового режима намного удобнее шифратор 561ИЕ8 на 10 шагов. С каждым нажатием кнопки он просто сдвигает шаг на следующий.

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 10:05:02

То есть подал набор нужных уровней, один из каналов соединился с выходом (Z). Подал другой набор уровней, этот канал разъединился и соединился другой?

Угу

А вот кстати, как правильно организовать подачу адресов (последовательно 16 адресов с заданными интервалами)?

Почему с заданными ? Вмысле с нужными паузами между нотами ?

Я сперва думал просто посылать сигналы на нужные выходы, соединённые с портами мультиплексора для адресов (A0 - A3), потом небольшая пауза для антидребезга, затем определение включенных переключателей, отправка соответствующих нот, затем снова небольшая пауза (чтобы сигналы не выключились раньше времени), отключение сигналов, потом регулируемая большая пауза (ну относительно большая) и далее следующий адрес и

Слишком заморачиваетесь. Если на ходу переключателями не щелкать - особых глюков не будет, но пару раз подряд считать можно на всякий случай (и если разные значения - третий раз).

т.д. Тут получается что цикл всегда одинаковый, отличаются только адреса (которых 16 штук). Наверняка подачу адреса можно как-то получше и покомпактнее организовать?

Что такого некомпактного получается в простом цикле от 0 до 15 ?

Наверное лучше сделать в виде такого-же массива из 4х строк и 16 команд в длину?

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

В массиве как я понял, не получится делать так, чтобы одни паузы регулировались, а другие нет?
Или тут можно какой-то другой вариант применить?

Как это ? После 2й ноты смотрим значения потенциометра, а после 3й нет ?

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 11:29:45

Morroc писал(а):Почему с заданными ? Вмысле с нужными паузами между нотами ?

Ну в смысле пауза, регулируемая потенциометром. Да, между нотами.
Morroc писал(а):Слишком заморачиваетесь. Если на ходу переключателями не щелкать - особых глюков не будет, но пару раз подряд считать можно на всякий случай (и если разные значения - третий раз).

Тут я ничего не понял :) Ну и возможно что-то и на ходу перещёлкну :)
Morroc писал(а):Что такого некомпактного получается в простом цикле от 0 до 15 ?

Ну я в том смысле, как я описал алгоритм, так нормально? Или может для подобных целей применяется какая нибудь спец фишка?
Morroc писал(а):Как это ? После 2й ноты смотрим значения потенциометра, а после 3й нет ?

Не, я про то, что там будут паузы между нотами (десятки миллисекунд), которые должны регулироваться потенциометром. И будут дополнительные паузы (единицы миллисекунд), чисто чтобы сигнал не отключался моментально сразу после подачи (чтобы мультиплексор гарантированно переключился на другой канал), эти паузы будут фиксированные и не регулируемые. Я не знаю, может эти паузы и не нужны, но думаю с ними надёжнее будет.
Morroc писал(а):сразу по переключателям формировать.

В смысле заморочки с массивом делать не обязательно, сгодится так, как я написал?

Добавлено after 10 minutes 57 seconds:
Brigadir писал(а):В двоичном коде (адреса А1 - А4 ) у тебя мозг свихнется каждый раз помнить какие кнопки и тумблеры вкл/выкл.

Тумблеры никакого отношения к двоичному коду не имеют. Двоичный код прописывается внутри программы.
Brigadir писал(а): То есть: ты пошагово программируешь ритмический рисунок, затем переводишь схему в автоматический режим (подключаем генератор импульсов на счетчик) и даем команду пуск. И автомат в точности повторяет то, что ты до этого "нащелкал".

Ничего там никуда переключать не надо. Включил тумблерами нужные барабаны и они стучат. Всё.
Brigadir писал(а):С каждым нажатием кнопки он просто сдвигает шаг на следующий.

Зачем? Мне не надо без конца кнопку тыкать, шаги переключать.

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 11:33:01

Morroc писал(а):Почему с заданными ? Вмысле с нужными паузами между нотами ?

Ну в смысле пауза, регулируемая потенциометром. Да, между нотами.

По хорошему это надо делать не с помощью delay, а с помощью millis. Но это будет замороченнее.

Тут я ничего не понял :) Ну и возможно что-то и на ходу перещёлкну :)

Простейший антидребезг выглядит как считывание, пауза (20-50ms), считывание и если совпадает и нажато - значит действительно нажато, но это для кнопки, в мультиплексоре дребезг... ну я бы особо не заморачивался, вот если на ходу переключать - тогда да, но тут вылезет проблема с delay антидребезга - неучтенная такая пауза.

Ну я в том смысле, как я описал алгоритм, так нормально? Или может для подобных целей применяется какая нибудь спец фишка?

Цикл и есть такая фишка.

Не, я про то, что там будут паузы между нотами (десятки миллисекунд), которые должны регулироваться потенциометром. И будут дополнительные паузы (единицы миллисекунд), чисто чтобы сигнал не отключался моментально сразу после подачи (чтобы мультиплексор гарантированно переключился на другой канал), эти паузы будут фиксированные и не регулируемые. Я не знаю, может эти паузы и не нужны, но думаю с ними надёжнее будет.

Сигнал с DIP переключателей почему должен отключаться моментально ? Или какой сигнал ?

В смысле заморочки с массивом делать не обязательно, сгодится так, как я написал?

Заморочки с массивом на самом деле кое что упрощают. Это как простая схема, где транзистор и УВЧ и детектор и УНЧ одновременно и другая, посложнее, где все отдельно по каскадам - работают обе, но если что не так - настроить проще вторую (с массивом).

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 12:07:04

[
Ничего там никуда переключать не надо. Включил тумблерами нужные барабаны и они стучат. Всё..
Тогда тебе ваще никакие микросхемы не нужны. только тумблеры. :)))
Последний раз редактировалось Brigadir Чт авг 17, 2017 12:33:51, всего редактировалось 1 раз.

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 12:21:35

Даже тумблеры не нужны. Нужные барабаны поставил, ненужные убрал в шкаф - стучат, всё :))

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 12:35:03

Morroc писал(а):Сигнал с DIP переключателей почему должен отключаться моментально ? Или какой сигнал ?

Не, вот я подаю комбинацию уровней на адресный вход мультиплекстора. Потом эти сигналы надо отключить, прежде чем подать следующий адрес. Вот эта пауза между подачей адреса и отключением поданных сигналов.
Хотя я уже понял, эта пауза не нужна. Просто затупил сперва.
Там получается должно выглядель как-то так:
A0 - 0
A1 - 0
A2 - 0
A3 - 1
delay 1 //антидребезг
*********// Тут проверка включенных тумблеров и отправка нужных нот и заглушение ненужных.
*********//
delay (x); //пауза между нотами.
A0 - 0
A1 - 0
A2 - 1
A3 - 0
delay 1
***********
***********
delay (x);

И т.д.

Там же действительно не надо каждый раз обнулять адрес (к тому же при обнулении включется снова первый вход).
Там же надо просто указывать, как должен измениться уровень после команды.
Но что касается антидребезга, думаю что не помешает. Пауза коротенькая будет, например 1 миллисекунда. На ритмический рисунок она не повлияет (тем болеетчто будет везде одинаковой.

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 12:48:19

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

Купи любой 4 разрядный счетчик - он тебе и будет перебирать двоичный код. А зачем тебе мультиплексор? Ты же уже поставил на плату полмешка ДИП переключателей... :)))
Купи лучше книгу, где обьясняют как работает каждая логическая микросхема.
Рекомендую: МРБ В.Л.Шило. Популярные микросхемы КМОП.
И вот когда её прочитаешь внимательно внимательно, то у тебя сразу отпадут многие детские вопросы.

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 12:55:38

Дядя Толя, если не понимаешь про что речь, не нужно умничать.
Ну фигню же пишешь.

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 12:58:14

А зачем тебе мультиплексор? Ты же уже поставил на плату полмешка ДИП переключателей... :)))


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

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 13:06:46

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

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 13:10:33

Может у него в ящике этих мультиплексоров полно. Я бы сдвиговые регистры поставил для скана - у меня в ящике полно имено их. :))

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 14:07:25

Brigadir писал(а):Ну да...ну да...знать бы тебе хотя бы основы логики работы основных цифровых микросхем....многих детских вопросов не задавал бы тут.
Ну и ковыряйся....сам!

Могу внимательно послушать и посмотреть как этот проект реализовал бы такой знаток цифровых микросхем, как ты.

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 14:10:42

Он бы делал без мк, на счетчиках и простой логике с кучей плат :))

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 14:26:02

Можно и сдвиговый регистр заставить работать как тебе надо. Но в него тоже надо заложить определенную (нужную тебе последовательность нулей и единиц, то есть - код) и сдвигать по очереди.
Не будем запутывать Автора, у него и так соображаловка вскипела. Пусть делает, как он ЭТО понимает.
А как он понимает? Вместо ОЗУ у него тумблеры. Много тумблеров = целый мешок. А "опрос" линеек тумблеров он хочет сделать на мультиплексоре, хотя намного проще применить 561ИЕ8. Эта микросхема при каждом шаге передвигает импульс на выходных портах. Или на дешифраторе ИД - тоже самое, но управляется от счетчика.
Мои советы Серега не воспринимает, так как совершенно не знает логику работы цифровых микросхем. А если бы знал, то не задавал бы детских вопросов.
Попробую подучить:
Генератор импульсов поочередно выдает каждый импульс с определенной скоростью (частота генератора). Счетчик - принимает входные тактовые импульсы и преобразует их в двоичный код: 0001.0010, 0011, 0100.0101,0110,0111 и так далее. Мультиплексор: согласно этому потоку двоичных кодов по очереди включает входные порты (их может быть и 4 и 8 и 16) на один общий выход в виде десятичного счета: 1, 2, 3, 4, 5....
Дешифратор: делает тоже самое, но вместо включить внутренний "рубильник" просто по очереди выдает лог 1 на каждом из своих 8 или 16 выходах. То есть он не может в отличии от мультиплексора, коммутировать аналоговые сигналы.
Регистр: этот с каждым тактовым импульсом от генератора, сдвигает записанную информацию на его входах на шаг вперед. Регистры бывают с памятью (защелки) и без памяти. Ну и наконец ОЗУ: здесь он записывает любое сочетание 0 и 1 на входах и помнит, пока есть питание, и можно считать эту информацию по команде "чтение".
Ну и всякая там вспомогательная логика: И-НЕ, 2И - НЕ, 8 И - НЕ, ИЛИ, ИЛИ - не и так далее. применяется для согласования , инвертирования, и прочих целей, согласно хотелки.
Да, вот ещё: есть счетчики с предустановкой какого то числа и при запуске счетчика он прибавляет с каждым шагом десятичную единицу (в двоичном коде) или отнимает единицу (реверс счетчика).
Более сложная логика способна и умножать, делить и выполнять более сложные математические операции. Но туда лучше не соваться = сложно очень. Мозг вскипит! :)))
У Сереги простая, банальная задача. Логика тут примитивна: принять некий код, запомнить, принять другой код = запомнить и так до 16 шагов. А затем просто воспроизводить эту записанную программу в непрерывном режиме с определенной скоростью (по кольцу). Собственно это и называется секвенсор. Который помнит управляющую программу (не сами звуки).
В синтезаторах(дешевых, бытовых) применяют обычно 6 канальный секвенсор (каналы независимы: то есть один может в это время записывать, а другие каналы = воспроизводят, но все синхронизированы). Так удобнее музыканту: на фоне уже записанных данных, добавлять другие звуки, но в свой канал, который можно и стереть, не затрагивая другие каналы.
Ну типа как: в графической программе рисуем на нескольких слоях и редактируем только свой слой, не испортив соседний.
В более дорогих , профессиональных, секвенсор может иметь 8, 16 каналов. Но не более (не встречал).
Емкость секвенсора, то есть количество нот , записать в канал. Для ритмического рисунка много не надо. А вот записать полностью произведение, секвенсор должен иметь приличную память минут на 10. (более 4000 нот).

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 14:39:04

Morroc писал(а):Он бы делал без мк, на счетчиках и простой логике с кучей плат :))

И не зная протокола миди, в лучшем случае смотрел бы на бегущий огонёк из светодиодов :)))

Re: Хочу сделать секвенсор, есть некоторые вопросы.

Чт авг 17, 2017 14:44:38

По хихикали?
Мне не надо знать протокол МИДИ. Я в него никогда не впихивался и не собираюсь. У меня полноценный аппарат, сам по себе играет.
Это Вы от нищеты пытаетесь изобрести лисапет... :))) А как его сделать, толком и не знаете...
Кстати: вспомнил тут. От синтезатора есть список тембров(инструментов, звуков, в том числе и секция ритма) - есть и номера МИДИ команд. от 0 до 128. То есть коды 8 значные. Для Гранд Пиано это команда: 00000001, А остальные надо пересчитывать (когда надо = вычислим).
Последний раз редактировалось Brigadir Чт авг 17, 2017 14:55:33, всего редактировалось 1 раз.
Ответить