Jump to content

TK.

Administrators
  • Posts

    15,246
  • Joined

Posts posted by TK.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. Hi Przemek,

     

    hm... at least I can say that this isn't related to the software, especially because all inputs are debounced.

    Maybe buttons and encoders are damaged, e.g. because the guy who soldered the components overheated them.

     

    E.g. I had a similar problem with a button which is also used in the sammich devices and had to replace it.

     

    Best Regards, Thorsten.

  14. Fine! :)

     

     

    1. As the id-mapping for the scs-ports beginns now at 1 , what happens if i would connect additional DINs? Continuing at id=17?

    additional, not topic-related questions:

     

    The J10 ports overlay DIN shift register positions.

    So, with this default example DIN 1 and 2 wouldn't have a function anymore.

    If somebody would add a MBHP_DINX4 module, and still would like to use the J10A/B based inputs, he would change the emu_din_sr parameter to higher numbers (of unused DIN SR positions)

     

     

    ( 2. Dont want to ask for a new feature again, ... but is it possible to build a NG-Application with something like a default NGC, that the people at the workshop dont need to solder the sd-card interface? Of course i could compile one with some custom fixed-config code, but maybe i just overlooked that "Avoid-SD-Card"-Feature ) 

     

    No, this isn't possible.

    Just build the Low-Cost adapter as documented here: http://www.ucapps.de/mbhp_sdcard.html

     

    Best Regards, Thorsten.

  15. Great!

     

    Thanks also for the detailed report. I guess that sooner or later somebody else with similar interests will come back to us. :)

     

    > Is that easy to "just" remove the PID controller in the MF soft and assign output not to the PIC PWM but AOUT ?

     

    yes, this would be easy. Do you have a schematic of the PID controller?

     

    Best Regards, Thorsten.

  16. @stuartm: 

    While for sound affecting CCs it perfectly makes sense to first dump the program change and then the CC, in the case of the bank change it should be the other way around to get it working.

     

    V4.084 got a new function which helps to overcome this issue. In the UTIL->Options page you can define the order at which particular CC layers are sent (before or after program change).

     

    @Luke:

     

    Hmm this only seems to occur on existing tracks. If i switch types and init it works. Also affects my preset tracks.

     

    I haven't changed the format in the last years... this seems to be an unintended change.

     

    Could you please send me one of your preset tracks so that I can compare?

    And do you remember with which version you created the problematic tracks?

     

    Best Regards, Thorsten.

×
×
  • Create New...