Jump to content

TK.

Administrators
  • Posts

    15,246
  • Joined

Posts posted by TK.

  1. Alright, so please try this version:
    http://www.ucapps.de/mios32/midibox_seq_v4_095_pre3.zip

    This turns your MIDIbox into a MIDIbox SEQ V4+ :)

    For the V4+ variant CCs can be assigned to drum track layers.
    The CC number is statically assigned: the first assigned layer will send CC#16..C#32, the second assigned layer CC#33..C#48, etc. depending on the drum instrument.

    I tried this with the MIDI automation of StylusRMX, and it works there.

    Best Regards, Thorsten.

  2. @k2z3k0 and @u-link: are you already using the STM32F4 core? In this case I might be able to provide configurable drum CCs as an option for MBSEQV4+

    @k2z3k0: I'm surprised that the screen isn't updated immediately in your case, I've to check this!

    @u-link: drum track transpose: good idea! I will check this
    And thanks for starting a cheat sheet! :)

    @slo: there is a third pointer which is the "song position", currently not displayed in the menu page, but only in the song page. I've to check & document, how this works together with synchronized mutes/unmutes.

    Best Regards, Thorsten.

  3. The required source code change isn't so difficult, but I can't provide this as a generic solution to everybody since it generates some overhead at my side (people ask for documentation, more comfortable configuration, special options, etc).

    So, for your particular case, the SEQ_MIDI_ROUTER_Receive function has to be enhanced: http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fsequencers%2Fmidibox_seq_v4%2Fcore%2Fseq_midi_router.c

    By something like:

    if( port == UART0 && midi_package.event == NoteOn && midi_package.velocity > 0 ) {
        int offset = 14;
        if( midi_package.velocity <= offset )
            midi_package.velocity = offset+1;
        midi_package.velocity = (127*(midi_package.velocity-offset)) / (127-offset);
    }

    This would apply the linear curve to all notes received via MIDI1 (UART0)

    Best Regards, Thorsten.

  4. Happy new year! :)

    I just tried the random generator, (still) works fine at my side - need more input.

    Concerning CC layer in drums: technical problem is, that there is no place to configure the CC number:
    - the memory area which is usually used to configure the CC number is allocated by the Note number of the drum instrument
    - but even if I would introduce dedicated memory locations for the CC number, I've no idea where to place the configuration item - the EVENT page is completely allocated. :-/
     

    The only possibility that I see is to provide pre-configured CC numbers for drums (such as CC#1 - Modulation Wheel) - but I'm sure that people will ask for more flexibility sooner and later for good reasons, so that the actual problem won't be solved.

    Best Regards, Thorsten.

  5. Congratulation, really good work! :)

    I would like to give some feedback on the MCU usage: I don't think that it's really required, the STM32F4 core has more than enough bandwidth to handle this as a "background task".

    According to your documentation you decided to use a separate MCU for this task due to limitations in MBNG. But this limitation only exists since I preferred less latency and universal usage (SRIO can be used for multiple purposes, not only for controlling RGB LEDs).

    If these design constraints wouldn't exist, we could simply control the SRIO on a similar way like you did in the MCU code.

     

    MIOS32 provides a MIOS32_DONT_SERVICE_SRIO_SCAN switch which can be defined in mios32_config.h to disable the common SRIO scan approach. With this switch you are able to initiate the scan in your app

    MBNG works this way meanwhile, but a more simple example can be found in the Keyboard tutorial: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Ftutorials%2F029_keyboard_velocity%2F

    The first transfer is initiated with MIOS32_Init():

      // limit the number of DIN/DOUT SRs which will be scanned for faster scan rate
      MIOS32_SRIO_ScanNumSet(2);
    
      // speed up SPI transfer rate (was MIOS32_SPI_PRESCALER_128, initialized by MIOS32_SRIO_Init())
      MIOS32_SPI_TransferModeInit(MIOS32_SRIO_SPI, MIOS32_SPI_MODE_CLK1_PHASE1, MIOS32_SPI_PRESCALER_64);
      // prescaler 64 results into a transfer rate of 0.64 uS per bit
      // when 2 SRs are transfered, we are able to scan the whole 16x8 matrix in 300 uS
    
      // standard SRIO scan has been disabled in programming_models/traditional/main.c via MIOS32_DONT_SERVICE_SRIO_SCAN in mios32_config.h
      // start the scan here - and retrigger it whenever it's finished
      APP_SRIO_ServicePrepare();
      MIOS32_SRIO_ScanStart(APP_SRIO_ServiceFinish);

    See APP_SRIO_ServicePrepare() and APP_SRIO_ServiceFinish() how to prepare and process a scan.

    Since the STM32F4 is pretty fast, there is no need to use a timer in your case.
    Just start the next scan once the last has been finished and buttons have been checked like shown in the tutorial.
    This results into back-to-back scan, where the update speed is a result of the number of SRs and the SPI transfer rate - both values are set in the example above.

     

    This way you could also store new RGB values in the DOUT registers.

    BAM should be possible by updating the DOUT register only each 2nd, 4th, 8th, 16th time.

    Pseudo code:
        iteration_ctr = (iteraction_ctr + 1) % 16;
        if( iteration_ctr == 0 || iteration_ctr == 2 || iteration_ctr == 4 || iteration_ctr == 8 ) {
            bam_ctr = (bam_ctr + 1) % 4;
            DOUT = color_value[bam_ctr];
        }


    Best Regards, Thorsten.

  6. 19 hours ago, u-link said:

    Alright, I get it: for it to work reliably, you FIRST need to press Copy, then, while it's copying (and you are still holding Copy), you need to press Paste. The Patterns in the new Slots then get selected immediately, ignoring the Pattern Change Synchronization Option (3/25). Wouldn't it make more sense if that would be kept? Imagine you are wanting to make the copy-paste-and-switch-action after 16 bars of playing one Slot, easy to trip you out of the right counting like that. 

    I don't think that a pattern synchronisation makes much sense for this operation.
    If it's only because you want to get an orientation about the pattern position, then we've to find other measures (see below)

    19 hours ago, u-link said:

    While I was trying this out, I realized something else that seems counter-intuitive: With Pattern Change Synchronization on, you need to set Option 2, "Pattern Change Synchronization Change considered each XX steps" the same or smaller as Option 1, Track Synchronization Steps per Measure. That is unfortunate, as again, imagine you only ever want to change patterns every 16 bars (the max step number of 256), but you want that irregular 14 step pattern on Track 5 reset every two bars (which is why you set Track Synchronization Steps per Measure to 32). No luck, stuck on that pattern! So I would argue it would be better if these two were independent from another, meaning the Track Sync doesn't reset the Pattern Change Sync "step counter". If one were to compare  to Ableton Live, you can set the "Global Quantization" to be 16 bars, but each clip can have any length.

    You are right! Nobody complained about this dependency so far, but I can easily change it.
    Resp.: did this now in v4_095_pre1, please try it out: http://www.ucapps.de/mios32/midibox_seq_v4_095_pre1.zip

    20 hours ago, u-link said:

    It would also be great if these two "counters" would be included in the Step View (underneath the Pattern Overview Cursor maybe, as two lines filling up), to give you a "synchronization aid" if you've been jamming so hard you fell out of the count. 

    In the Root Menu, there is a Measure counter anyways, so what about refining this to be included in the Step View, too, displaying both "Total Measures Played" and "Measures Played since this Pattern Was Selected" - handy to see how long you have been on the same pattern.

    Unfortunately no place in the step view.

    In v4_095_pre1 I added it to the main screen (root menu), hope that it helps

    Best Regards, Thorsten.

  7. A new minor-release is available:

    MIDIboxSEQ V4.094b
    ~~~~~~~~~~~~~~~~~~
    
       o fixed LED handling for common frontpanels (e.g. MUTE LED stayed active regardless of selected view)
    

     

    On 16.11.2017 at 6:42 PM, k2z3k0 said:

    is that wierd that my stfm32f4 cpu is 80% when sequencer is idle

    and 20% when busy?

    Here the explanation for this effect: the high load is caused by LED updates.
    Whenever the sequencer is playing, LEDs will only be updated when a new step is played, or the user pressed a button.
    But in idle mode I simply update them each mS regardless of this.
    It has no real impact on the performance, but it could be improved in future.

    On 17.12.2017 at 2:22 PM, u-link said:

    There are no Song Mode events that allow to automate changes of Force To Scale and the Root Note, and also Groove settings. 

    You are right, currently these settings can only be automatically changed by switching to another session.

    It would be difficult to integrate this into the song tables. Especially groove settings might contain a lot of additional data (e.g. if customized grooves are used) which doesn't fit into the table format.

    On 17.12.2017 at 2:22 PM, u-link said:

    doesn't seem to work here (STMF32F4). It does say it copies patterns to PRESETS on the screen, but when I then switch to the next Pattern position, it's empty. Am I doing something wrong?

    This behaviour was requested by k2z3k0: 

    COPY+PASTE in the PATTERN view will only copy the groups and switch to the next slots. In order to permanently store into these slots you've to push the SAVE button (if not assigned to a Fx button, enter EXIT and press the SAVE button there).

    Best Regards, Thorsten.

  8. This is exactly the behavior if there is no (or no matching) MBSEQ_HW.V4 file on your SD Card.
    Because in this case the "standard frontpanel" layout will be selected, which has no multiplexers (like Wilba's one) - hence, one button can trigger multiple functions, and some LEDs are assigned to 8 functions as well.

    Note that the file is named "MBSEQ_HW.V4" and not "MBSEQ_HW.V4.txt" - could this be the error?

    Are you aware of this page which describes the installation procedure?
    http://www.ucapps.de/midibox_seq_manual_in.html

    The MBSEQ_HW.V4 file is located in the hwcfg/wilba directory of the release package.

    The latest firmware version can be found under: http://www.ucapps.de/mios32_download.html
    We've V4.094 meanwhile... and the MBSEQ_HW.V4 has changed...

    Best Regards, Thorsten. 

  9. On 5.11.2017 at 11:25 PM, K-rAd said:

    I am also experiencing the crash when doing a 'save as' of the session while seq is running.  V4.091  STM32

    Looking forward to checking out the new version.

    Does it still happen with the new version?

    I'm asking because I'm still not able to reproduce this.
    However, I noticed that sometimes the sequencer is not running smoothly during the save operation - but it doesn't lead to a crash. After the operation it continues as usual.

    Best Regards, Thorsten.

  10. On 6.11.2017 at 1:15 AM, u-link said:

    Amazing, it's working! I also really dig the name. "Shadow Out" - will make a track with that name. Thorsten, you are the man.

    cool! :)

    On 6.11.2017 at 1:15 AM, u-link said:

    Can anybody shed some light into the new option 15/25, "Sending Selected Track as CC to a DAW"? I quickly fiddled around with it a bit, but I don't get it to output anything. What are those sixteen CCs? The values set in each Parameter Layer? Or CC parameters to change settings of the track itself, like LFO Amount, MIDI Delay Feedback etc?

    Whenever you select a track, a corresponding CC will be sent (Port, MIDI channel and CC number can be configured).

    This feature was requested by somebody who wanted to synchronize the track selection with his DAW (as far as I remember it was Ableton Live) - but I don't know, what exactly he configured in his DAW, and I'm also not sure about the advantages. It was just a quick hack for him ;-)

    Best Regards, Thorsten.

  11. Hi Chris,

    adding a resistor (e.g. 470 Ohm) to between the core output pin and WS2812 is probably a good idea, see this posting for the arguments: https://electronics.stackexchange.com/questions/177019/why-does-a-resistor-in-my-neopixel-data-line-work-at-all

    The LED should turn off once the Core starts to drive data into the chain.
    Enable the "fastboot" option so that this happens as fast as possible

    Best Regards, Thorsten.

  12. I updated the documentation at the bottom of this page http://www.ucapps.de/mbhp_core_stm32f4.html

    It shows how the LCD should be connected

    mbhp_core_stm32f4_lcd_connection.jpg

    And I've some good news: I tried the wrong connection with one of my old LCDs - and this didn't fry the LCD.
    Instead, the Lumi pot changed the contrast - exactly the same effect noticed by @Nirokesan

    Changing the connection again - LCD working again! :)

    So, I think that my statement, that a wrong connection destroys the LCD is wrong, I just never tried this. ;)
    Actually this was based on experiences with the PIC based MBHP_CORE module, which had a different pinning.
    For 32bit cores a new pinning has been introduced, which seems to be fool-proven.
    And also based on the circuit this makes sense (although it wasn't my intention): Vs/Vd will be connected to B-/B+ if the connector is rotated, so that the Lumination pot controls the LCD supply current instead of the backlight supply.

    Best Regards, Thorsten.

  13. For me it's very interesting, that we now have a second case with similar symptoms. Maybe this gives me the missing hint for the root cause.

    Questions to you:

    • did you ever connect the LCD cable the wrong way by accident?
      Please don't try to change the cable orientation - this could destroy the LCD.
      If you are able to change the contrast of the black bars with the contrast pot, you know that it's currently connected the right way
    • which LCD are you using exactly?
    • does the same happen if only a single LCD is connected?
    • could you please check the connections with the "testlcdpin" command and report the measurements?
    • I built different STM32F4 core modules in the past, some of them are frequently used - and I never noticed such a problem.
      But there might be a general difference in my configuration: in the bootloader, I enabled "fastboot" mode.
      Could you please try the same at your side? The setup procedure is documented here: http://www.ucapps.de/mios32_bootstrap_newbies.html

    Best Regards, Thorsten. 

  14. A new version is available:

    MIDIboxSEQ V4.094
    ~~~~~~~~~~~~~~~~~
    
       o support for Antilog Frontpanel.
         The appr. HW configuration file can be found under hwcfg/antilog/MBSEQ_HW.V4
    
       o enhanced COPY/PASTE/CLEAR functions for following pages:
         - PATTERN page: copy/paste/clears all patterns.
                         Special function: by pressing COPY+PASTE the patterns will be pasted into the next slots
         - PARSEL page: copy/paste/clears the currently selected parameter layer only
         - TRGSEL page: copy/paste/clears the currently selected trigger layer only
         - INSSEL page: copy/paste/clears the currently selected instrument only
                        (useful for drums: corresponding trigger any parameter layers are cleared)
    
       o improved ALL button behaviour
    
       o New worflow for PATTERN page:
         GP 1/2, 5/6, 9/10, 13/14 allow to select group as well
         especially interesting for Antilog Frontpanel: Selection buttons can be used for mutes)
    
       o New workflow for MUTE page:
         Whenever a track or parameter layer is unmuted, it will be automatically selected
    
       o EDIT page: improved handling for chord layers
    
       o moved some configuration settings which were previously part of the
         MBSEQ_HW.V4 file to the Options page, so that they can be changed without
         a file editor:
         - MIDI remote key (or CC)
         - Track Selection CC
         - MIDI OUT Runtime Status Optimisation
         - MENU button assignments
    
       o support for "Shadow Out", which will forward the MIDI events of the currently selected
         track to a specified MIDI port and channel (e.g. can be used to visualize played notes
         with an external device). Select the port/channel in the OPTIONS page.
    
       o Metronome page removed. Please configure the metronome function in the Options page.
    
       o Pattern banks can't be modified by default anymore, because they are typically
         assigned to group 1/2/3/4, changed bank assignments can confused users
         to much. If somebody still finds this feature useful: it can be enabled in the
         Options page

    @u-link your requested MIDI routing option is called "Shadow Out" and works independent from the MIDI router

    This version should also satisfy frequent requests for trigger/parameter/instrument copy/paste/clear functions

    Best Regards, Thorsten.

  15. On 27.10.2017 at 4:10 AM, v4 said:

    i've run into a few hard crashes on the latest pre2 beta while trying to 'save as' while the mb is running. can anyone reproduce this? it happens about 50% of the time it seems. midi output freezes as well as all notes hang.

    @v4: which core are you using? MBHP_CORE_STM32, MBHP_CORE_LPC17 or MBHP_CORE_STM32F4?

    @u-link: I added your request to the wish list. Instead of a MIDI router option, I will probably provide this as some kind of global "duplicate" option intended to satisfy your use case, so that additional special functions could be added later without taking limitations of the MIDI router into account.

    The "mixer map on encoders in mute mode" is also on the wish list now (together with your other proposals) - I've to consolidate this with other ideas around mixer map usage. This could become an optional mode which can be activated by people who know how to use it (otherwise it will confuse common users too much)

    Best Regards, Thorsten.

  16. Thank you! :)

    As mentioned by Peter, the recording function will forward incoming MIDI events to the selected track. One of the 8 buttons above the jogwheel is called "Tracks", once activated you can change the track with the select buttons in the middle.

    In the video I'm mainly using the select buttons to control mutes and phrases. Since unmuting a track will also select it (upcoming feature in V4.094), mostly I don't need to switch to the "Tracks" function anymore.

    In the Mute page the select buttons seem to be redundant, because the GP buttons control the same. But: the mute function will stay active when you change to another page, which is quite useful in certain situations.

    Here an overview about the select button assignments:

    sel.png.8c2bf52fc94c2e98b1a183579d7d4116

    • Bookmark: e.g. can be used to switch to predefined pages, to mute/unmute/select multiple tracks, etc...
    • StepV: selects the step view
    • Tracks: selects the tracks (and group which belongs to the tracks)
    • ParL: selects the parameter layer
    • TrgL: selects the trigger layer
    • Inst: selects the instrument (especially useful for drum tracks)
    • Mute: as the name says
    • Phrase: as the name says

    Best Regards, Thorsten.

×
×
  • Create New...