Jump to content

TK.

Administrators
  • Posts

    15,198
  • Joined

Posts posted by TK.

  1. If it works don't change it too much, focus your ideas instead!
    The STM32F4 microcontroller has more than enough horse power to handle unoptimized code; and optimization could mean that it will be more difficult for you to integrate changes (without writing more questions in the forum than writing code into the .c file... ;-)

    Only minor complaints: you could add a for-loop for the row, and I would call the variables "x" and "y" so that it's clear (by reading the code) what should be done:

      if( element_id == BLM_SCALAR_MASTER_ELEMENT_SHIFT ) {
        int y;
        for(y=0; y<16; y++){
            int x;
            for(x=0; x<16; x++) {
              BLM_SCALAR_MASTER_LED_Set(0, 0, x, y,  MtxPart[0][x][y]); //(blm, element_id, led_x, led_y, colour);
            }
        }
      }

    Best Regards, Thorsten.

  2. Alright, the BLM_SCALAR_MASTER driver is available now, an integration example can be found under apps/examples/blm_scalar_communication: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fexamples%2Fblm_scalar_communication%2F

    I've integrated the same driver into MBSEQ V4, and it's working - the code looks much more readable now (which was my motivation... :)

    Back to the example:
    I would propose that you build blm_scalar_communication and test it at your side first to ensure that the basis is working.
    You've to adapt the BLM_SCALAR_MASTER_MIDI_PortSet() assigment if you are not using OUT3/IN3 (resp. UART2) as communication port.

    The next step is to understand the example code in APP_BLM_ButtonCallback() which shows, how to handle received button events, and how to control the LEDs.

    The actual MIDI communication to the BLM works "automagically" in background, driven by TASK_Period1mS(), which calls BLM_SCALAR_MASTER_Periodic_mS().
    This function (located in modules/blm_scalar_master/blm_scalar_master.c) looks complicated, but this is due to some performance improvement measures to ensure high-speed transfers to the BLM. Actually you don't need to look into the BLM_SCALAR_MASTER driver, it just works...

    You've to decide by yourself, if it's better to integrate your existing code into this example, or if you want to try to transfer the example code into your application. I won't be able to help you on this - I can only show you, how it works at my side.

    Best Regards, Thorsten.

  3. Let me separate the BLM communication handler from MBSEQ and provide it as a driver, this will simplify the handling dramatically at your side (and hopefully won't raise up too many unnecessary questions which are actually already answered in the MBSEQ source code ;-)

    I will try this later today, hopefully without unexpected issues.

    Best Regards, Thorsten.

  4. Note that MBSEQ MI3 has to be connected to BLM MO1, and MBSEQ MO3 to BLM MI1 (like a common bidirectional MIDI connection)

    One possibility to check that at least the BLM MO -> MBSEQ MI connection is working:
    Enter MENU->MIDI, change to the Misc page (where BLM_SCALAR port is configured), and then press GP16 to enter the MIDI monitor.

    The IN3 item of the MIDI monitor should show a MIDI event whenever a BLM button is pressed.
    If not, troubleshoot the BLM->MBSEQ connection first.

    Once it's working, there are not so many options how the MBSEQ MO -> BLM MI connection has to be done -> less troubleshooting.

    Best Regards, Thorsten.

  5. Ok, I added two new items to the wish list:

    ----------------------------------------------------------
    Random generator: allow to select random range (e.g. SELECT button)
    http://midibox.org/forums/topic/19867-random-generator-range/?do=findComment&comment=172921
    ----------------------------------------------------------
    Parameter Layer display: show CC#<number> for CC layers
    http://midibox.org/forums/topic/19867-random-generator-range/?do=findComment&comment=172944
    ----------------------------------------------------------
    

    Best Regards, Thorsten.

  6. Quote

    I realized the linked CC implementation file has last been updated October 2009. Is there an updated and expanded version or has CC implementation halted?

    Where did you find the expired link?

    The latest version can be found under: http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fsequencers%2Fmidibox_seq_v4%2Fdoc%2Fmbseqv4_cc_implementation.txt

    it can also be found in the doc directory of the release package.

    Best Regards, Thorsten.

  7. Quote

    Yes, my system is bidirectional I "need" the map to also work for Aout, in fact I will use the exact same PB map for in and out

    Yes, you need a reversed map, and in addition it has to be considered that the CV outputs are working at 16bit resolution. Which means, the outgoing values have to be 16bit instead of 12bit, so just multiply by factor 16

    Try this one:

    MAP123/HWORDI 0:0 320:2560 570:5104 1014:8560 1803:16416 3207:24240 5703:32304 7605:39664 10141:48592 12053:56336 16383:64752
    
    Quote

    I just realise the whole function pattern where inverted so I try  -MAP100 2 1-  and it work like before !!!

    This was related to a stupid bug in the firmware: after upload it tries to find the specified EVENT value in the map to get an index (map_ix, can also be displayed with "show id BUTTON:5" in MIOS terminal).

    It searched from the second item, the first was ignored.

    Now fixed in this version:
    -> http://www.ucapps.de/mios32/midibox_ng_v1_034b.zip

    Best Regards, Thorsten.

  8. Very interesting!

    I've a faint suspicion: nobody noticed such an USB issue with Win7 in the last 2 years so far, therefore a general MIOS32 driver problem can be excluded.

    On the other hand I added USB host mode some months ago which makes a difference how the USB device is handled: if MIOS32 "assumes" that the an host cable is connected, it will turn the USB interface into a different mode which won't allow an USB host connection.

    Your USB adapter might make the difference - it seems that it indicates a USB host device (which violates the USB spec...)

    However, there is hope that the next test still doesn't require to remove the USB cable:
    Please upload the USB bootloader update application, and then connect via your UM-880 to MIDI IN1/OUT1 
    This will allow you to enter MIOS terminal commands.

    Enter:
     

    set enforce_usb_device 1
    store

    Thereafter upload the MIDIbox SEQ V4 application - USB device mode should be enabled.

    Hopefully this gives us new hints! :)

    Best Regards, Thorsten.

  9. This is really strange!

    Could you please try this MIDIO128 version?
    V1.019 has been built 2 years ago, this one is based on the latest MIOS32 version which is also used for MBNG and MBSEQ:

    -> http://www.ucapps.de/mios32/midio128_v3_020_pre2.zip

    If this the new MIDIO128 built isn't working, I've to check for the changes in MIOS32 that I did in the last 2 years

    Best Regards, Thorsten.

  10. A new version is available:

    MIDIbox NG V1.034
    ~~~~~~~~~~~~~~~~~
    
       o Support for interpolation tables:
         MAPs can now apply linear interpolation between data points.
         This allows to quickly define curves without the need to enter the values for the complete range.
         E.g. previously it was required to enter 128 values to create a curve for a CC controller,
         now it's mostly sufficient to define the same with 3..4 data points. MBNG will interpolate
         the values between these points.
    
         Interpolation tables can be defined with following commands:
         MAP<n>/BYTEI and MAP<n>/HWORDI
    
         A BYTEI map can define up to 64 datapoints with 8bit resultion,
         and a HWORDI map can define up to 32 datapoints with 16bit resolution.
    
         Usage examples can be found under cfg/test/map* and cfg/test/kb_2.ngc
    
         See the user manual for further explanations.
    
       o Support for 16bit maps: with MAP<n>/HWORD 16bit values can be mapped.
    
       o label "std_rgbled" renamed to "std_rgb" to avoid error message
    
       o Cursor handling on SysEx based GLCD output should now work correctly if the big font is activated
    

    Best Regards, Thorsten.

     

  11. Thanks for the inspirations, added to the wish list! :)

    (My example wouldn't work anyways cause the CC implementation doesn't list Delay Feedback as a controllable parameter. I am not sure if this is because it is really not available or the CC Implementation file hasn't been updated?).

    The feedback parameter is called "Echo Repeats", or do you mean "Feedback Velocity Level"?

    The mixer currently can't send to the loopback port, but I could add this as well

    Best Regards, Thorsten.

  12. Hi,

    the MIOS terminal and SD Card Filebrowser are not supported by the bootloader (which is a minimal program which only allows to update the application).

    Did I capture this correctly: the USB connection is working with the bootloader, but it isn't working with the MIDIbox SEQ application?

    Could you please try some other MIOS32 applications like MIDIO128 or MIDIbox NG to check if USB is working with these applications?
    Please upload the applications via MIDI in bootloader mode.

    Best Regards, Thorsten.

  13. Yes, the bootloader is already part of the firmware, and USB should work by default, no additional measures required.

    Let's start with the stupid questions:

    • are you sure that your Micro USB cable is working?
      I mention this, since some mobile phones come with cables which can only be used to supply power for charging, but they can't be used for a data connection
    • did you already doublecheck in the windows system control panel, if a USB device has been detected but disabled?
      There are situations in Windows, where it will be disabled, e.g. when you disconnect the cable during the first registration of the new device.
      It helps to remove the disabled USB interface, and to reconnect the cable
    • if this doesn't help - just to be sure (because you are working under windows...)
      Did you already try to turn your PC off and on again? ;-)

    Best Regards, Thorsten.

    P.S.: the firmware version is V4.089, not 0.89

  14. Hi Lamster,

    it's probably better if you would start with MIDIbox NG: http://www.ucapps.de/midibox_ng.html

    It's a configurable MIDI controller which should fit for your needs (see the user manual, especially the "first steps" section).

    And it supports the same keyboard scan routine like MIDIbox KB (see KEYBOARD command in the .NGC section), and the drawbars could be connected to a MBHP_AINSER64 module.

    Best Regards, Thorsten. 

×
×
  • Create New...