Звуковой контроль событий

пользовательские блоки для работы с аудио/видео
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 24 раза

Звуковой контроль событий

Сообщение Dryundel »

Igor писал(а): 28 июн 2022, 12:46Dryundel, И еще вопрос нельзя ли сделать длительность такта еще меньше чем 100мс? Ноты то можно а вот паузы уже не получается.
В описании "пауза между нотами" стоит в скобках. На самом деле это длительность такта. Это не одно и то же.
Я уже писал:
Dryundel писал(а): 26 июн 2022, 09:46 Ерунда может начинаться вопервых в том случае, если пауза меньше чем длина ноты. К примеру 4 - это 1/4 секунды = 250 мс. Поэтому паузу надо ставить чуть больше.

Это время между началом звучания каждой ноты.
Вы можете вообще убрать формулу вычисления долей ноты. Это больше для тех кто привык к музыкальным терминам.
И вместо: 1000 / Melody[ArrayCounter + 1] оставить только Melody[ArrayCounter + 1]
Выкинуть числитель.
И тогда будете задавать длительность нот в миллисекундах.

НО! ОБЯЗАТЕЛЬНО!
Длительность такта должна быть чуть длиннее чем длительность ноты. Хотя бы на 1мс, иначе функция tone() не справляется и не успевает переустанавливать частоту.

Специально проверил. Длина нот - 20мс, длина такта 21мс. Все отлично работает.

И ПОМНИ!
Ровно в полночь Ардуинка превратится в тыкву!
Если длительность основного цикла превысит длительность ноты или такта, будет ппц.

Отправлено спустя 5 минут 41 секунду:
Igor писал(а): 28 июн 2022, 12:52 Еще его можно клонировать и сделать несколько блоков с разными мелодиями!
Как бы да, можно. Базовый редактор позволяет такую вольность. Но вообще это не правильно. Некорректно отсылать команду на один пин из разных мест. В случае если включить одновременно два таких блока, тоже будет ппц.
В новом редакторе этот глюк исключен и нельзя назначить один и тот же пин в разных блоках.
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Звуковой контроль событий

Сообщение Igor »

Еще, тестирую пока, не знаю с чем связано, но в большом проекте мелодия звучит правильно, но с такими тормозами что ужас. Возможно где то косяк в проекте - у меня три датчика температуры, меню , дисплей 1602 и аж 9 плат получилось. На отдельных платах идет сравнение показаний датчиков - если больше 150гр и меньше 70 гр то на дисплей выводится off.
Не знаю решит ли проблему, нельзя ли блок оформить в функцию? Типа по условию вызывается функция , или это одно и то же?
И еще вопрос - у меня между платами все оформлено через переменные. Или лучше использовать клеммы?
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 24 раза

Звуковой контроль событий

Сообщение Dryundel »

Igor писал(а): 28 июн 2022, 15:01 в большом проекте мелодия звучит правильно, но с такими тормозами что ужас.
Dryundel писал(а): 28 июн 2022, 13:33 И ПОМНИ!
Ровно в полночь Ардуинка превратится в тыкву!
Если длительность основного цикла превысит длительность ноты или такта, будет ппц.
ВРЕМЯ ЦИКЛА или что убивает ваш проект.

Началась борьба за выживание. :) Трудности - основа прогресса.
Для того, что бы все получилось, достаточно прочитать всего половину форума.
Ну и разработки [ref]ecoins[/ref] Вам в помощь. :D
...
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Звуковой контроль событий

Сообщение Igor »

Подскажи почему при компиляции при вклчении руского выдает такую ошибку - invalid use of template-name 'LCD_1602_RUS' without an argument list
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 24 раза

Звуковой контроль событий

Сообщение Dryundel »

Igor писал(а): 04 июл 2022, 09:21 Подскажи почему при компиляции при вклчении руского выдает такую ошибку - invalid use of template-name 'LCD_1602_RUS' without an argument list
Это как то к звуковому контролю событий относится?
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Звуковой контроль событий

Сообщение Igor »

Dryundel писал(а): 04 июл 2022, 11:03 Это как то к звуковому контролю событий относится?
А как же, мелодия играет с дикими паузами, вы выше писали почему тормозит скетч - из за штатного блока дисплея. Я заменил блоки дисплея на ваши альтернативные. Хотелось бы русский язык но компиляция не проходит.

Отправлено спустя 2 часа 3 минуты 55 секунд:
Igor писал(а): 04 июл 2022, 09:21 Подскажи почему при компиляции при вклчении руского выдает такую ошибку - invalid use of template-name 'LCD_1602_RUS' without an argument list
С дисплеем разобрался - может кому пригодится
В IDE почему то были 2 библиотеки
LCD_1602_RUS_ALL
и
LCD_1602_RUS_ALL-master
И компилятор использовал первую, а в блоке указана вторая, и выдавал ошибку.
Просто удалил первую и все компилируется!
Далее буду проверять работу блока мелодия с дисплеем, отпишусь
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 24 раза

Звуковой контроль событий

Сообщение Dryundel »

Igor писал(а): 06 июл 2022, 05:18 Я заменил блоки дисплея на ваши альтернативные.
Не факт что поможет. На самом деле они работают даже медленнее штатных. Тему надо изучать, а не по диагонали читать.
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Звуковой контроль событий

Сообщение Igor »

Dryundel писал(а): 06 июл 2022, 08:52 Не факт что поможет. На самом деле они работают даже медленнее штатных
Может подскажите что сделать?
Я думал может перенести блок в функцию - произошло событие - вызывается функция -блок играет мелодию
Мне для проекта не важно что функция затормозит основной цикл, главное чтобы мелодия звучала без тормозов вне зависимости от времени цикла
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 24 раза

Звуковой контроль событий

Сообщение Dryundel »

Igor писал(а): 06 июл 2022, 16:43 Мне для проекта не важно что функция затормозит основной цикл, главное чтобы мелодия звучала без тормозов вне зависимости от времени цикла
Мне ехать пофигу, главное что бы шашечки были.
:smile171: :smile171: :smile171:
С таким диагнозом не ко мне. Извините.

Прикупи медиа-модуль и хоть Робертино Лоретти на нем по сигналу запускай.
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Звуковой контроль событий

Сообщение Igor »

[ref=#ff8000]Dryundel[/ref],


Разобрался как ноты играть,по МК, вы не указали-- это оказываться для каждой ноьы а не дяя всей медоии

Остался главный вопрос -мелодия играет большими тормозами в составе скетча
Нужели незя вызывть блок по какому либо событию?
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 24 раза

Звуковой контроль событий

Сообщение Dryundel »

Igor писал(а): 14 июл 2022, 11:04 Остался главный вопрос -мелодия играет большими тормозами в составе скетча
А какая длительность нот и такта?
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Звуковой контроль событий

Сообщение Igor »

[ref=#ff8000]Dryundel[/ref], Сделал так
NOTE_C4, 300, NOTE_D4, 300, NOTE_E4, 300, NOTE_F4, 300, NOTE_G4, 300,0,300
Нот = 6
Длительность такта = 305
Кол нот =6

Играет но с тормозами

И да, переделал блок на Миллисекунды
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 24 раза

Звуковой контроль событий

Сообщение Dryundel »

Итак, разбор полетов.
1. Вы ставите в строке мелодии 300. Это 1/300 секунды это 3 миллисекунды.
Где Вы слышали такую музыку? Какой пианист вам сыграет 300 нот за секунду? Хорошо, Вы взяли электронного пианиста, но имейте же совесть. Я понимаю хотите услышать пилимпилим, Вам нравится этот перелив. Хорош извращаться. Это не квантовый компьютер.
Я уже писал, хотите воспроизвести любой звук, возьмите какой нибудь MP3 модуль и не изгаляйтесь над Ардуинкой.

2. Такт - это промежуток времени между началом нот. Вы видели метроном у пианистов? Вот это такая же штука, только электронная.
Его длительность надо ставить немного больше длительности ноты, а не от балды 305 мс. Паузой будет такт минус длительность ноты.

3. Об этом я уже тоже писал, но видимо кто то из модераторов потер. Как только длительность цикла вашей программы превысит длительность ноты или такта, Ардуинка превращается в тыкву. Вы как то соизмеряйте свои хотелки с возможностями контроллера, тем более когда пишете программу в FLProg.

4.
Igor писал(а): 14 июл 2022, 11:04 Нужели незя вызывть блок по какому либо событию?
Можно. Можно сделать цикл в функции. Только это будет равносильно delay() и все другое в это время не будет выполняться.
Про то, что Вам и нормально и фиг с ним, я уже слышал. Но это сиюминутный порыв рассуждений.
В это время ни один датчик не сможет опрашиваться, ни одна кнопка, ее нажатие не может быть считано, вообще ничего не будет работать кроме вашего пилимпилим. Другие блоки тоже используют тайминги и их алгоритм сломается.
А знаете что скажет watchdog, он точно гавкнет на вашу музычку. Ну об этом наверное еще рано.

[spoiler=Офтоп]И засунули сибирские мужики железный лом в японскую лесопилку. Дриньк - сказала лесопилка. Нууу ё... - сказали мужики.[/spoiler]
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Звуковой контроль событий

Сообщение Igor »

Dryundel писал(а): 14 июл 2022, 14:15 Вы ставите в строке мелодии 300. Это 1/300 секунды это 3 миллисекунды.
С чего это вы решили? это как раз 300 миллисекунд, мелодия из 5 нот играет 1,5 секунды
Dryundel писал(а): 14 июл 2022, 14:15 Я уже писал, хотите воспроизвести любой звук, возьмите какой нибудь MP3 модуль и не изгаляйтесь над Ардуинкой.
МР3 это уже перебор
Я делаю термометр который при превышении заданной температуры сыграет 5 раз по пять нот.
И зачем мне во время игры снимать показания с датчика или давить кнопки - основной цикл в это время мне не нужен.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 24 раза

Звуковой контроль событий

Сообщение Dryundel »

Igor писал(а): 15 июл 2022, 12:13 С чего это вы решили? это как раз 300 миллисекунд, мелодия из 5 нот играет 1,5 секунды
С того, что я делал именно так. А если Вы переделали, то я вроде бы не обязан догадаться об этом.
Igor писал(а): 15 июл 2022, 12:13 МР3 это уже перебор
Igor писал(а): 15 июл 2022, 12:13 И зачем мне во время игры снимать показания с датчика или давить кнопки - основной цикл в это время мне не нужен.
Ключевое слово здесь мне, но образовано оно от слова сегодня.
Завтра, вам потребуется срочно выключить кнопкой прибор, когда заиграет сигнал тревоги.
А послезавтра вы захотите использовать какой нибудь watchdog и будете сильно разочарованы тем, что контроллер уходит в бесконечный ребут при использовании блока.

Ищите способы сократить время основного цикла.
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Звуковой контроль событий

Сообщение Igor »

Dryundel писал(а): 15 июл 2022, 12:42 Ключевое слово здесь мне, но образовано оно от слова сегодня.
Завтра, вам потребуется срочно выключить кнопкой прибор, когда заиграет сигнал тревоги.
А послезавтра вы захотите использовать какой нибудь watchdog и будете сильно разочарованы тем, что контроллер уходит в бесконечный ребут при использовании блока.
Ничего не захочу Это будет законченное устройство 2 в 1 - термометр для коптилки на газовой плите который будет сигнализировать о превышении или понижении температуры
И термостат с гистерезисом для изготовления йогурта. Он не будет использовать блок мелодии. Работать они будут конечно по отдельности.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 24 раза

Звуковой контроль событий

Сообщение Dryundel »

Aaaaaaaaaaaaaaaaaaaaaa!!!
Проект давай.
Аватара пользователя
Rovki
Полковник
Сообщения: 5722
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 68 раз
Поблагодарили: 217 раз
Контактная информация:

Звуковой контроль событий

Сообщение Rovki »

Dryundel писал(а): 15 июл 2022, 14:07 Aaaaaaaaaaaaaaaaaaaaaa!!!
Проект давай.
И Йогурта побольше :D
Электронщик до мозга костей и не только
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Звуковой контроль событий

Сообщение Igor »

Rovki писал(а): 15 июл 2022, 16:26 И Йогурта побольше :D
Вы зря смеётесь - покупается пленка на 220в для отопления( не помню как называется, то ли инфракрасная то ли просто графитовая, в общем прозрачная и с черными полосками которые и греют)
Достаточно пол метра, сворачивается в рулон и туда как раз входит трехлитровая банка. Я еще обернул термоизоляцией.
Покупаете молоко и закваску - либо в аптеке, либо просто в магазине - хоть кефир, хоть сметану, хоть йогурт
10 часов обязательно при температуре 38 гр и три литра полезного напитка готово!
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 24 раза

Звуковой контроль событий

Сообщение Dryundel »

Igor писал(а): 15 июл 2022, 17:19 Покупаете молоко и закваску - либо в аптеке, либо просто в магазине - хоть кефир, хоть сметану, хоть йогурт
10 часов обязательно при температуре 38 гр и три литра полезного напитка готово!
Да ладно! :shok:
У меня как то проще. Берешь молоко, ставишь на стол, на следующий день полезный напиток готов. А если сварить, то и творог прекрасный.
Вот любите Вы поизвращаться. И с заквасками в том числе. Еще и импортные небось. :D
Ответить

Вернуться в «Звук и видео»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя