Just an idea, not a real need (but it can be fun, and i will use it for sure)
something like a led_mode=blink for .NGC with associate parameter blink:on:100:off:300 for time in ms for each led state?
or defined time with 2 value map
or just 3 “blink” predefined mod, blink_slow, blink_mid, blink_fast
Anyway, the idea is to have a blinking led function when led is on, because a NGR script (set led and delay) is stopped a soon as another section is called
Nobody interested? Or I miss some NG strategy already available to perform this?
I’m just thinking out loud, but maybe it’s possible to use the dimmed= with very slow PWM setting, if the frequency is not locked by the sr clock ?
The leds do that on the matrix in the midi box sid. Maybe you could look in the code there for inspiration. Also there is the beat led on the midi box sequencer to look at as example.
I created some metas by myself already. So aren’t you able to create a meta, that switches an LED (which is part of the meta-event) on and off with a delay of x-ms? I don’t see why this shouldn’t work… but I never tried it by myself… you could even add the delay to the meta-message. It’s very easy to set up. You just have to edit the mios32_event.c and .h. You can use an already existing meta as example.
I tried it and I had no success. The first problem I ran into was, that the MIOS32_DELAY_Wait_uS only allows values up to 65535us… not much. I will do some more tests.
///////////////////////////////////////////////////////////////////////////// //! Use this function to get the delay which has passed between a given and //! and current timestamp. //! //! Usage Example: //! \code //! u32 captured\_timestamp = MIOS32\_TIMESTAMP\_GetDelay(); //! // ... //! // ... do something ... //! // ... //! u32 delay\_in\_ms = MIOS32\_TIMESTAMP\_GetDelay(captured\_timestamp); //! MIOS32\_MIDI\_SendDebugMessage("Delay: %d mS\n", delay\_in\_ms); //! \endcode //! \return the delay between the given and the current timestamp ///////////////////////////////////////////////////////////////////////////// s32 MIOS32\_TIMESTAMP\_GetDelay(u32 captured\_timestamp) { // will automatically roll over: // e.g. 0x00000010 - 0xfffffff0 = 0x00000020 return timestamp - captured\_timestamp; }