Jump to content

TK.

Administrators
  • Posts

    15,198
  • Joined

Posts posted by TK.

  1. Ok, I added some messages, please try this version:
    -> http://www.ucapps.de/mios32/midibox_seq_v4_086_pre1.zip
     

    • VelN and VelA will be displayed if the drum track has no velocity layer, but an accent layer
    • VelA (but not VelN) will be displayed if the drum track has a velocity layer and an accent layer
    • Neither VelA nor VelN will be displayed if the drum track has no accent layer

    If you try to modify a hidden value, a message will inform you about the reason.
    (please check if they are always correctly displayed)

     

     

    @Gridracer: I also added the "MIDI Learn" function.

    Press GP12 button in the EVENT page on a drum track. Incoming Notes should modify the drum note

    The appr. port and MIDI channel has to be configured in the RECORD page (I think it makes sense to use the same configuration for this purpose)

     

    I've implemented the MIDI Learn capability in a way that it will be very easy to add similar functions to other pages in future - your input is welcomed! :)

     

    Best Regards, Thorsten.

  2. Hi,

     

    O1..O6 can be selected under the "VAs" option, see also http://www.ucapps.de/midibox_sid_manual_m.html where you will find the explanation for additional assignments, such as LR, L-, -R

     

     

    but if I want two of them filtered, I can do that, but they have to use the same filter and thus same settings..?

     

    won't really work (resp. this will generate funny settings).

    You would have to assign one instrument to the left SID chip (O1..O3), and the other instrument to the right SID shift (O4..O6)

     

     

    It would be nice to have more control over this

     

    Thats exactly the intention behind the VA (Voice Assignment) rules

     

    For a polyphonic sound you would prefer to assign the voice to all voices of the left SID (L-) or right SID (-R), so that up to 3 voices can be played in parallel.

     

    Best Regards, Thorsten.

  3. This is not related to a bug, it's a configuration issue.

     

    In order to use VelN and VelA, you need a second trigger layer which controls the accent.

    So, "T" must be 2*64 or 2*128, there are only two configurations for this.

     

    In addition, you've to ensure that the parameter layer doesn't control the Velocity (set LayA to Roll or something else - on a freshly initialized track it's Roll)

     

    I think that I should hide VelN and VelA (and print a warning instead) whenever these parameters have no effect.

     

    Best Regards, Thorsten.

  4. Do you have any ideas why USB hubs are not working? You mentioned power issues before - have you (or anyone else) tried a powered hub? Or do you have any other thoughts about how that might be fixed?

     

    It's not related to a hardware limitation, but due to special software which is required to establish the connection to the hub and to enable the device ports. This isn't straightforward, but it's on my mid term agenda (of course, I would be interested to use a hub as well...)

     

     

    The Discovery Board is already equipped with a MOSFET "power switch" (not a charge pump because it is not needed) controlled by PC0.

    The STMPS2141 is spec'd at 500mA max current.

     

    Ok, I will check this sooner or later.

    My focus was on the SW side, not so much on the HW side yet

     

    Best Regards, Thorsten.

  5. It doesn't matter if buttons are directly connected to DINs, or buttons of a keypad matrix would be used - some special routines are required which are not part of the firmware yet.

     

    I need some time to find a generic solution for this.

    E.g. if the .NGR language would allow arithmetic operations, such as the modification of BCD-code digits of an element, then this would satisfy your request and could also be used for other purposes.

     

    Best Regards, Thorsten.

  6. I like this idea of a MIDI learn function - added to the Wishlist :smile:

     

    In addition following ideas come into my mind:

    - when you move the GP12 encoder, the note will be played shortly (this will be an optional feature, because some people won't like this)

    - if the parameter layer of a note or CC type track plays a CC line, GP12 button allows to set the CC from an external keyboard/controller

    - in EDIT page, select a step with the GP button and the incoming notes, CCs, Pitchbend, etc. will be recorded into this step. Will also allow polyphonic recording like known from the RECORD page and MBSEQ V4L - again this will only be an optional feature, because the external keyboard might be used for playing the instrument of the same track live.

     

    Best Regards, Thorsten.

  7. Great that you got it working, looking forward for playing around with your synth app! :-)

    I gave you access to the Programmers Lounge where you can find more informations about the projects.

     

     

    VBUS: this is what I copy&pasted from the STM32F4 implementation example into mios32_midi.c - it seems that external components are required:

     

    void USB_OTG_BSP_DriveVBUS(USB_OTG_CORE_HANDLE *pdev, uint8_t state)
    {
    #ifndef MIOS32_DONT_USE_USB_HOST
      /*
      On-chip 5 V VBUS generation is not supported. For this reason, a charge pump 
      or, if 5 V are available on the application board, a basic power switch, must 
      be added externally to drive the 5 V VBUS line. The external charge pump can 
      be driven by any GPIO output. When the application decides to power on VBUS 
      using the chosen GPIO, it must also set the port power bit in the host port 
      control and status register (PPWR bit in OTG_FS_HPRT).
      
      Bit 12 PPWR: Port power
      The application uses this field to control power to this port, and the core 
      clears this bit on an overcurrent condition.
      */
      if (0 == state)
      { 
        /* DISABLE is needed on output of the Power Switch */
        GPIO_SetBits(GPIOC, GPIO_Pin_0);
      }
      else
      {
        /*ENABLE the Power Switch by driving the Enable LOW */
        GPIO_ResetBits(GPIOC, GPIO_Pin_0);
      }
    #endif
    }

     

    UART (MIDI port) assignments: I can't use STM32F4 USART0 and USART1 because the appr. pins are allocated by other functions.

    Therefore the MIOS32 specific UART0..3 mappings don't match with the hardware indices.

     

    MIOS32 UART2 I even had to use two different USARTS for IN and OUT.

    See also http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fmios32%2FSTM32F4xx%2Fmios32_uart.c

     

    Best Regards, Thorsten.

  8. It isn't so easy to remove menu entries from the main page, but I came to a better idea: a configurable MENU page where you can define the shortcuts that you need. In conjunction with the bookmark page (press MENU+SELECT) you've up to 32 customizable short cuts for the different pages now.

     

    So: Topic 1 is implemented

    Topic 2 is partly implemented (although not like requested, but very useful for most people)

     

    -> in V4.085

     

    Best Regards, Thorsten.

  9. When I try to send a syx file it only sends the first two sysex messages. As a check I sended the file via MIOS Studio and it works without problem.

     

    Your .syx file works w/o data loss at my side, regardless if send via USB or traditional MIDI.

     

    However, I remembered that I wanted to add an optional delay function, because I know that some synths (including MBSID and MBFM) need a delay between the SysEx messages in order to store the received payload before the next message is received.

     

    This function is now available in V4.085 - and a little bit more ;-)

     

    From the ChangeLog:

     

    MIDIboxSEQ V4.085
    ~~~~~~~~~~~~~~~~~
    
       o it's now possible to customize the MENU short cut page in MBSEQ_HW.V4
         with the new MENU_SHORTCUT parameter.
         See the templates under hwcfg/*/MBSEQ_HW.V4 for further informations.
    
       o the bookmark configuration files (MBSEQ_BM.V4) are using the same
         page names like MENU_SHORTCUT instead of numbers.
         The old number scheme will be automatically converted to the new names.
    
       o improved keypad (SMS-like) entry of names
    
       o SysEx device page allows to specify a delay between SysEx messages which is
         used when a .syx file contains multiple dumps
    
       o each SysEx device page has now a dedicated port/delay configuration which
         is stored/restored from the /SYSEX/<device>/DEVCFG.V4 file
    

    Best Regards, Thorsten.

  10. I agree as well on both topics.

     

    Especially number 2 would match with my plan to make the menu selection in the bookmark file implementation-independent (provide names instead of numbers).

    So: once I've the names, it would also be possible to make everything which is related to pages configurable in a file without the danger that numbers are changing over different versions.

     

    Best Regards, Thorsten.

  11. Ok, in this case I would prefer the simple slot option which works nicely together with the Slots in song page. The dedicated button would be called "QUICK_SAVE".

     

    Are there other opinions (from other users?)

    Would somebody use such a button?

     

    What pattern slots are displayed on the BLM pattern screen?

     

    What do you mean exactly with the BLM pattern screen?

     

    It isn't possible to store patterns from a BLM16x16+X - is this really necessary?

    Do you own a BLM?

     

    ...I hope I'm not coming off as being really pushy here - this was just an idea I had that I thought would be useful.  I'm not demanding that it be implemented or anything.

     

    Yes, I understand it this way and therefore will only provide a solution if multiple users request this and if we come to a conclusion.

     

    Best Regards, Thorsten.

  12. Servus,

     

    generell ist das schon machbar, es sind jedoch einige Dinge zu beruecksichtigen:

     

    Core Modul: unbedingt STM32F4, da ist mehr drin fuer den Preis ;-)

     

    Das groesste Problem ist, dass Du ausgerechnet 9 Motorfader anstatt 8 anschliessen moechtest, denn das MBHP_MF_NG Modul ist auf 8 limitiert, Du wuerdest also zwei Module benoetigen (die Fader lassen sich nicht direkt ans Core Modul anschliessen).

     

    Mehrere OLEDs: vor allem Novski und Marxon haben Erfahrungen damit gemacht; Novski hat sogar eine eigene Wiki-Seite dafuer eingerichtet, auf der er sein VLR-8oDisp PCB beschreibt. Siehe auch: 

     

    > Kurz gefasst: Kann der Controller so vollständig mit Cubase funktionieren?

     

    Ich bin leider kein Cubase User...

     

    > Lassen sich mit sysex-Befehlen theoretisch (notfalls durch ausprobieren) jede Funktion einer DAW steuern, die irgendwie durch einen anderen MIDI-Controller gesteuert werden kann?

     

    Bei Logic geht das bspw. (man kann mehrere Protokolle parallel fahren). Bei Cubase weiss ich es nicht.

     

    Gruss, Thorsten.

  13. Hi Xavier,

     

    welcome on board! :smile:

     

    I just have doublechecked the usb_midi_2x2 application, it's working with various USB MIDI devices.

     

    Debugging: in this application the green LED should flicker whenever a MIDI event is received or sent, regardless from which MIDI port.

    Use it to check if your USB MIDI device sends messages, and that you are able to receive messages from a MIDI IN or OUT port.

     

    If this doesn't work, you could recompile the application with:

    #define MIOS32_MIDI_USBH_DEBUG 1

    added to the mios32_config.h file

     

    This will enable some debug messages in mios32_usb.c which are sent to the MIDI OUT1 port and can be displayed by the MIOS Studio terminal.

    E.g. you should see a notification about the USB MIDI Device name, manufacturer, ID when the device is plugged in.

     

    Best Regards, Thorsten.

  14. Well, both proposals don't really make the SAVE function more comfortable.

    Multiple key presses are required for this "safe save" handling, but actually you wanted a simplified solution.

     

    Back to a dedicated SAVE button, which you could somebody could assign to a free button (e.g. F1..F4) and/or to a bookmark?

     

    Best Regards, Thorsten.

  15. Many proposals, but somehow they don't harmonize with the way how I would do this.

     

    E.g. I would never make a save function accessible from the PATTERN page - this page is intensively used during a live session, an unintended SAVE will hurt.

     

    Or predefined slots not only in the SONG, but also in the SAVE page... too much programming effort at my side for a single guy who requested this. Meanwhile I don't implement individual requests anymore, only if I see the potential need for many users, or some special need for myself.

     

    How about the following approach: in the SAVE page, press SELECT, then select A-H via GP#1..8 (if required), and trigger the save function by selecting 1-8 via GP button #9..16.

    This is similar to your request, but wouldn't be in the (dangerous) PATTERN page.

     

    And/or a dedicated SAVE button with the same capabilities?

     

     

    Right...  Forgot about the RAM thing - it would be useful, but it's not that important if it can't be done from a file on the SD card without using up a lot of RAM.

     

    Parsing a long list from SD Card w/o RAM caching will slow down the user interface, and/or could affect the sequencer timings (especially if the sequencer loads from SD Card in parallel, e.g. the .mid file player).

     

    Doing some clever caching (pre-fetch entries depending on increments/decrements) is possible, but not worth the effort.

     

    So, I hope that a dumb "doesn't work" from my side is a sufficient answer for such a request.

     

     

    Best Regards, Thorsten.

  16. On the save page, you have to hit save twice to save a pattern - on the first screen you select the pattern and the target, then hit save.  Then, on the second screen you name the saved pattern and hit save again.

     

    The most simple way to save a pattern is in the main page: press EXIT, then GP#10: this will save the patterns of all 4 groups at once

     

     

    Trouble is, the save button is in a different spot on the two screens - on the first it's GP#8, on the second it's GP#16.  If the save button was in the same place on both screens, it would be easier to quickly save patterns, especially when you don't want to bother naming the pattern - then you could just quickly hit the button twice.

     

    "Pressing a button twice" is not a good solution, because if a bad button is bouncing, you would store the pattern w/o a name unintentionally.

    It was my intention to use a different button, and it was intended that it doesn't trigger a destructive action, such as SAVE, Ins, Del...)

     

    However, with the SAVE function in the main page, I guess that your request is already satisfied, no?

     

     

    Also, it would be great to have a button that would automatically select the first empty slot in the selected pattern bank as the save target (so you don't have to spin through all the slots with the encoder to find an empty one)...  This button could go in GP#8 if the save button was moved to GP#16...

     

    Maybe there is a better way that you probably haven't explored yet.

    This was an outcome of a discussion with multiple users - we wanted to achieve a comfortable save function and a well structured bank (so not just picking up a random free patch slot.

     

    This feature was introduced with V4.077 (see changelog):

    o a very useful "quick save" function has been added which significantly improves
         the song phrases handling.
    
         The new function will store the current mixer and pattern setup into predefined
         bank positions:
           - Phrase A will use Mixer Map #1 and Patterns 1:A1 2:A1 3:A1 4:A1
           - Phrase B will use Mixer Map #2 and Patterns 1:A2 2:A2 3:A2 4:A2
           - Phrase C will use Mixer Map #3 and Patterns 1:A3 2:A3 3:A3 4:A3
           - ...
           - Phrase P will use Mixer Map #16 and Patterns 1:B8 2:B8 3:B8 4:B8
    
         After the store operation, following references will be copied into the phrase
         slot of the song:
           - 1st phrase step: the current mutes
           - 2nd phrase step: selects the new mixer map
           - 3rd phrase step: selects the new pattern set
           - 4th phrase step: jumps to the 3rd phrase step (could be useful in song mode)
    
         How to use this function:
         Start a new session, edit some tracks, start jamming.
         Whenever you've found sequences which play well together, change to the SONG page,
         press&hold the SELECT button, then select "Save&Take over Patterns" with GP button 16.
         Thereafter release the SELECT button, and select the target phrase slot with
         one of the GP buttons -> this will store the current mutes/mixer map/patterns
         into the predefined bank positions and insert references into the phrase slot.
    
         Now you can continue jamming, change tracks, change mixer values, change mutes.
         Whenever you found a new nice working sequence, go to the SONG page and store
         it into another phrase slot (or overwrite an existing slot).
    
         The stored phrases can be restored as usual with the GP buttons in the song page.
    

     

    It would also be cool to add an auto-name feature so you could get easy to remember names without having to program them in - you could implement this by having a long list of random words (eggplant, tree, horse, Brazil, lampshade) on the SD card, and having a button on the naming screen that randomly selects one of the words from the list to use as a name.

     

    Interesting idea ;-)

     

     

    Is it easy for users to add at least a few hundred words to the "PRESET" list without recompiling the firmware (like in a config file somewhere)?  If so, this is already half-implemented...  Maybe the button under the "PRESET" knob (GP#15) could be used to randomly select a word from the list of presets? 

     

    This would consume RAM memory, but there is not enough memory free on a MBHP_CORE_STM32 or MBHP_CORE_LPC17.

     

    I could add this feature to the "MIDIbox SEQ V4 Plus" request list (MBSEQ V4 Plus will require a MBHP_CORE_STM32F4), but it could mean that then I've to refuse other feature request which consume memory as well.

     

    How important is this idea? What do other users think about this?

     

     

    Usability wise, it would be useful if pressing the <> button (GP#12) toggled cursor position between the first character of the category and the first character of the name.

     

    Good idea, added to the Wishlist: http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fsequencers%2Fmidibox_seq_v4%2FCHANGELOG.txt

     

    Best Regards, Thorsten.

  17. A new version is available:

     

    MIDIbox NG V1.031
    ~~~~~~~~~~~~~~~~~
    
       o the STM32F4 variant of the firmware supports USB Host mode!
         See also 
    
       o MIDI clock input ports now disabled by default to avoid feedback loops
         in various setups
    
       o improved "ain_filter_delay_ms" implementation to support sensors (experimental stage)
    
       o Covered new use case which allows to transform velocity values of incoming notes.
         See cfg/test/conev_6.ngc
         EVENT_RECEIVER and EVENT_SENDER have to be specified with "key=any", so that any
         key will be received and sent.
    
       o support for DIN/DOUT emulation on digital IO ports J10A/J10B (LPC17: J10/J28)
         See examples in cfg/test/diocfg_1.ngc and cfg/test/diocfg_2.ngc
    

     

    Best Regards, Thorsten.

×
×
  • Create New...