Страница 2 из 3
Звуковой контроль событий
Добавлено: 28 июн 2022, 13:33
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
Еще его можно клонировать и сделать несколько блоков с разными мелодиями!
Как бы да, можно. Базовый редактор позволяет такую вольность. Но вообще это не правильно. Некорректно отсылать команду на один пин из разных мест. В случае если включить одновременно два таких блока, тоже будет ппц.
В новом редакторе этот глюк исключен и нельзя назначить один и тот же пин в разных блоках.
Звуковой контроль событий
Добавлено: 28 июн 2022, 15:01
Igor
Еще, тестирую пока, не знаю с чем связано, но в большом проекте мелодия звучит правильно, но с такими тормозами что ужас. Возможно где то косяк в проекте - у меня три датчика температуры, меню , дисплей 1602 и аж 9 плат получилось. На отдельных платах идет сравнение показаний датчиков - если больше 150гр и меньше 70 гр то на дисплей выводится off.
Не знаю решит ли проблему, нельзя ли блок оформить в функцию? Типа по условию вызывается функция , или это одно и то же?
И еще вопрос - у меня между платами все оформлено через переменные. Или лучше использовать клеммы?
Звуковой контроль событий
Добавлено: 28 июн 2022, 17:02
Dryundel
Igor писал(а): 28 июн 2022, 15:01
в большом проекте мелодия звучит правильно, но с такими тормозами что ужас.
Dryundel писал(а): 28 июн 2022, 13:33
И ПОМНИ!
Ровно в полночь Ардуинка превратится в тыкву!
Если длительность основного цикла превысит длительность ноты или такта, будет ппц.
ВРЕМЯ ЦИКЛА или что убивает ваш проект.
Началась борьба за выживание.

Трудности - основа прогресса.
Для того, что бы все получилось, достаточно прочитать всего половину форума.
Ну и разработки [ref]ecoins[/ref] Вам в помощь.
...
Звуковой контроль событий
Добавлено: 04 июл 2022, 09:21
Igor
Подскажи почему при компиляции при вклчении руского выдает такую ошибку - invalid use of template-name 'LCD_1602_RUS' without an argument list
Звуковой контроль событий
Добавлено: 04 июл 2022, 11:03
Dryundel
Igor писал(а): 04 июл 2022, 09:21
Подскажи почему при компиляции при вклчении руского выдает такую ошибку - invalid use of template-name 'LCD_1602_RUS' without an argument list
Это как то к звуковому контролю событий относится?
Звуковой контроль событий
Добавлено: 06 июл 2022, 05:18
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
И компилятор использовал первую, а в блоке указана вторая, и выдавал ошибку.
Просто удалил первую и все компилируется!
Далее буду проверять работу блока мелодия с дисплеем, отпишусь
Звуковой контроль событий
Добавлено: 06 июл 2022, 08:52
Dryundel
Igor писал(а): 06 июл 2022, 05:18
Я заменил блоки дисплея на ваши альтернативные.
Не факт что поможет. На самом деле они работают даже медленнее штатных. Тему надо изучать, а не по диагонали читать.
Звуковой контроль событий
Добавлено: 06 июл 2022, 16:43
Igor
Dryundel писал(а): 06 июл 2022, 08:52
Не факт что поможет. На самом деле они работают даже медленнее штатных
Может подскажите что сделать?
Я думал может перенести блок в функцию - произошло событие - вызывается функция -блок играет мелодию
Мне для проекта не важно что функция затормозит основной цикл, главное чтобы мелодия звучала без тормозов вне зависимости от времени цикла
Звуковой контроль событий
Добавлено: 06 июл 2022, 17:41
Dryundel
Igor писал(а): 06 июл 2022, 16:43
Мне для проекта не важно что функция затормозит основной цикл, главное чтобы мелодия звучала без тормозов вне зависимости от времени цикла
Мне ехать пофигу, главное что бы шашечки были.
С таким диагнозом не ко мне. Извините.
Прикупи медиа-модуль и хоть Робертино Лоретти на нем по сигналу запускай.
Звуковой контроль событий
Добавлено: 14 июл 2022, 11:04
Igor
[ref=#ff8000]Dryundel[/ref],
Разобрался как ноты играть,по МК, вы не указали-- это оказываться для каждой ноьы а не дяя всей медоии
Остался главный вопрос -мелодия играет большими тормозами в составе скетча
Нужели незя вызывть блок по какому либо событию?
Звуковой контроль событий
Добавлено: 14 июл 2022, 11:45
Dryundel
Igor писал(а): 14 июл 2022, 11:04
Остался главный вопрос -мелодия играет большими тормозами в составе скетча
А какая длительность нот и такта?
Звуковой контроль событий
Добавлено: 14 июл 2022, 13:17
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
Играет но с тормозами
И да, переделал блок на Миллисекунды
Звуковой контроль событий
Добавлено: 14 июл 2022, 14:15
Dryundel
Итак, разбор полетов.
1. Вы ставите в строке мелодии 300. Это 1/300 секунды это 3 миллисекунды.
Где Вы слышали такую музыку? Какой пианист вам сыграет 300 нот за секунду? Хорошо, Вы взяли электронного пианиста, но имейте же совесть. Я понимаю хотите услышать пилимпилим, Вам нравится этот перелив. Хорош извращаться. Это не квантовый компьютер.
Я уже писал, хотите воспроизвести любой звук, возьмите какой нибудь MP3 модуль и не изгаляйтесь над Ардуинкой.
2. Такт - это промежуток времени между началом нот. Вы видели метроном у пианистов? Вот это такая же штука, только электронная.
Его длительность надо ставить немного больше длительности ноты, а не от балды 305 мс. Паузой будет такт минус длительность ноты.
3. Об этом я уже тоже писал, но видимо кто то из модераторов потер. Как только длительность цикла вашей программы превысит длительность ноты или такта, Ардуинка превращается в тыкву. Вы как то соизмеряйте свои хотелки с возможностями контроллера, тем более когда пишете программу в FLProg.
4.
Igor писал(а): 14 июл 2022, 11:04
Нужели незя вызывть блок по какому либо событию?
Можно. Можно сделать цикл в функции. Только это будет равносильно delay() и все другое в это время не будет выполняться.
Про то, что Вам и нормально и фиг с ним, я уже слышал. Но это сиюминутный порыв рассуждений.
В это время ни один датчик не сможет опрашиваться, ни одна кнопка, ее нажатие не может быть считано, вообще ничего не будет работать кроме вашего пилимпилим. Другие блоки тоже используют тайминги и их алгоритм сломается.
А знаете что скажет watchdog, он точно гавкнет на вашу музычку. Ну об этом наверное еще рано.
[spoiler=Офтоп]И засунули сибирские мужики железный лом в японскую лесопилку. Дриньк - сказала лесопилка. Нууу ё... - сказали мужики.[/spoiler]
Звуковой контроль событий
Добавлено: 15 июл 2022, 12:13
Igor
Dryundel писал(а): 14 июл 2022, 14:15
Вы ставите в строке мелодии 300. Это 1/300 секунды это 3 миллисекунды.
С чего это вы решили? это как раз 300 миллисекунд, мелодия из 5 нот играет 1,5 секунды
Dryundel писал(а): 14 июл 2022, 14:15
Я уже писал, хотите воспроизвести любой звук, возьмите какой нибудь MP3 модуль и не изгаляйтесь над Ардуинкой.
МР3 это уже перебор
Я делаю термометр который при превышении заданной температуры сыграет 5 раз по пять нот.
И зачем мне во время игры снимать показания с датчика или давить кнопки - основной цикл в это время мне не нужен.
Звуковой контроль событий
Добавлено: 15 июл 2022, 12:42
Dryundel
Igor писал(а): 15 июл 2022, 12:13
С чего это вы решили? это как раз 300 миллисекунд, мелодия из 5 нот играет 1,5 секунды
С того, что я делал именно так. А если Вы переделали, то я вроде бы не обязан догадаться об этом.
Igor писал(а): 15 июл 2022, 12:13
МР3 это уже перебор
Igor писал(а): 15 июл 2022, 12:13
И зачем мне во время игры снимать показания с датчика или давить кнопки - основной цикл в это время
мне не нужен.
Ключевое слово здесь
мне, но образовано оно от слова
сегодня.
Завтра, вам потребуется срочно выключить кнопкой прибор, когда заиграет сигнал тревоги.
А послезавтра вы захотите использовать какой нибудь watchdog и будете сильно разочарованы тем, что контроллер уходит в бесконечный ребут при использовании блока.
Ищите способы сократить время основного цикла.
Звуковой контроль событий
Добавлено: 15 июл 2022, 13:17
Igor
Dryundel писал(а): 15 июл 2022, 12:42
Ключевое слово здесь мне, но образовано оно от слова сегодня.
Завтра, вам потребуется срочно выключить кнопкой прибор, когда заиграет сигнал тревоги.
А послезавтра вы захотите использовать какой нибудь watchdog и будете сильно разочарованы тем, что контроллер уходит в бесконечный ребут при использовании блока.
Ничего не захочу Это будет законченное устройство 2 в 1 - термометр для коптилки на газовой плите который будет сигнализировать о превышении или понижении температуры
И термостат с гистерезисом для изготовления йогурта. Он не будет использовать блок мелодии. Работать они будут конечно по отдельности.
Звуковой контроль событий
Добавлено: 15 июл 2022, 14:07
Dryundel
Aaaaaaaaaaaaaaaaaaaaaa!!!
Проект давай.
Звуковой контроль событий
Добавлено: 15 июл 2022, 16:26
Rovki
Dryundel писал(а): 15 июл 2022, 14:07
Aaaaaaaaaaaaaaaaaaaaaa!!!
Проект давай.
И Йогурта побольше

Звуковой контроль событий
Добавлено: 15 июл 2022, 17:19
Igor
Rovki писал(а): 15 июл 2022, 16:26
И Йогурта побольше
Вы зря смеётесь - покупается пленка на 220в для отопления( не помню как называется, то ли инфракрасная то ли просто графитовая, в общем прозрачная и с черными полосками которые и греют)
Достаточно пол метра, сворачивается в рулон и туда как раз входит трехлитровая банка. Я еще обернул термоизоляцией.
Покупаете молоко и закваску - либо в аптеке, либо просто в магазине - хоть кефир, хоть сметану, хоть йогурт
10 часов обязательно при температуре 38 гр и три литра полезного напитка готово!
Звуковой контроль событий
Добавлено: 15 июл 2022, 17:28
Dryundel
Igor писал(а): 15 июл 2022, 17:19
Покупаете молоко и закваску - либо в аптеке, либо просто в магазине - хоть кефир, хоть сметану, хоть йогурт
10 часов обязательно при температуре 38 гр и три литра полезного напитка готово!
Да ладно!
У меня как то проще. Берешь молоко, ставишь на стол, на следующий день полезный напиток готов. А если сварить, то и творог прекрасный.
Вот любите Вы поизвращаться. И с заквасками в том числе. Еще и импортные небось.
