MIDI - Саксофон - пробую сделать

Я буду ваять всякую чушь, а Вы меня пинайте в нужную сторону

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 476
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 54
Откуда: Омск

MIDI - Саксофон - пробую сделать

#41

Сообщение kulibinsvv » 27.04.2021{, 13:33}

Судя по фотографиям, у вас на Leonardo перепутаны местами sda/scl.

Отправлено спустя 11 минут 29 секунд:
На фото Uno - красный провод приходит на А5 - это SCL. А на фото Leonardo, этот же провод, приходит на SDA.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

konsys
Сержант
Сообщения: 103
Зарегистрирован: 13.07.2017{, 23:21}
Репутация: 0
Контактная информация:

MIDI - Саксофон - пробую сделать

#42

Сообщение konsys » 27.04.2021{, 20:11}

kulibinsvv писал(а):
27.04.2021{, 13:45}
Судя по фотографиям, у вас на Leonardo перепутаны местами sda/scl.
Да то понятно, это я для фото - невнимательно

смысл вот в чем, не работает блок управления уровнем миди
точнее при наличии блоков с BMP280 миди любые нажатия кнопок - результат OFF
без этого блока - включения и выключения проходят нормально
poluchenie not-Leonardo_1-s-280-001.flp
(1.44 МБ) 27 скачиваний

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

MIDI - Саксофон - пробую сделать

#43

Сообщение edyapd » 28.04.2021{, 04:14}

konsys писал(а):
26.04.2021{, 22:52}
к плате подключаю датчик bmp280 по I2C- и акрдуино леонардо перестает определяться в компе
konsys писал(а):
26.04.2021{, 22:52}
создаю код датчика давления и запускаю на UNO - для изменения уровня звука
работает как мне надо
konsys писал(а):
27.04.2021{, 20:11}
не работает блок управления уровнем миди
точнее при наличии блоков с BMP280 миди любые нажатия кнопок - результат OFF
без этого блока - включения и выключения проходят нормально
Вот как тут разобраться, чтобы помочь? В одном случаи вы пишите про физическое подключение, во втором про вставку блока в проект. Но это же не одно и то же. К примеру вы можете подключить датчик физически, но не опрашивать его программно. Или проблемы только с Леонардо, а с УНО всё нормально?

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 476
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 54
Откуда: Омск

MIDI - Саксофон - пробую сделать

#44

Сообщение kulibinsvv » 28.04.2021{, 05:57}

konsys, поддержу edyapd, вы постоянно даёте либо не полную, либо противоречивую информацию. Сложно понять, что у вас происходит.
Давайте вы все свои дальнейшие эксперименты будите проводить только с платой Leonardo.
Для рисования схем, если вы не специалист в области электроники, существует прекрасный редактор Fritzing. Для личного использования абсолютно бесплатный.
Для понимания куда подключиться к контроллеру, существуют карты распиновки - Arduino Leonardo pinout.
Хотя девиз программы FLprog: "Программирование для не программистов", никто не отменял необходимости знания базовых основ программирования. Таких как алгоритм, последовательность выполнения операций, типы данных и т.д.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

konsys
Сержант
Сообщения: 103
Зарегистрирован: 13.07.2017{, 23:21}
Репутация: 0
Контактная информация:

MIDI - Саксофон - пробую сделать

#45

Сообщение konsys » 28.04.2021{, 11:09}

edyapd писал(а):
28.04.2021{, 04:14}
Вот как тут разобраться, чтобы помочь? В одном случаи вы пишите про физическое подключение, во втором про вставку блока в проект. Но это же не одно и то же. К примеру вы можете подключить датчик физически, но не опрашивать его программно. Или проблемы только с Леонардо, а с УНО всё нормально?
Спасибо, что хотите помочь.
Я мечусь между двумя платами, потому что НЕ ЗНАЮ как на Леонардо отправить информацию в UART
для контроля данных в мониторе порта.
edyapd писал(а):
28.04.2021{, 04:14}
Или проблемы только с Леонардо, а с УНО всё нормально?
Вы абсолютно правильно поставили вопрос
Да в Уно все в порядке - работает как надо
В Леонардо не работает (но влеонардо есть тот код который не работает в Уно
ПОЯСНЮ
1) В Леонардо работает код с мультиплексором и МИДИ (назовем его "МИДИ")
poluchenie not-Leonardo_2.flp
(642.25 КБ) 23 скачивания
2) В Уно работает код с датчиком давления (назовем его "Уровень")
BMP-280.flp
(931.46 КБ) 22 скачивания
3) если код "Уровень" скопировать в Леонардо с "МИДИ" то МИДИ перестает работать - не передается уровень звука
(выход с блока Polygon кода"Уровень" подается на вход Volume блока Midi-note кода "МИДИ"
kulibinsvv писал(а):
28.04.2021{, 05:57}
Давайте вы все свои дальнейшие эксперименты будите проводить только с платой Leonardo.
Скажите как вывести с Леонардо инфу в UART, продолжу исключительно с Леонардо



Если я и сейчас нельзя понять то, что я написал, то давайте так
Вы говорите , какую инфу надо предоставить, и я ее выложу.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

MIDI - Саксофон - пробую сделать

#46

Сообщение edyapd » 28.04.2021{, 13:07}

konsys писал(а):
28.04.2021{, 11:27}
В Леонардо работает код с мультиплексором и МИДИ (назовем его "МИДИ")
konsys писал(а):
28.04.2021{, 11:27}
Скажите как вывести с Леонардо инфу в UART, продолжу исключительно с Леонардо
Вот эти две фразы у меня не стыкуются. С одной стороны, вы говорите, что всё работает, а с другой, что у вас не выводится информация в СОМ-порт. Но команды от МИДИ блока идут как рав в СОМ-порт.

А громкость у вас не регулируется, потому как МИДИ блок отправляет команду при высоком уровне на входе плейон. А у вас там высокий уровень только в момент переключения нот.

konsys
Сержант
Сообщения: 103
Зарегистрирован: 13.07.2017{, 23:21}
Репутация: 0
Контактная информация:

MIDI - Саксофон - пробую сделать

#47

Сообщение konsys » 28.04.2021{, 14:22}

edyapd писал(а):
28.04.2021{, 13:07}
Вот эти две фразы у меня не стыкуются. С одной стороны, вы говорите, что всё работает, а с другой, что у вас не выводится информация в СОМ-порт. Но команды от МИДИ блока идут как рав в СОМ-порт.
Проверку работы мультиплексора с Миди я проверяю а программе MIDI-OX - так как сигналы поступают в блок midi-note
а как проверить сигналы "Уровень" на Леонардо - не знаю.
edyapd писал(а):
28.04.2021{, 13:07}
А громкость у вас не регулируется, потому как МИДИ блок отправляет команду при высоком уровне на входе плейон. А у вас там высокий уровень только в момент переключения нот.
Ваше сообщение заставляет задуматься....
что же получается
высокий уровень в плейон должен отправляться каждый раз когда идет изменение уровня сигнала volume?

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

MIDI - Саксофон - пробую сделать

#48

Сообщение edyapd » 28.04.2021{, 16:12}

Любое изменение: нота, громкость, канал (или чего там)

konsys
Сержант
Сообщения: 103
Зарегистрирован: 13.07.2017{, 23:21}
Репутация: 0
Контактная информация:

MIDI - Саксофон - пробую сделать

#49

Сообщение konsys » 28.04.2021{, 22:20}

Странно как то
похоже не работает датчик давления в Леонардо
а как проверить работоспособность, не знаю
СпойлерПоказать
на картинке bme280
017.jpg
скетч
Leonardo_280-001.flp
(987.09 КБ) 24 скачивания

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

MIDI - Саксофон - пробую сделать

#50

Сообщение edyapd » 29.04.2021{, 03:22}

А питание самой платы Леонардо 5В? Не плохо было бы установить согласование уровней сигналов.

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 476
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 54
Откуда: Омск

MIDI - Саксофон - пробую сделать

#51

Сообщение kulibinsvv » 29.04.2021{, 07:12}

konsys писал(а):
28.04.2021{, 22:20}
как проверить работоспособность, не знаю
Проверить можно используя примеры библиотеки Arduino IDE.Показать
Безымянный.png
Безымянный 1.png
Безымянный 2.png
Отправлено спустя 1 минуту 10 секунд:
Результат наблюдаем в мониторе СОМ порта на скорости 115200 бод.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

konsys
Сержант
Сообщения: 103
Зарегистрирован: 13.07.2017{, 23:21}
Репутация: 0
Контактная информация:

MIDI - Саксофон - пробую сделать

#52

Сообщение konsys » 02.05.2021{, 18:40}

Добрый день.
С праздником.
Решил я отказаться от BMP280, так и не смог запустить его по I2C на Леонардо.
Вместо него использую датчик давления с АЦП HX710B.
018.jpg
018.jpg (55.31 КБ) 380 просмотров
Работает.
poluchenie not-Leonardo_HX710B.flp
(811.31 КБ) 23 скачивания
Так что в Итоге я запустил одноголосый миди синтезатор, управляемый силой дыхания и комбинацией кнопок.
НО
Все не так гладко.
Основная проблема в том, что каждый раз, как идет изменение давления, посылается сигнал включения ноты.
Это можно сравнить с быстрым и многократным нажатием клавиши разной силы (громкости), что не соответствует желаемому результату (реальному звучанию духового инструмента).
Пришел к выводу, что блок миди не подходит для моих целей, или я что-то не так делаю.
Может быть, ВЫ знаете иной блок вывода ноты МИДИ?
Или как-то можно усовершенствовать имеющийся?

Я нашел работающий код миди саксофона.
Можете извлечь из него в FLPROG блок МИДИ с отправкой ноты?
KLIK_KLIKsophone_001.zip
(7.85 КБ) 27 скачиваний

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

MIDI - Саксофон - пробую сделать

#53

Сообщение edyapd » 02.05.2021{, 19:31}

konsys, как вы запрограммировали, так и работает. Посмотрите внимательно. Как только у вас появилось давление и превысило какой-то установленный порог, так на выходе компаратора появляется "1", которая проходит на вход "playon". И соответственно в каждом цикле отправляется сообщение в СОМ-порт.
изображение_2021-05-02_233048.png
изображение_2021-05-02_233048.png (10.63 КБ) 375 просмотров

konsys
Сержант
Сообщения: 103
Зарегистрирован: 13.07.2017{, 23:21}
Репутация: 0
Контактная информация:

MIDI - Саксофон - пробую сделать

#54

Сообщение konsys » 02.05.2021{, 19:34}

edyapd писал(а):
02.05.2021{, 19:31}
konsys, как вы запрограммировали, так и работает. Посмотрите внимательно. Как только у вас появилось давление и превысило какой-то установленный порог, так на выходе компаратора появляется "1", которая проходит на вход "playon".
Да, именно так я и сделал.
Но как мне сделать иначе?
Ведь иначе не отправляется значение VOLUME.

Dmabst
Сержант
Сообщения: 149
Зарегистрирован: 08.12.2018{, 16:49}
Репутация: 10
Имя: Дмитрий

MIDI - Саксофон - пробую сделать

#55

Сообщение Dmabst » 02.05.2021{, 20:23}

konsys писал(а):
02.05.2021{, 18:40}
Основная проблема в том, что каждый раз, как идет изменение давления, посылается сигнал включения ноты.
Это можно сравнить с быстрым и многократным нажатием клавиши разной силы (громкости), что не соответствует желаемому результату (реальному звучанию духового инструмента).
Пришел к выводу, что блок миди не подходит для моих целей, или я что-то не так делаю.
Вы напишите пошаговый алгоритм извлечения звука саксофона (без электроники) и сравните с вашим алгоритмом созданным в FLProg. Вероятно они не совпадают - не соблюдены какие-то дополнительные условия.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

MIDI - Саксофон - пробую сделать

#56

Сообщение edyapd » 02.05.2021{, 20:41}

konsys писал(а):
02.05.2021{, 19:34}
Но как мне сделать иначе?
Отправляться должно только при изменении Volume, а не в каждом цикле. При этом желательно сделать, чтобы оправлялось при изменении более какого-то значения. Например, если будет значение 5 и изменится на 6, то возможно вы этого не услышите на слух. И тогда стоит отправлять скажем если изменения от текущей +-5(чисто для примера, надо подбирать может больше, может меньше).

konsys
Сержант
Сообщения: 103
Зарегистрирован: 13.07.2017{, 23:21}
Репутация: 0
Контактная информация:

MIDI - Саксофон - пробую сделать

#57

Сообщение konsys » 02.05.2021{, 21:29}

edyapd писал(а):
02.05.2021{, 20:41}
Отправляться должно только при изменении Volume, а не в каждом цикле. При этом желательно сделать, чтобы оправлялось при изменении более какого-то значения. Например, если будет значение 5 и изменится на 6, то возможно вы этого не услышите на слух. И тогда стоит отправлять скажем если изменения от текущей +-5(чисто для примера, надо подбирать может больше, может меньше).
Уважаемый edyapd, я делал по разному.
отправлял 1 при изменении уровня числа VOLUME

Суть в том, что при при неизменной ноте и отправке в playon "1" при изменении уровня - блок миди перегружает ноту.
хоть через 5 хоть через 10 - все равно будет как еще одно "нажатие клавиши"
А если не отправлять ничего в playon, то и изменения уровня нет.
Вот я и пришел к выводу , что надо либо переписать алгоритм работы блока МИДИ, либо найти блок миди с иным алгоритмом.
За сим к почтенным форумчанам и обращаюсь.

Dmabst
Сержант
Сообщения: 149
Зарегистрирован: 08.12.2018{, 16:49}
Репутация: 10
Имя: Дмитрий

MIDI - Саксофон - пробую сделать

#58

Сообщение Dmabst » 02.05.2021{, 21:49}

В Akai EWI 4000S присутствует какой-то непрерывный контроллер силы воздушной струи-громкости.

konsys
Сержант
Сообщения: 103
Зарегистрирован: 13.07.2017{, 23:21}
Репутация: 0
Контактная информация:

MIDI - Саксофон - пробую сделать

#59

Сообщение konsys » 02.05.2021{, 22:21}

edyapd писал(а):
02.05.2021{, 20:41}
Отправляться должно только при изменении Volume, а не в каждом цикле.
Кажется есть идея.
Ранее, когда на playon было true
при переключении нот - все ноты звучали все время.
То есть, нажал одну - она зазвучала, нажал другую - она тоже зазвучала, но и первая не прекратила звучать и т д.

Что если
после включения ноты, в следующем такте программы, переключать на несуществующую ноту (0) и на ней повышать уровень звука?

PS
наверное не получится, как тогда отключать предыдущую?

Отправлено спустя 23 минуты 3 секунды:
Проверил, идея не работает


=============================================================================
Отправлено спустя 2 часа 59 минут 7 секунд:
Решил начать от обратного
вот схема подключения
019.jpg
вот как это звучит
0001.mp3
(251.03 КБ) 20 скачиваний
------------------------------------------------

Отправлено спустя 8 минут 20 секунд:
при такой схеме подключения
020.jpg
такой звук
0021.mp3
(420.98 КБ) 26 скачиваний

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

MIDI - Саксофон - пробую сделать

#60

Сообщение edyapd » 03.05.2021{, 06:35}

konsys, я как бы далёк от музыки, от слова совсем. А поэтому пришлось Гуглить, что такое Velosity. И вот что я нашёл:
Velosity
Значение параметра velosity характеризует силу удара по клавише. Устройства, оснащенные датчиками скорости нажатия клавиши, измеряют скорость, с которой клавиша при нажатии опускается вниз, и присваивают значение в пределах от 0 до 127 параметру velocity, указывая, таким образом, скорость атаки. (Некоторые инструменты реагируют также на скорость отпускания клавиши; для описания скорости отпускания клавиши используется параметр release velocity.) Самый явный смысл параметра velocity заключается в том, что его значение задает громкость звука в зависимости от силы удара по клавише. Но, поскольку в реальных инструментах при изменении силы удара по клавише изменяется не только громкость, но и спектр звука, параметр velocity позволяет корректировать также другие параметры звука. Например, в подключаемом модуле виртуального пианино предусмотрены аудиообразцы звука одной и той же ноты реального пианино, сыгранной по-разному, и в зависимости от значения параметра velocity в поступившем MIDI-сообщении подключаемый модуль выберет самый подходящий из записанных аудиообразцов, сделав звук более реалистичным. Характер и уровень реагирования инструмента на изменение параметра velocity зависит от конкретного инструмента, но не от MIDI-сообщения. Параметру velocity присуще еще одно существенное ограничение, обусловленное тем, что MIDI-технология по своему назначению является технологией моделирования исполнения на клавишном инструменте. Поскольку в MIDI-сообщениях нот используются только два параметра — attack velocity и release velocity,— MIDI-инструменты лучше всего моделируют характер исполнения, присущий пианино.
То есть этот параметр кроме влияния на громкость влияет и на что-то другое. Возможно поэтому и происходит изменение (перезагрузка) ноты.

Ответить

Вернуться в «Помогите, а то я "нимагу"»