Jump to content

TK.

Administrators
  • Posts

    15,254
  • Joined

Everything posted by TK.

  1. Sounds similar (not equal) to how I've implemented chord mode 2 (see last sneak preview #3) A big difference is, that you can use any track (of 16) to control the transpose (of you don't want to use an external keyboard). The advantage is, that you can quickly switch between different parts of the song (e.g. chorus, break, etc...) just by changing the track group from where the transposing is done. This track group cannot only contain the transpose line, but also additional drums (for filling the beats), additional licks, or whatever. Transpose can also be done from multiple tracks which are running at different speeds, with random gates and/or random steps for very experimental results. :) Best Regards, Thorsten.
  2. Hi, you can do this by mapping the group number to the LEDs: ################################################################################ # LED Map: assignes the LED shift registers to the Button Shift # registers or special values # Currently following values are supported: # 0 Default Setting (see Map below) # 1 Button Shift Register 1 (Button ID #1-#8) # 2 Button Shift Register 2 (Button ID #9-#16) # 3 Button Shift Register 3 (F1-F4 and Navigation Buttons: ID #17-#24) # 4 Button Shift Register 4 (Button ID #25-#32) # 5 Button Shift Register 5 (Button ID #33-#40) # 6 Button Shift Register 6 (Button ID #41-#48) # 7 Button Shift Register 7 (Button ID #49-#56) # 8 Button Shift Register 8 (Button ID #57-#64) # 9 Selected Group (1 of 8) # 10 Selected Bank (1 of 8) # 11-15 reserved # 16 MIDI Status received for Button ID #1-#8 # 17 MIDI Status received for Button ID #9-#16 # 18 MIDI Status received for Button ID #17-#24 # 19 MIDI Status received for Button ID #25-#32 # 20 MIDI Status received for Button ID #33-#40 # 21 MIDI Status received for Button ID #41-#48 # 22 MIDI Status received for Button ID #49-#56 # 23 MIDI Status received for Button ID #57-#64 # 24-31 reserved ################################################################################ [/code] So, assignment option #9 is for what you are searching for Best Regards, Thorsten.
  3. TK.

    very first song

    Hi Matthias, no problem reg. the song name ;-) It seems that it is not allowed to access the mp3, the error message is "Das Aufrufen dieser Daten von extern Quellen ist nicht erlaubt" Best Regards, Thorsten.
  4. It refers to my solution within the assembly code, you can export a label (= address which will be determined during the link stage) with "global <label-name>". Within the C program, you can import the label with "extern" no, this is not required general examples how to import/export labels between assembly and C code can be found in sm_c_example1_v1, sm_c_example2_v1, midi_router_v1_0b It doesn't make much sense to bring this into MIOS, it would blow up the code size and wouldn't have any advantage for people who don't use a GLCD (more than 99%) You can just add the additional fonts to the application When you are including the fonts like I have described in my first article, you won't run into problems - and when you replace the "org" by a global, you don't need to calculate an address Best Regards, Thorsten.
  5. If only a small set of brightness levels are required, you could do this via PWM - no additional hardware is required in this case, only a special PWM routine which can be included into the application. I read an article about a clever PWM method for an optimized LED dimming some time ago, unfortunately I forgot the link... :-/ The idea was, not just to change the duty cycle in order to dimm the LED, but to run special sequences of pulses to avoid the typical "flickering" effect. Best Regards, Thorsten.
  6. yes, the V1 firmware runs also on a PIC18F4620, only MIOS and the bootloader are different In other words: the core module is the same, microcontroller and MIOS are different, the application is binary compatible I guess you mean firmware: no, neither the most current V1 nor the future V2 will run on a PIC16F877, this uC is obsolete Best Regards, Thorsten.
  7. Hi Christian, both solutations have their advantages and disadvantages, therefore it would be nice if you could document both in the Wiki (yes, everybody is allowed to change existing pages) Your method has the advantage, that it isn't required to upload the font again and again with each program update. My method has the advantage, that new fonts can be inserted into the project in a similar way. The only thing I would change is the way how the base address of the font is specified. With relocatable code, it makes sense to let the linker decide at which location the font should be stored, by exporting/importing the label of the base address, you can use for example 'MIOS_GLCD_FontInit(font_big);', 'MIOS_GLCD_FontInit(font_small);', 'MIOS_GLCD_FontInit(icons_knobs);' without knowing the absolute address Best Regards, Thorsten.
  8. Hi Christian, you need to relocate the font to another location, so that it doesn't overlap with the program code. Here a quick & dirty solution (I will provide a proper solution for C programs later) copy the mios_glcd_font.inc file from the MIOS release into your application directory, rename it to mios_glcd_font.asm add following code to the file header: LIST P=PIC18F4620, R=DEC DEFAULT_FONT code FONT_ENTRY MACRO width, height, x0, char_offset dw ((height) << 8) | (width), ((char_offset) << 8) | (x0) ENDM [/code] change the "org" (start address) from 0x7cfc to 0xfcfc add a "END" at the file footer add the new .asm file to the MAKEFILE.SPEC (behind the MK_SET_OBJ statement) change the font pointer within the Init() routine: [code] void Init(void) { MIOS_GLCD_FontInit(0xfcfc); } if you are working under MacOS or Linux, type "perl tools/mkmk.pl MAKEFILE.SPEC; make", under DOS just type "make" Hope this is all (I haven't tried it) Some more fonts and icons can be found within the midibox_lc project Best Regards, Thorsten.
  9. Hallo, es ist ja eigentlich schon alles fertig programmiert, Du musst die MIDIbox CV Applikation nur noch konfigurieren: in in main.asm die Zeilen ; use PORTA and PORTE (J5 of the core module) for 8 additional gate outputs #define ENABLE_J5 0 ; ; define the AOUT interface which is used here: ; 1: one MBHP_AOUT module ; 2: up to 4 (chained) MBHP_AOUT_LC modules ; all other values invalid! #define DEFAULT_AOUT_INTERFACE 1 [/code] umaendern in: [code] ; use PORTA and PORTE (J5 of the core module) for 8 additional gate outputs #define ENABLE_J5 1 ; ; define the AOUT interface which is used here: ; 1: one MBHP_AOUT module ; 2: up to 4 (chained) MBHP_AOUT_LC modules ; all other values invalid! #define DEFAULT_AOUT_INTERFACE 2 und dann ein neues main.hex nach dieser Anleitungen bauen: http://www.ucapps.de/howto_tools_mpasm.html Gruss, Thorsten.
  10. I guess that the parameter handler behind CS_MENU_ButtonInc and CS_MENU_ButtonToggle will never switch to values > 0x7, since this would exceed the defined maximum value. I cannot tell you immediately how to enahnce your code so that it works for that what you want to do under all circumstances (e.g. + the optional CC parameter sent, etc...) - I can only write, how I would do this: - in cs_menu_tables.inc, search for "CS_SID_FILTER_CHANNELS" and set the max value to 0x0f (instead of 0x07) - in cs_menu_p2r_r2p.inc, search for CS_MENU_P2R_FILTER_CHN and CS_MENU_R2P_FILTER_CHN, duplicate the code (since it is used for *_MOD as well), and change the masks (replace 0xf8 by 0xf0 and 0x07 by 0x0f) This should be all (I haven't tried this...) Best Regards, Thorsten.
  11. It shouldn't be a big problem, but I never tried this due to lack of time Best Regards, Thorsten.
  12. You can assign any number to the second byte - sometimes this is useful for more flexible meta events Best Regards, Thorsten.
  13. I really would like to see such build notes (what can be made wrong, what can be made right, how to build a simple DINX1 module) in the Wiki! :) Best Regards, Thorsten.
  14. Hallo, Danke, freut mich dass es Dir gefaellt! :) die Pins der Encoder sind in mios_tables.inc definiert, und die Funktionen werden in cs_menu_enc.inc und cs_menu_enc_table.inc gemapped - allerdings sind Aenderungen an dieser Stelle nicht so ohne weiteres durchzufuehren, man muss sich ein wenig durch den Source Code wuehlen (siehe auch http://www.midibox.org/forum/index.php?topic=7233.msg50901#msg50901) Das Mapping der Buttons und LEDs laesst sich dafuer wesentlich einfacher abaendern - die Zuweisungstabellen stehen in cs_menu_io_tables.inc Gruss, Thorsten.
  15. Wenn Du die schwarzen Balken siehst, lohnt es sich evtl. ein wenig weiterzuexperimentieren. Hast Du denn schon MIOS aufgeladen? (das vermisse ich in Deiner Beschreibung) Ohne MIOS wird das Display nicht initialisiert Gruss, Thorsten.
  16. Hi Alkex, the usage of this function is very easy - each time you are calling it, a new random number will be put into SEQ_RANDOM_SEED_L and SEQ_RANDOM_SEED_H - you can extract a bit or a bitfield from these registers like you want. E.g., if you need a 7bit value, write: SET_BSR SEQ_BASE movf SEQ_RANDOM_SEED_L, W, BANKED andlw 0x7f ; masks 7bit from the low-byte [/code] In MBSEQ V3, I've optimized the function in following way: [code] ;; -------------------------------------------------------------------------- ;; This function generates a new random number ;; OUT: new random number in SEQ_RANDOM_SEED_[LH] ;; -------------------------------------------------------------------------- SEQ_CORE_GenRandomNumber SET_BSR SEQ_BASE movf SEQ_RANDOM_SEED_L, W, BANKED mulwf SEQ_RANDOM_SEED_H, BANKED movf TMR0L, W addwf PRODL, W movwf SEQ_RANDOM_SEED_L, BANKED movlw 0x69 addwfc TMR1L, W addwfc PRODH, W movwf SEQ_RANDOM_SEED_H, BANKED return by using the values of two different timers, the randomness is higher Best Regards, Thorsten.
  17. Did you also measure the voltages directly at the LPT port? Best Regards, Thorsten.
  18. The voltages don't look correct. General proposal: buy 3 Transistors, 5 x 74HC14, 1 LM317 (some are indented as replacement) 1) Unmount the transistor and the 74HC14s 2) Disconnect the batteries at J1 3) Mount a new 74HC00 into the socket of IC3 4 ) connect the batteries 5) Check if the Vdd and Vpp LED can be toggled from P18 6) Check if the voltage at the cathode of D2 toggles between 5V/0V together with the red Vpp LED 7) Solder T1 8) check if MCLR# toggles between ca. 0.5V and ca. 12.5V together with the red Vpp LED If one of these test fails - don't continue! But try to get it passing first (check soldering, check right orientation of ICs, diodes, transistor), otherwise you will fry some components again Best Regards, Thorsten.
  19. Testing is only possible with a scope, but I would say: this is a TTL oscillator Best Regards, Thorsten.
  20. Yes, just use the MIDIbox LC firmware. You could attach a graphical 240x64 display - even the slow ones - it will show some nice graphics. Otherwise you will have to use two 2x40 LCDs Best Regards, Thorsten.
  21. Did you build a new .hex file from your modified code, and uploaded it to your MIDIbox? Because it sounds like the default meta handler is still running - it sends SysEx Best Regards, Thorsten.
  22. Hi Ludo, do you allow me to bring a subset of your pictures into the MIDIbox Gallery? :) Best Regards, Thorsten.
  23. Why do you post such questions in the news in an article which introduces a new MIOS version? Of course, it is very likely that it is a bug in your DIN module wiring, or what did you expect? That 100red of people are not able to use the Depth ENV encoder and never reported this? We have a special forum section where you can ask for help, it's called "Troubleshooting" and not "News" Best Regards, Thorsten.
  24. Hi Simone, here is a description, how you can troubleshoot this without opening the case (use MIDIO128): http://www.midibox.org/dokuwiki/doku.php?id=din_module if MIDIO128 doesn't send events on all encoders, then you have to open the case Best Regards, Thorsten.
  25. this message tells you that the installation of bootloader v1.2 was successfull (see documentation) Best Regards, Thorsten.
×
×
  • Create New...