Smithy Posted January 26, 2010 Report Share Posted January 26, 2010 (edited) Just came across this video on youtube: And was thinking it would be a cool feature to add to current midiboxes, for instance having a fancier parameter meter display, (like the one in mb-6582) I'm guessing that it would be more suited to MIDIbox SID v3, because of memory restrictions however. How would this be done on midibox? I'd imagine you must modify for the LCD driver, to be able to control pixels individually? Or maybe you need to create new characters to do this, and it involves scrolling through each character? Edited January 26, 2010 by Smithy Quote Link to comment Share on other sites More sharing options...
philetaylor Posted January 26, 2010 Report Share Posted January 26, 2010 Hi. The MIDIbox_SEQ_V4 uses a similar feature for an animated logo display on startup. Character LCD's have 8 user definable characters which is why you will notice that no more than 8 different special characters are displayed on screen at the same time. In fact all of the standard MIDIbox fonts already have the 'bargraph' characters defined so a simple "spectrum analyzer" display (like in the second half of the video) can be quite easily achieved. With a bit of creativity you can do some quite impressive effects but for full 'pixel' level control you really need a graphical LCD! Cheers Phil Quote Link to comment Share on other sites More sharing options...
Smithy Posted January 26, 2010 Author Report Share Posted January 26, 2010 Hi. The MIDIbox_SEQ_V4 uses a similar feature for an animated logo display on startup. I just spotted this in the mb-seq video! D'oh! Character LCD's have 8 user definable characters which is why you will notice that no more than 8 different special characters are displayed on screen at the same time. In fact all of the standard MIDIbox fonts already have the 'bargraph' characters defined so a simple "spectrum analyzer" display (like in the second half of the video) can be quite easily achieved. With a bit of creativity you can do some quite impressive effects but for full 'pixel' level control you really need a graphical LCD! Cheers Phil Thanks a lot for the explanation phil! Quote Link to comment Share on other sites More sharing options...
nILS Posted January 27, 2010 Report Share Posted January 27, 2010 The kaffeSEQ has an animated logo as well. Fun stuff :) 8 characters can be a lot if used wisely. Quote Link to comment Share on other sites More sharing options...
protofuse Posted March 19, 2010 Report Share Posted March 19, 2010 nice! I'd like to put a little logo at the init time. how could I do that? I mean, as LCD are refreshed and displayed with ISR functions, should I addressed things inside init() ? or elsewhere, when init() is done ? Quote Link to comment Share on other sites More sharing options...
nILS Posted March 19, 2010 Report Share Posted March 19, 2010 I wrote a little function that gets called by Init(). This function simply displays one frame, then waits a little, displays the next, ... Quote Link to comment Share on other sites More sharing options...
protofuse Posted March 19, 2010 Report Share Posted March 19, 2010 I wrote a little function that gets called by Init(). This function simply displays one frame, then waits a little, displays the next, ... and may I have the chance to check this little function? Quote Link to comment Share on other sites More sharing options...
nILS Posted March 19, 2010 Report Share Posted March 19, 2010 Sure. const unsigned char custom_chars_logo[8*8] = { 0x10, 0x10, 0x10, 0x1F, 0x1F, 0x1F, 0x1F, 0x0F, // bottom left 0x0B, 0x0B, 0x0B, 0x1B, 0x1E, 0x18, 0x18, 0x10, // bottom right 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, // top right 0x01, 0x02, 0x08, 0x04, 0x08, 0x00, 0x1F, 0x10, // top left 1/3 0x08, 0x10, 0x08, 0x02, 0x04, 0x02, 0x1F, 0x10, // top left 2/3 0x08, 0x02, 0x01, 0x02, 0x08, 0x10, 0x1F, 0x10, // top left 3/3 0x08, 0x02, 0x01, 0x02, 0x08, 0x10, 0x1F, 0x10, 0x08, 0x02, 0x01, 0x02, 0x08, 0x10, 0x1F, 0x10 }; #define bl 0 #define br 1 #define tr 2 #define tl1 3 #define tl2 4 #define tl3 5 // define the LCD cursor positions (important if you use displays other than // 2x8) #define LCD_LINE1_ADDR 0 #define LCD_LINE2_ADDR 40 #define LCD_Line1 MIOS_LCD_CursorSet(LCD_LINE1_ADDR); #define LCD_Line2 MIOS_LCD_CursorSet(LCD_LINE2_ADDR); // pointless but oh well :-) void UI_animatedLogo() { char* line1 = APP_NAME; char* line2 = APP_VERSION; s8 n; s8 m; #ifdef QUICK_BOOT #define DELAY1 0 #define DELAY2 0 #else #define DELAY1 64 #define DELAY2 255 #endif MIOS_LCD_Clear(); LCD_Line1; MIOS_LCD_PrintChar(tl1); MIOS_LCD_PrintChar(tr); MIOS_LCD_PrintCString(" kaffe"); LCD_Line2; MIOS_LCD_PrintChar(bl); MIOS_LCD_PrintChar(br); MIOS_LCD_PrintCString(" SEQ"); for (n=0; n<8; n++) { for (m=0; m<3; m++) { LCD_Line1; MIOS_Delay(DELAY2); MIOS_LCD_PrintChar(tl1+m); } } } [/code] Quote Link to comment Share on other sites More sharing options...
protofuse Posted March 19, 2010 Report Share Posted March 19, 2010 Sure. const unsigned char custom_chars_logo[8*8] = { 0x10, 0x10, 0x10, 0x1F, 0x1F, 0x1F, 0x1F, 0x0F, // bottom left 0x0B, 0x0B, 0x0B, 0x1B, 0x1E, 0x18, 0x18, 0x10, // bottom right 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0E, // top right 0x01, 0x02, 0x08, 0x04, 0x08, 0x00, 0x1F, 0x10, // top left 1/3 0x08, 0x10, 0x08, 0x02, 0x04, 0x02, 0x1F, 0x10, // top left 2/3 0x08, 0x02, 0x01, 0x02, 0x08, 0x10, 0x1F, 0x10, // top left 3/3 0x08, 0x02, 0x01, 0x02, 0x08, 0x10, 0x1F, 0x10, 0x08, 0x02, 0x01, 0x02, 0x08, 0x10, 0x1F, 0x10 }; #define bl 0 #define br 1 #define tr 2 #define tl1 3 #define tl2 4 #define tl3 5 // define the LCD cursor positions (important if you use displays other than // 2x8) #define LCD_LINE1_ADDR 0 #define LCD_LINE2_ADDR 40 #define LCD_Line1 MIOS_LCD_CursorSet(LCD_LINE1_ADDR); #define LCD_Line2 MIOS_LCD_CursorSet(LCD_LINE2_ADDR); // pointless but oh well :-) void UI_animatedLogo() { char* line1 = APP_NAME; char* line2 = APP_VERSION; s8 n; s8 m; #ifdef QUICK_BOOT #define DELAY1 0 #define DELAY2 0 #else #define DELAY1 64 #define DELAY2 255 #endif MIOS_LCD_Clear(); LCD_Line1; MIOS_LCD_PrintChar(tl1); MIOS_LCD_PrintChar(tr); MIOS_LCD_PrintCString(" kaffe"); LCD_Line2; MIOS_LCD_PrintChar(bl); MIOS_LCD_PrintChar(br); MIOS_LCD_PrintCString(" SEQ"); for (n=0; n<8; n++) { for (m=0; m<3; m++) { LCD_Line1; MIOS_Delay(DELAY2); MIOS_LCD_PrintChar(tl1+m); } } } is it for core32? Quote Link to comment Share on other sites More sharing options...
nILS Posted March 19, 2010 Report Share Posted March 19, 2010 No. Quote Link to comment Share on other sites More sharing options...
protofuse Posted March 19, 2010 Report Share Posted March 19, 2010 No. ok. I replaced s8 by unsigned int cause I had a compilation error. My LCD is 2x20 should I define something somewhere with MIOS_LCD_YAddressSet and/or MIOS_LCD_TypeSet ? Quote Link to comment Share on other sites More sharing options...
Smithy Posted March 19, 2010 Author Report Share Posted March 19, 2010 (edited) Didnt spot the Kaffe logo reply the last time round. And on a seq-related note, you can haz finish this project plz? :wink: http://midibox.org/forums/index.php?showtopic=8364 An MB Midi Looper, would be sweet, if anyone wants to make one! I cant really find any dedicated midi loopers/loop pedals out there. Edited March 19, 2010 by Smithy Quote Link to comment Share on other sites More sharing options...
nILS Posted March 19, 2010 Report Share Posted March 19, 2010 s8 = signed char u8 = unsigned char s16 = signed int u16 = unsigned int I have those declared in some .h :) Quote Link to comment Share on other sites More sharing options...
lylehaze Posted March 20, 2010 Report Share Posted March 20, 2010 Many of the "Noritake Itron" VFD displays (like the one in the video above) include characters that can be arranged to make a horizontal bar-graph display, without the need for "custom characters". I have a Left & Right growing from center type of level meter in the MBMixer software, even though it's not supported by all display types. It's written in PIC ASM.. available on request. LyleHaze Quote Link to comment Share on other sites More sharing options...
Smithy Posted March 28, 2010 Author Report Share Posted March 28, 2010 (edited) U iz 2 slow, so i buyz RS7000 insted, kthxbai. :wink: Edited March 28, 2010 by Smithy 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.