Например TDA7294

Форум РадиоКот • Просмотр темы - Хочу сделать секвенсор, есть некоторые вопросы.
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Сб апр 20, 2024 15:49:17

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 147 ]    , 2, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Ср авг 09, 2017 21:46:05 
Друг Кота

Карма: 43
Рейтинг сообщений: 257
Зарегистрирован: Пн апр 19, 2010 00:04:18
Сообщений: 11998
Откуда: Малороссия
Рейтинг сообщения: 0
Сэмплер может (но не обязательно)принимать МИДИ и команды других протоколов и может проигрывать сэмплы, но не может и не должен генерировать МИДИ(а нахуа?)

программируемый как секвенсер МИДИ контроллер можно канешно назвать и секвенсером,


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Ср авг 09, 2017 21:50:36 
Генеральный секретарь МЯУ
Аватар пользователя

Карма: 69
Рейтинг сообщений: 22
Зарегистрирован: Пн сен 03, 2007 18:24:27
Сообщений: 18416
Откуда: Россия. Омск.
Рейтинг сообщения: 0
он прочитав про кнопку...просто ОХУЕЛ!

А как тут не охуеешь, если ты хуйню написал? :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Ср авг 09, 2017 21:51:54 
Друг Кота

Карма: 43
Рейтинг сообщений: 257
Зарегистрирован: Пн апр 19, 2010 00:04:18
Сообщений: 11998
Откуда: Малороссия
Рейтинг сообщения: 0
Цитата:
Ладно. Давай так: Что такое мидиконтроллер? Что он делает?

Я щас кстати эти занимаюсь... :wink: Обрабатывает прерывания, типа(только не просто Toggle, там а с параметрами), и по протоколу выдает команды на выход


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Ср авг 09, 2017 21:52:56 
Генеральный секретарь МЯУ
Аватар пользователя

Карма: 69
Рейтинг сообщений: 22
Зарегистрирован: Пн сен 03, 2007 18:24:27
Сообщений: 18416
Откуда: Россия. Омск.
Рейтинг сообщения: 0
kaetzchen писал(а):
но не может и не должен генерировать МИДИ(а нахуа?)

Полно сэмплеров, у которых есть миди выход. Да почти у всех есть.


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Ср авг 09, 2017 21:55:36 
Друг Кота

Карма: 43
Рейтинг сообщений: 257
Зарегистрирован: Пн апр 19, 2010 00:04:18
Сообщений: 11998
Откуда: Малороссия
Рейтинг сообщения: 0
kaetzchen писал(а):
но не может и не должен генерировать МИДИ(а нахуа?)

Полно сэмплеров, у которых есть миди выход. Да почти у всех есть.

это MIDI Thru (Clock) :wink: в основном, он же не генерирует События, ну если только не имеет встроенного контроллера


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Ср авг 09, 2017 21:59:28 
Генеральный секретарь МЯУ
Аватар пользователя

Карма: 69
Рейтинг сообщений: 22
Зарегистрирован: Пн сен 03, 2007 18:24:27
Сообщений: 18416
Откуда: Россия. Омск.
Рейтинг сообщения: 0
kaetzchen писал(а):
Обрабатывает прерывания, типа(только не просто Toggle, там а с параметрами), и по протоколу выдает команды на выход

Вот именно так. А прерывания эти выдаёт секвенсор (а не наоборот). И затем контроллер эти команды выдаёт на выход (который будет включен на вход сэмплера).
Но у меня секвенсор и мидиконтроллер будут объединены в одно устройство. И это не только у меня. Все автономные секвенсоры сделаны именно так.
Цитата:
это MIDI Thru (Clock) :wink: в основном, он же не генерирует События, ну если только не имеет встроенного контроллера

Они могут работать в качестве мидиконтроллеров. То есть передавать мидикоманды от своих органов управления.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Ср авг 09, 2017 22:01:17 
Друг Кота

Карма: 43
Рейтинг сообщений: 257
Зарегистрирован: Пн апр 19, 2010 00:04:18
Сообщений: 11998
Откуда: Малороссия
Рейтинг сообщения: 0
Ну нахуа железный секвенсер если есть море охуенного софта, а?
Цитата:
Они могут работать в качестве мидиконтроллеров. То есть передавать мидикоманды от своих органов управления.

значит имеет встроенный контроллер. в железе или софте.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Ср авг 09, 2017 22:02:45 
Друг Кота
Аватар пользователя

Карма: 43
Рейтинг сообщений: 167
Зарегистрирован: Вс янв 25, 2009 21:16:04
Сообщений: 35726
Откуда: Москва
Рейтинг сообщения: 0
Цитата:
Сам секвенсор должен работать как мидиконтроллер.

Секвенсор- это проигрыватель самлов. ПРОТГРЫВАТЕЛЬ!!!
А МИДИ-контроллер- это КОНТРОЛЛЕР!!!(сам нихера не может проигрывать и звук не рендерит), и передает комманды Секвенсеру и другому железу.

Правильно, тока поправлю: секвенсер может и ЗАПИСЫВАТЬ . Не может, а записывает, запоминает и потом можно и проигрывать. Отличается от магнитофона: пишет не звук, а команды (управление).
Вот я Сереге пытался обьяснить: вживую пишет - сам считывает и длительность нажатия и номер клавиши и паузы, а пошагово - надо думать мозгом, как когда то композитор тщательно записывал на нотном стане свои каракули и закорючки, проигрывая тему в своей голове.

А как тут не охуеешь, если ты хуйню написал?
Не хуйня: самый умный компутерный мозг, ждет...когда сделаешь следующий шаг.

_________________
А поболтать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Ср авг 09, 2017 22:03:04 
Генеральный секретарь МЯУ
Аватар пользователя

Карма: 69
Рейтинг сообщений: 22
Зарегистрирован: Пн сен 03, 2007 18:24:27
Сообщений: 18416
Откуда: Россия. Омск.
Рейтинг сообщения: 0
kaetzchen писал(а):
Ну нахуа железный секвенсер если есть море охуенного софта, а?

Да потому что работать он будет с сэмплером, а не с компьютером.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Ср авг 09, 2017 22:09:24 
Друг Кота

Карма: 43
Рейтинг сообщений: 257
Зарегистрирован: Пн апр 19, 2010 00:04:18
Сообщений: 11998
Откуда: Малороссия
Рейтинг сообщения: 0
Кампутер- лучший в мире сэмплер,, секвенсер и обработчик :idea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Чт авг 10, 2017 14:51:54 
Генеральный секретарь МЯУ
Аватар пользователя

Карма: 69
Рейтинг сообщений: 22
Зарегистрирован: Пн сен 03, 2007 18:24:27
Сообщений: 18416
Откуда: Россия. Омск.
Рейтинг сообщения: 0
Как с ардуино по миди вывести нужную ноту?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Чт авг 10, 2017 16:17:19 
Друг Кота
Аватар пользователя

Карма: 64
Рейтинг сообщений: 1099
Зарегистрирован: Ср ноя 17, 2010 23:10:55
Сообщений: 5837
Откуда: Ижевск LO66NU
Рейтинг сообщения: 0
http://cxem.net/arduino/arduino18.php

_________________
В начале жизнь мучает вопросами, в конце - ответами...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Чт авг 10, 2017 16:31:45 
Генеральный секретарь МЯУ
Аватар пользователя

Карма: 69
Рейтинг сообщений: 22
Зарегистрирован: Пн сен 03, 2007 18:24:27
Сообщений: 18416
Откуда: Россия. Омск.
Рейтинг сообщения: 0
Это я уже смотрел. Ни один код не заработал.

Мне бы пример, как по миди отправить одну отдельную ноту.

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

Вот такое у меня получилось:
Код:
#define NOTE_1 38   
#define NOTE_2 39   
#define NOTE_3 40 
#define NOTE_4 41   

//  сила нажатия(громкость)
#define VELOCITY 100

//  тип MIDI сообщения — статус байт
//  1001 взять ноту (Note On)
//  0000 номер канала
#define NOTE_ON 0b10010000

void setup()
{
  // открываем последовательный порт
  // задаем скорость передачи данных 31250 кбит/с для MIDI
  Serial1.begin(31250);
}  // put your setup code here, to run once:


void loop() {
         sendMidiMessage(NOTE_ON, NOTE_4, VELOCITY);
     delay (200);
      //выкл ноты
        sendMidiMessage(NOTE_ON, NOTE_4, 0);
     delay (200);
         sendMidiMessage(NOTE_ON, NOTE_2, VELOCITY);
     delay (200);
       //выкл ноты
        sendMidiMessage(NOTE_ON, NOTE_2, 0);
     delay (200);
         sendMidiMessage(NOTE_ON, NOTE_3, VELOCITY);
     delay (200);
        //выкл ноты
        sendMidiMessage(NOTE_ON, NOTE_3, 0);
     delay (200);
         sendMidiMessage(NOTE_ON, NOTE_1, VELOCITY);
     delay (200);
        //выкл ноты
        sendMidiMessage(NOTE_ON, NOTE_1, 0);
     delay (200);           
}


Это зацикленная последовательность из четырёх нот.
В общем работает, осталось только сделать, чтобы программа опрашивала последовательно 8 тумблеров (на каждую из 4х нот) и чтобы когда опрашивался включенный тумблер, выдавалась команда на воспроизведение соответствующей ноты. Ну и чтобы задержка между опросами тумблеров регулировалась потенциометром.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Сб авг 12, 2017 19:16:12 
Генеральный секретарь МЯУ
Аватар пользователя

Карма: 69
Рейтинг сообщений: 22
Зарегистрирован: Пн сен 03, 2007 18:24:27
Сообщений: 18416
Откуда: Россия. Омск.
Рейтинг сообщения: 0
Не пойму, как можно в таком вот коде:
Спойлер
Код:
#define pot A0 // Потенциометр на вход A0
void setup() {
pinMode(pot, INPUT);
//  скорость передачи MIDI-данных:
  Serial1.begin(31250);
}
void loop() {
int x;
x = analogRead(pot) / 4 + 50; // Задаётся длительность паузы между нотами, регулируемая потенциометром.
noteOn(0x90, 1, 0x45);
delay(x); // задержка перед повтором
x = analogRead(pot) / 4 + 50;
noteOn(0x90, 2, 0x45);
delay(x); // задержка перед повтором
x = analogRead(pot) / 4 + 50;
noteOn(0x90, 3, 0x45);
delay(x); // задержка перед повтором
x = analogRead(pot) / 4 + 50;
noteOn(0x90, 4, 0x45);
delay(x); // задержка перед повтором
noteOn(0x90, 1, 0x45);
noteOn(0x90, 3, 0x45); 
x = analogRead(pot) / 4 + 50;
delay(x); // задержка перед повтором
x = analogRead(pot) / 4 + 50;
noteOn(0x90, 2, 0x45);
delay(x); // задержка перед повтором
x = analogRead(pot) / 4 + 50;
noteOn(0x90, 3, 0x45);
delay(x); // задержка перед повтором
x = analogRead(pot) / 4 + 50;
noteOn(0x90, 4, 0x45);
delay(x); // задержка перед повтором
  }

void noteOn(int cmd, int pitch, int velocity)
{
  Serial1.write(cmd);
  Serial1.write(pitch);
  Serial1.write(velocity);
}

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

В общем как правильно оптимизировать данный код? Как упростить, сократить и т.д.
Потому что там ещё много всего надо, это только пример вывода нот.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Вс авг 13, 2017 13:17:26 
Друг Кота

Карма: 49
Рейтинг сообщений: 523
Зарегистрирован: Чт фев 20, 2014 18:57:55
Сообщений: 18477
Рейтинг сообщения: 0
Потому что там ещё много всего надо, это только пример вывода нот.

Как там дедушка Ленин говорил... в общем изучать Си.

В работе не проверял, но суть примерно такая. В данном случае возможна передача двух нот подряд без паузы (я так понял по коду, что оно надо), ну и вообще произвольные паузы между нотами. Значение потенциометра не добавляется к базе, а умножается на нее (тут возможен косяк с типами переменных).

Спойлер
Код:
#define pot A0 // Потенциометр на вход A0

// структура нот
struct Notes {
  byte pitch;  //нота ?
  int  delay;  //базовый темп ?
};

// массив нот типа Notes
// парами - нота, пауза (базовая)
// если нота 0 - конец последовательности
Notes notes[10] = {1,50, 2,50, 3,50, 4,50, 1,0, 3,50, 2,50, 3,50, 4,50, 0,0};

// позиция в последовательности
int pos = 0;

void setup() {
pinMode(pot, INPUT);
//  скорость передачи MIDI-данных:
  Serial1.begin(31250);
}

void loop() {
float x;
// Задаётся коэффициент длительность паузы между нотами
x = float(analogRead(pot)) / 50.0;

// если доиграли - перескакиваем в начало
if (notes[pos].pitch == 0) pos = 0;

// отправляем очередную ноту
noteOn(0x90, notes[pos].pitch, 0x45);
delay(x * notes[pos].delay); // задержка

//переходим к следующей ноте
pos = pos + 1;
}

void noteOn(int cmd, int pitch, int velocity)
{
  Serial1.write(cmd);
  Serial1.write(pitch);
  Serial1.write(velocity);
}

_________________
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Вс авг 13, 2017 14:30:37 
Генеральный секретарь МЯУ
Аватар пользователя

Карма: 69
Рейтинг сообщений: 22
Зарегистрирован: Пн сен 03, 2007 18:24:27
Сообщений: 18416
Откуда: Россия. Омск.
Рейтинг сообщения: 0
Morroc писал(а):
Как там дедушка Ленин говорил... в общем изучать Си.

Ну это понятно! Просто хочется сперва сделать, а потом уже изучать :)))
Ну или хотябы изучать во время делания :)
Раньше немного изучал, уже позабывал всё. Буду вспоминать.
Morroc писал(а):
В работе не проверял, но суть примерно такая.

В работе работает, но диапазон регулировки темпа очень широкий. От ооочень медленного до сверхбыстрого, когда всё сливается в один шум. Ну у меня тоже сперва так было, я потом дополнительно 50 миллисекунд к задержкам прибавлял, чтобы задержка была не менее 50 миллисекунды. Тут пока не понял, как задержку ограничить.
Сейчас попробую вникнуть в суть кода, чего там и как. Буду разбираться :)
Спасибо!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Вс авг 13, 2017 14:41:50 
Друг Кота

Карма: 49
Рейтинг сообщений: 523
Зарегистрирован: Чт фев 20, 2014 18:57:55
Сообщений: 18477
Рейтинг сообщения: 0
У вас был + к паузам, а у меня * (чтобы темп масштабировался одинаково для всей последовательности). Поиграйтесь вот тут делителем x = float(analogRead(pot)) / 50.0; или например так x = float(analogRead(pot) + 50.0) / 50.0; чтобы ниже базовой пауза не была, я забыл просто :)) 100.0 или 200.0 уменьшит диапазон с бОльшей стороны

_________________
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Вс авг 13, 2017 15:07:42 
Генеральный секретарь МЯУ
Аватар пользователя

Карма: 69
Рейтинг сообщений: 22
Зарегистрирован: Пн сен 03, 2007 18:24:27
Сообщений: 18416
Откуда: Россия. Омск.
Рейтинг сообщения: 0
Morroc писал(а):
100.0 или 200.0 уменьшит диапазон с бОльшей стороны

Сделал вот так:
Код:
x = float(analogRead(pot)+100) / 250.0;

С большей стороны (максимальная задержка, самый медленный темп) стало нормально. Ну и минимальную задержку ограничило, но всё равно минимальная задержка слишком маленькая. Пробовал прибавлять более 100, но минимальная задержка меньше не становится, а максимальная увеличивается. Но уже можно пользоваться :)
Можно как-то прибавить +50 после делителя? Я в конце строчки пробовал просто +50 прописать, вообще какая-то лажа получилась.

Добавлено after 5 minutes 46 seconds:
Morroc писал(а):
Значение потенциометра не добавляется к базе, а умножается на нее (тут возможен косяк с типами переменных).

Я таки попробовал прибавить. Сперва даже не понял, вроде всё нормально, но какая-то лажа играется. А оно же и к нулевой паузе 50 миллисекунд добавилось :facepalm: :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Вс авг 13, 2017 15:18:39 
Друг Кота

Карма: 49
Рейтинг сообщений: 523
Зарегистрирован: Чт фев 20, 2014 18:57:55
Сообщений: 18477
Рейтинг сообщения: 0
Если так x = float(analogRead(pot)+100.0) / 250.0; то получается снизу диапазон где то 1/2 базы (100 / 250), а сверху *4 где то (1123 / 250). Саму базу можно поменять прям в массиве Notes notes[10] = {1,50, 2,50, 3,50, 4,50, 1,0, 3,50, 2,50, 3,50, 4,50, 0,0}; - вот тут 50 это базовая пауза в ms.

Ну это "я так вижу" задачу исходя из вашего кода, от музыки и секвенсеров я очень очень далек :))

_________________
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Хочу сделать секвенсор, есть некоторые вопросы.
СообщениеДобавлено: Вс авг 13, 2017 15:30:24 
Генеральный секретарь МЯУ
Аватар пользователя

Карма: 69
Рейтинг сообщений: 22
Зарегистрирован: Пн сен 03, 2007 18:24:27
Сообщений: 18416
Откуда: Россия. Омск.
Рейтинг сообщения: 0
Morroc писал(а):
а саму базу можно поменять прям в массиве

А, кстати да, что-то не подумал об этом.
Morroc писал(а):
в массиве Notes notes[10] = {1,50, 2,50, 3,50, 4,50, 1,0, 3,50, 2,50, 3,50, 4,50, 0,0};

А вот это "Notes notes[10]", это что? "Notes" - это тип массива, notes - название массива, а [10] - это количество нот в массиве? А если 10 не указывать?
Если делать несколько массивов, то для такого кода надо писать так?
Notes notes[10] {
Notes notes-2[17] {
Notes notes-3[14] {
И т.д.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 147 ]    , 2, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Fajustov, samand587, SfS, vovw и гости: 50


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y