latigid on Posted September 4, 2016 Report Share Posted September 4, 2016 I've been playing around with illuminated encoders and the results are nice (promise a video soon!). For the most part, the NG events work well to change the hsv colour, or brightness using dimmed=1. I'm wondering about bipolar controls though -- e.g. where you might represent CC* values of 0-63 as negative and 64-127 as positive. I find it's okay to use range=MAP* as a hack to assign red to "negative" and green to "positive" values, and also to use a dimming function e.g.: #hue map (red 0-49, yellow 50, green 51-100) MAP1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \ 0 0 0 0 0 0 0 0 0 0 0 0 60 120 120 120 120 120 120 120 120 120 120 120 120 120 \ 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 \ 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 #value (i.e. brightness) map (value 100-0-100) MAP2 100 98 96 94 92 90 88 86 84 82 80 78 76 74 72 70 68 66 64 62 60 58 56 54 52 \ 50 48 46 44 42 40 38 36 34 32 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 0 2 4 6 8 \ 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 \ 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 but it would be nice to combine the two. Thus you might have the LED off in the centre position, and fade up to full red or green depending on the direction. I can also think of other usecases e.g. a unipolar level control increasing in brightness from zero to green to yellow to red. All of my efforts so far have failed, including trying to put conditional statements in the .NGC, running simple SET_HSV commands in .NGR, various arrangements of EVENTs etc. I assume (as well as being naive) that the RGBLED events are conflicting, and only the most recent one takes priority. So, any ideas for controlling both the "h" and "v" parts of EVENT_RGBLED separately? Quote Link to comment Share on other sites More sharing options...
Zam Posted September 4, 2016 Report Share Posted September 4, 2016 Hi Not sure to completely get it, but did you try your encoder forwarding to a sender, with as many requested sender id (same hw_id sender) forwarding to led. Best Zam Quote Link to comment Share on other sites More sharing options...
Psykhaze Posted September 4, 2016 Report Share Posted September 4, 2016 sending 16 bits as 8bits H +8bits V concatenated and parse? idk if possible for real,just a naive guess. Quote Link to comment Share on other sites More sharing options...
latigid on Posted September 4, 2016 Author Report Share Posted September 4, 2016 1 minute ago, Psykhaze said: sending 16 bits as 8bits H +8bits V concatenated and parse? idk if possible for real,just a naive guess. Maybe for real coding, but this is MIOS so everything's a MIDI stream with limited parameters. 2 hours ago, Zam said: Hi Not sure to completely get it, but did you try your encoder forwarding to a sender, with as many requested sender id (same hw_id sender) forwarding to led. Best Zam I did play around with senders and multiple ids/hw_ids, but there's still the problem of one EVENT_RGBLED overwriting the other. Eventually I could get it to work in a script, but it's pretty crude NGR: if ^section == 0 exec_meta RunSection:1 endif #testing purposes, called at the same time as .NGC if ^section == 1 log "Section 1 called" if ENC:3 < 50 set_hsv RGBLED:3 0:100:50 elseif ENC:3 == 50 set_hsv RGBLED:3 60:100:60 else set_hsv RGBLED:3 120:100:50 endif delay_ms 100 exec_meta RunSection:1 exit endif #loops until "runstop" is entered into MIOS terminal :s NGC: ENC n=3 sr=1 pins=5:4 type=detented1 enc_speed_mode=Fast:5 EVENT_ENC id=3 fwd_id=RGBLED:3 fwd_to_lcd=1 type=CC chn= 1 CC= 18 range=0:100 lcd_pos=11:1:1 label="ENC #%3i %5d%B" EVENT_RGBLED id=3 hsv=0:100:50 dimmed=1 range=MAP3 I hope there's a nicer way to implement it. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.