Jump to content

robin303

Members
  • Posts

    70
  • Joined

  • Last visited

    Never

Posts posted by robin303

  1. It would be that bad if it's Sysex on a specific channel. So how does the automapping feature in Novations Remote SL work then? Preconfigured patches? There must be some kind of "program change" signal coming from Reason for automapping to work, right?

  2. Hi everybody, first of all it's nice to be back after a long absence. It's cool that the midibox forum is still an active community :-)

    Anyways, I finally have some time to work on my box again which I completed nearly 1.5 years ago (I'll post some pics of the finished work soon). It has been gathering dust ever since finishing it, just because I never came round finishing the software. The assembly language is just to darn hard if you only have 3 or 4 hours per week. However, I have been watching the porting of midibox apps to C and since this language is more in my alley, it is interesting to play with this.

    Back to subject  :D I have read about the Novation Remote SL and its 'automapping' concept sounds pretty good to me! But how would I make my MidiBox 64 'learn' from a host application like Reason or Ableton which parameters are available?

    For instance when I activate a ReDrum module in reason, does Reason send out all its parameters over midi? Could the midibox then read this data and thus automap it to any available pots/buttons/leds on my Midibox64?

  3. You won't need REWIRE. You must be able to attach a midi device to your computer, that's all! Then you will set Rebirth to listen to remote control commands on channel x. And you set your connected midibox64 to output data on channel x.

    Okay, but how to start on designing a rebirth midi controller?

    First of all you will need to figure out which rebirth knobs you can control via midi by looking at the rebirth midi implementation (one of the documentation pdf's). Let's start for example by looking at what you would need to control the first TB303.  ;D

    TB303-1 Pots/Faders: Pattern selection, Tune, Cutoff, Reso, Env.Mod, Decay, Accent, Pan, Level, Delay Amount... That's 10 pots/faders.

    TB303-1 Buttons: Waveform, Pitch Mode, Clear, 13 note buttons, down, up, accent, slide, note-on, note-off, back, step, distortion send, pcf send, compressor send, pattern on, mix on. That's 29 buttons.

    But do you need all these buttons? What do you want to control? Maybe you don't want to program the 303's from your midibox, in that case you can loose all the buttons related to programming and just stick to the ones needed for live performing on your box. So that's waveform, distortion send, pcf send, compressor send, pattern on, mix on.

    You must also define the number of pots/faders/buttons needed for the second 303, for the 808 and for the 909. In other words, you need to make a complete overview of the needed controls.

    When you're done with that you can start sketching/photoshopping or use front panel designer (http://www.schaeffer-apparatebau.de/English/FPD_index.htm) to make a design. Try to make the design intuitive, so will be able to know what buttons controls what without the need for labels and all... This is all creativity  ;) You could for instance make two rows of 10 pots to control the two 303's. And under this the layout for controlling the 808/909. I would, like the program does, keep the master section to the right, put pcf controls under this, put delay controls under this etcetera. In other words, keep the basic location of controls the same as the onscreen counterparts.

    When done designing, think about if you want/need to have an lcd screen, motorised faders, a midi-thru... And then we will know what hardware you'll need. The amount of modules depends on the amount of pots/faders/buttons that you are going to need.

  4. I hope you understand English, I can understand a little French but I cannot write it  ;)

    I have succesfully played around with Rebirth and my midibox64. It is great fun and works very, very well!

    There are standard controller numbers for all the common knobs and faders. For example: cutoff, resonance, volume, 'send' amounts, pfl, echo, distortion etcetera. Really almost everything can be controlled! If you take a look at the midi implementation chart in your rebirth manual you can see which controller and note-on numbers are used.

    It's also possible to program the patterns of the 303's. For this to work, Rebirth must be set to the "program synths" setting. You can program your box in a way that it will do this automatically (with a meta event). Now you can assign buttons to the step, back, up, down, accent etcetera buttons of either one of the 303's. Voila! Remote programming. Note that remotely programming the 808/909 is not possible in Rebirth.

    Last but not least, very handy for live performing or jamming, you can trigger patterns from the midibox. By sending specific note-on message via midi, you can select the pattern for each one of the four modules.

    However, the midi implementation for pattern selection kinda sucks in Rebirth. You have to first send an A,B,C or D note-on message and after that a 1,2,3,4,5,6,7,8 note-on event.. Because I didn't like this I have written a very handy meta event (a piece of code that you put in the ram of your midibox). This enables you to select patterns by turning a knob instead of pressing a button (like it works in Reason). If you're interested I can post the code of this metaevent here. I also have configuration files for you, once you have built your box!

    Hope this information is usefull and that you can read English  ;D

  5. Thanks for the xplanation, I tried it out and all my 4 banksticks seem to be working perfectly  :)

    Now, some more challenge, I hope you can help me on the way with this next thing. I'm really anxious to try and learn  how to program my box.

    Let's say I would want to copy a "preset bank" into a "working bank"....

    I have created some preset banks to control different instruments in Reason. So there's one bank configured for the Mixer, one for the Dr.Rex, one for the NN-19 etcetera.  I have stored these preset banks in bank 51 to bank 62 of my midibox64.

    I also have 16 "working banks", stored in bank 1 to 16.

    Now I would like to create a metaevent to load one of the "preset banks" into the currently selected "working bank":

    MB64_META_Handler_03
          ;; input value 51-62 (0x33-0x3E) in MIDI_EVNT_VALUE
          ;; This will copy the SOURCE bank n to DESTINATION current_bank
          ;; 51 - reMix module                  57 - RV7000 module
          ;; 52 - Subtractor module            58 - Scream4 module
          ;; 53 - Malström module                  59 - BV512 module
          ;; 54 - NN-19 module                  60 - Small FX modules
          ;; 55 - Dr:rex module                  61 - MATRIX module
          ;; 56 - reDrum module                  62 - General controllers
          
          ;; Only continue if the current bank is a "working bank" (between 1 and 16) to avoid overwriting the preset banks.
          movlw      0x10 ;Set W to 17
          IFGEQ       MB_BANK, W, rgoto MB64_META_PATCHLOAD_NOTOK      ;If MB_BANK >= 17 then goto MB64_META_PATCHLOAD_NOTOK error message
          
          movf      MB_BANK, W      ;store the current  bank number in W (this is the TARGET of the copy action)
          movff      MIDI_EVNT_VALUE, MB_BANK ;change current bank to bank MIDI_EVNT_VALUE
          call       MB64_BANK_CopyFromExternal
          
          return
    

    This is not working.  When I trigger the metaevent while I'm in "working bank" 4, I do see the *** snapshot *** message, but after this the midibox returns being in bank 1 without any evidence of a copy actions having taken place.  :-/

    Do you see any mistakes in my code?

  6. For pots, go to the Reichelt site and type in the search box: P4M-LIN 10K for pots with 4mm shafts and P6M-LIN 10K for 6mm shafts. The m stands for mono, which you will want for this purpose. LIN stands for linear, like Steven_c said, you will need Linear pots and faders, not audio faders which are exponential.

    http://www.reichelt.de

    When I last searched at Reichelt, they didn't have the right faders so I ordered these at Conrad. But beware, the cheap ones (say around 2euros) really do feel cheap (although they work perfectly reliable on my box).

    http://www1.conrad.de/scripts/wgate/zcop_b2c/~flN0YXRlPTE3OTM5OTAxNDI=?~template=pcat_area&p_load_area=241780&~target=area

    Good luck  ;)

  7. This afternoon, I have added two banksticks to my midibox64 (which already had one functioning bankstick). So now there are three of them in my box. But I can't seem to find them!  I made sure that the DEFAULT_BANKSTICK_CS setting in main.asm is set to -1.

    How can I verify if MIOS can access the extra 32 banks? Where do I find them?

    Once I get it to work, I would like to write a meta event that can copy bank a from bankstick b to bank x on bankstick y. Is this possible?

    Thanks for any help  :)

  8. Oh by the way. With the Global Channel thing (that's what this topic was for  :)) ....

    I want to display the channel change in the display once I turn the potmeter. So I made this:

    ;; --------------------------------------------------------------------------
    MB64_META_GLBCHN_CHANGED_L1 STRING 16, 0x00, " Global Channel "
    MB64_META_GLBCHN_CHANGED_L2      STRING 16, 0x40, " Changed To     "
    
    MB64_META_Handler_08
          ;; Change global midi channel to MIDI_EVNT_VALUE from potmeter [00-0F].
          movff       MIDI_EVNT_VALUE, MB64_GLOBAL_CHANNEL
          call      MIOS_LCD_Clear
          
          TABLE_ADDR MB64_META_GLBCHN_CHANGED_L1
          call      MIOS_LCD_PrintMessage
          call      MIOS_LCD_PrintMessage
          
          ;; set cursor
          movlw      0x4C
          call      MIOS_LCD_CursorSet
          movf      MIDI_EVNT_VALUE, W
          call      MIOS_LCD_PrintChar
          
          return
    

    Now I have two problems:

    1.  Printing the value MIDI_EVNT_VALUE, the display does not show me the channel number but a vertical bar graphic.

    2.  When I turn the potmeter to quicly,  I can only see my message for 1/10 of a second. Because the normal display page is stealing the focus back. Can I override this behaviour and make my message the 'boss' for two seconds?

  9. Yes Thorsten, you are right. After opening MidiOx I have verified that all is being received correctly.  The 'hanging' meant that the midibox was not responding to anything anymore. But obviously it was busy sending data.

    I am using the 1.0c release of sysexbox.

    So I would suggest you make some kind of 'busy' flag in sysexbox, so that one can see that's it's still working. And maybe you can take a look at the 'bytes received' and 'blocks received' fields, because here they don't reflect the actual amount of data sent. That's pretty confusing.

    For the rest of it, great software!    ;D

  10. I am using a Midiman Midisport 2x2.

    Requesting Mios Program memory returns 1 block (1184 bytes) then crashes (hangs) my box and -after a while-  reboots my box automatically.

    Requesting a 32k or a 64k bankstick dump crashes my midibox. It reboots after about 1 minute.

    Requesting Mios EEPROM memory makes my box reboot as well.

    Requesting a midibox64 bank works perfect. 8 blocks, 2120 bytes.

    I'm sorry for the weird results but that's the status  :'(

    I did the tests several times, restarting both sysexbox and my midibox quite some times.

  11. Yes it's a stupid mistake. I just didn't think about this parameter change that I did in MidiOx. Like I said, for .SYX updates, 350ms works perfectly fine. Weird huh  ???

    I tried the latest version of sysexbox and it worked perfectly for MidiBox program upload and for a settings.syx upload.   ;D 8)

    However, the 'request dump - mios program memory' feature doesn't give much feedback.  I know something is happening because my send and receive leds are burning for a while. But then the Leds go out and the status tells me only 1 block was received (1.184 kb).  

    On the bright side, requesting banks seems to work OK!

    Is there any way to convert the requested bank data back to a text file format?

  12. Well hows this :D

    It seems that the error was in the fact that I tweaked the MidiOx "delay after F7" setting up a bit, to 350 ms. :P  Yeah, yeah I know, call me impatient!

    This seems to work perfectly for the small .SYX configuration uploads. Uploading the MidiBox app with this speed however, is obviously not a good idea.

    The strange part is that I get no time-outs during the upload operation, and MIOS is rebooting as usual after the program upload.  

    Anyway, I downgraded the setting back to 750 ms and now the upload obviously succeeded because your example code is now working like a charm, Thorsten!

  13. Okay thanks, now I understand this!

    However, implementing the example code does not work! When I turn the potmeter to which I assigned the meta event, the display 'garbles' and everything goes crazy  :-/

    I guess it's not as easy as just moving a new value into MB64_GLOBAL_CHANNEL?

    I even tried this:

    MB64_META_Handler_08
          ;; Change global midi channel to MIDI_EVNT_VALUE from potmeter [00-0F].
         movff      MIDI_EVNT_VALUE, MB64_GLOBAL_CHANNEL
         goto      MB64_DUMP_RestorePotButtonEvents
    

  14. I was wondering if it's possible to change the Global Midi Channel with a meta-event, (attached to a potmeter with range 0 to F).

    I tried this, but it doesn't work :(

    MB64_META_Handler_08
          ;; Change global midi channel to MIDI_EVNT_VALUE from potmeter [00-0F].
          movf      MIDI_EVNT_VALUE, W
          movwf      MB64_GLOBAL_CHANNEL
    
    And the call to the metaevent:
    48  =  F0 08 [00-0f] "Change chnl"            DEC

    Perhaps my thinking is way to simple, hey I'm just starting with this assembly stuff  ;D

  15. I've got a little problem getting the bank stick bank-switching to work on my MidiBox 64.  I have a row of 16 buttons on my box which I want to assign as bank-switch buttons.  I also have two buttons which I want to assign increment/decrement bank feature.

    So I edited my configuration file like this:

    # bankstick bank 1-16 buttons
        9   =  FF 02 00  @OnOff
        10  =  FF 02 01  @OnOff
        11  =  FF 02 02  @OnOff
        12  =  FF 02 03  @OnOff
        13  =  FF 02 04  @OnOff
        ..etcetera...
    
    and
    # bankstick bank +/- buttons
        47  =  FF 02 10  @OnOnly  # Save, Decrement Bank without overflow, Restore
        48  =  FF 02 12  @OnOnly  # Save, Increment Bank without overflow, Restore
    

    When I press one of the buttons, the display shows me

    Robins bank

    Act. Bank: 1

    But the bank does not change!  :(

    When I switch banks within the midibox menu, everything works perfectly... What's wrong?

  16. Ah, solved the problem  ;D

    It seems that both the flickering of the display and the 'weird scrolling behaviour' of the left/right menu buttons where both caused by the MIOS_DIN_PinAutoRepeatEnable in the CS_MENU_Init function in cs_menu.inc:

    CS_MENU_Init
          ;; clear CS stat
          clrf      CS_STAT
          ;; enable autorepeat for left and right button if datawheel not enabled
    #if DEFAULT_ENC_DATAWHEEL == -1
          movlw      DEFAULT_DIN_MENU_LEFT
          call      MIOS_DIN_PinAutoRepeatEnable
          movlw      DEFAULT_DIN_MENU_RIGHT
          call      MIOS_DIN_PinAutoRepeatEnable
    #endif
          ;; change to DISPLAY page and exit
          movlw      0x00
          rgoto      CS_MENU_ChangePage
    

    So I changed the two MIOS_DIN_PinAutoRepeatEnable

    to MIOS_DIN_PinAutoRepeatDisable and my problems are over!

    Is this a program bug of some sorts, or does it have to do with my buttons (Reichelt DIT / DTL buttons) ?  ???

  17. Hmm, I seemed to have found the cause of the flickering.. Uh, not really.  It gets weirder..  ???

    I have figured out that the buttons assigned to the menu options (Left, Right, Exec, Snapshot) are causing the flickering problem.

    - I configured the midibox and in MAIN.ASM,  I set pins 1,2 3 and 4 as the menu buttons

    - I powered up the midibox and wait for the flickering to start

    - I then disconnect the appropriate connector for these 4 pins and the flickering stops.

    At first I thought this to be related to a fault with these 4 buttons. But then I re-configured the main.asm file to use another set of buttons for the menu:

    - I reassigned the 4 menu buttons to pins 21, 22, 23 and 24

    - The same thing happens. A few seconds after booting the display starts to flicker.

    - Pulling the plug on the connector for the buttons 21 to 24 stops the flickering.

    This is probably related with my other problem that also involves the menu. When I press the 'menu left' or 'menu right' button, the midibox scrolls rapidly through all the options in the menu, as if the buttons are sticky...

    So basically... if I configure the midibox to not use any menu buttons at all (by specifying button numbers higher than 64 in the "DIN pin numbers of menu buttons" section of main.asm) then the flickering never occurs at all and buttons function beautifully!

    It must have sometinhg to do with the software then? Any thoughts on this?

  18. - You did do the hardware mod for MIOS, did you?

    Yes, I did the "pin 22 bankstick mod".  And I have nothing connected to J10. I don't use a SID.

    - What current goes in there (measure it), when you have disconnected the DOUTs? That´s important! Should not be above 300 mA without LEDs

    I'm not sure how to measure this, I'm not that technical .  When I set my Multimeter to the A 10 DC setting,  my meter says around 3.3, when set to A 10 AC setting, my meter gives me around 1.7. My midibox goes out when doing this(?)  :-/

    Some voltage measurements: Adapter is set to output 9v. Measured at the pins of Core module J2  I read:

    - Full load, 54 leds and lcd turned on : 8,17 v

    - Only the lcd  : 10,51 v

    Measured at the pins of Core module J11 I read:

    - Full load, 54 leds and lcd turned on: 4,79 v

    - Only the lcd  : 5,03 v

    - Do you have your Backgroundlight Pot to the max or some middle point? Put it to some middle if you don´t have already.

    It was at the max, I have put it in the middle now.

    This will probably keep the 7805 a bit cooler. Good idea.

    Now that I have done this, I can see some other strange anomalies in the lcd. In line 2, I can see, very dimly, some kind of ghost text behind the normal text.  It goes in the same frequency as the flickering..

    - What Cap do you have before the 7805? 2200 uF? 1000 uF?

    I build exactly as in the specs. So it's a 2200uF.

    - Is the Optocoupler in there the right way? It´s not the same way as the PIC is!

    Yep it's correctly placed.

    Now may I ask a dumb question? Does it matter that my DINs all share one single ground line. I didn't use the ground pins for each din, instead I supplied them all with one ground line. The wires in the top are the button pins, the wires in the bottom are the led wires. The silver wire in the middle is connected to the main ground of the DIN module (J2 VS).. See the photo.

    buttons_share_ground.jpg

    The DIN and DOUT ground is shared as well. The white wire provides both the leds and the buttons with ground.:

    buttons_share_ground2.jpg

×
×
  • Create New...