Jump to content

TK.

Administrators
  • Posts

    15,246
  • Joined

Posts posted by TK.

  1. The BLM_X is the right choice (and not the KEYBOARD driver)

    Programming Example: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fexamples%2Fblm_x%2F

    Following configuration is required in mios32_config.h:

    // configure BLM_X driver
    #define BLM_X_NUM_ROWS            8
    #define BLM_X_BTN_NUM_COLS        8
    #define BLM_X_LED_NUM_COLS        8
    #define BLM_X_LED_NUM_COLORS      1
    #define BLM_X_ROWSEL_DOUT_SR      1
    #define BLM_X_LED_FIRST_DOUT_SR   2
    #define BLM_X_BTN_FIRST_DIN_SR    2
    #define BLM_X_ROWSEL_INV_MASK     0x00
    #define BLM_X_DEBOUNCE_MODE       1

    Schematic which shows the DIN/DOUT mapping: http://www.ucapps.de/midibox_seq/mbseq_v4_dio_wilba_layout.pdf

    Best Regards, Thorsten.

  2. On 21. März 2016 at 3:42 PM, jjonas said:

    However, I also tested Edit Recording mode a bit more, and found (and this is identical to pre5) that while Edit Recording mode does work in Mono/Poly with both SELECT and GP buttons (like I reported back earlier), this happens only when Fwd is 'on'. If Fwd is 'off' and you try to use Edit Recording mode with Poly, only one note gets recorded.

    should work now (link to pre8 below(

    On 21. März 2016 at 3:42 PM, jjonas said:

    If divider is doubled (speed halved) for the Guide Track, it will proceed only half-way before forcing pattern change. (See this comment and the next one.)

    issue is understood, but change isn't so easy, and will lead to incompatibilities.

    The background: the guide track defines the measure length in 16th notes unrelated to the track divider settings
    Maybe a proper documentation of this imperfection would help instead of an implementation change?

    Quote
    • Muting a track cuts off all playing notes on that track, but muting an individual note layer doesn't do the same for the note that's currently playing in that layer -> hanging notes.

    Noticed in the wish list, but a change won't be so easy...

    2 hours ago, phillwilson said:

    Request 1 - F button functions for live record.

    did you already try the new BUTTON_RECORD behaviour which has been introduced in pre7?

    For me it sounds that it's doing what you've requested

    2 hours ago, phillwilson said:

    2. Request 2 – Transpose tracks being more musically related to the current scale.

    Could you please try following pre-release?

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

    The transpose page got a new function >SCALE< which is active when you enter the page.
    Octave is controlled with GP2..8, and the semitone (based on the scale) is selected with GP9..16

    Best Regards, Thorsten.

  3. Hallo,

    Du koenntest die LED zwischen zwei DOUT Pins anschliessen. Ein DOUT Pin sollte auf 1, der andere auf 0 stehen. So kontrollierst Du die Farbe.

    Es waere jedoch besser, wenn Du eine 3-Pin LED nimmst. So koenntest Du die LED auch noch in einer dritten Farbe (Rot+Gruen = Gelb) aufleuchten lassen

    Gruss, Thorsten. 

  4. 1 hour ago, jjonas said:

    Random gate trigger layer: is the chance 50/50 or something else

    yes, the probability is 50:50

    Quote
    • Random value trigger layer: does this randomise all the values in all parameter layers of the step, or just some? Is the random value anything between 0-127, or is the intensity guided somehow?

    it will only randomize the note value between -12/12 semitones

    Quote

    MODE page option 'Sort' for arpeggiator mode: how does it sort the notes? Into an ascending order..?

    Yes, in ascending order

    Quote

    And is the unsorted note order the reverseof the play order, i.e. last played note is "number one" in the arpeggiator track notation?

    yes

    Best Regards, Thorsten.

  5. 19 minutes ago, Lamster said:

    The 1.019 is metioned here in the NG first steps document http://www.ucapps.de/midibox_ng_manual_fs.html

    This page refers to a feature which was introduced with the MIDIbox NG version V1.019 (I added this detail to make it clear)

    20 minutes ago, Lamster said:

    I think more reading and revision is needed on my part while I get my head round the MIOS system. I realised that I can't type anything in the box so forcing single use USB is a problem

    commands have to be entered into the special text box under the terminal window

    Best Regards, Thorsten.

  6. Hi,

    Bootloader V1.018 is fine, where did you find the hint that V1.019 should be used?

    Quote

    I'm "guessing of course" that the NG project replaces the bootloader and is then not being loaded and causing some kind of lock up ?

    No, a MIOS32 application doesn't replace the bootloader, this part resists in a protected range.
    You could upload the application .hex file directly with ST Link, in this case the flash gets the bootloader + application binary
    In both cases MIDI upload should work

    Quote

    Is that 1 ignorable error a factor in this?

    No, the ignorable error really can be ignored, no reason to be worried about that

     

    Questions to you:

    - which Windows version are you using?
    - some Windows versions require the "single_usb" option, see also: http://www.ucapps.de/mios32_bootstrap_newbies.html
    - note that the single_usb option will be overwritten to the default (0) whenever you are overwriting the flash contents with the ST link programmer.

    Proposal for further troubleshooting:

    - flash the MIOS32 bootloader update application again with ST Link
    - activate the single_usb option via MIOS Studio terminal as described in the "newbies" page (search for "single_usb")
    - after "store", reconnect the USB cable
    - wait until Windows found the device
    - re-open MIOS Studio
    - upload the application

    Best Regards, Thorsten.

  7. On 11. März 2016 at 6:49 PM, jjonas said:

    MODE page 'Restart' option: there seems to be some false triggering going on with restart (one key press results in one or more triggerings), as well as short delays in re-starting the track sometimes

    I checked this at my side, the restart option works as expected.

    False Restart triggering might occur if multiple sources control the arpeggiator.
    It's important, that either your external keyboard, or a loopback track controls the T&A bus. They shouldn't control the bus at the same time

    The delay is due to the step synchronisation.

    Best Regards, Thorsten.

  8. On 17. März 2016 at 2:06 PM, doc007 said:

    Since I changed my SD card I can upload MBSEQ_HW.V4 and save it on my sd card to use my wilba's frontpanel. But later if I try for example to change the midi port ( pressed MENU + MIDI and select Midi Router on the left LCD ) I have an error :

    [16338.948] [SEQ_FILE_C] Failed to open/create config file, status: -11
    [16338.949] [SDCARD_ERROR:-11] DFS_OpenFile(..DFS_WRITE..) failed

    What do you think ? hardware or software error ?

    Thanks for the answer

    Could it be, that no session has been created yet?

    On 17. März 2016 at 10:45 PM, EsotericLabs said:

    Feedback on 4.091 beta5, the extended chord table function.

    • configured a track for chords, initialized it, then set the parameter layer to Chrd2 and confirmed with GP button
    • switched to edit mode, stepped though all chords while playing them on my sound card.
    • Technically no issues found, only the 13  chords  (maj13, dom13, min13) are off  - my bad! all '20'  in the extended chord table code should be '21'.

    updated 6 note extended chord table in C code:

    Now also updated in the pre-release below

    On 17. März 2016 at 9:05 AM, k-rAd MB6401 said:

    i'm not sure if i'm the first to find this problem.....

    Drum triggers from analog out  via ch16 will turn off if a delay of "0ms" is selected on all the midi outs in the bpm page.

    In other words I can mute and unmute my 16 DOUT drum triggers by toggling between 0ms and -1ms on any midi out in the bpm page.

    Currently running v 4.089 maybe this is already fixed in v 4.091?

    please try the pre-release below (but I haven't changed anything for the drum triggers...)

    22 hours ago, k-rAd MB6401 said:

    First steps are also not played when midi delay is used. 

    I can't reproduce this, the first steps are played when MIDI delay is used.
    Is this somehow related to the issue that you reported on the 17th march?

    On 19. März 2016 at 8:53 AM, jjonas said:

    One additional note to 4.091 beta: When AStart is 'on', the first played note gets recorded correctly on the active track, but if there are notes in other tracks, the notes in the first steps of those other tracks won't be played.

    I can't reproduce this, the first steps of all other tracks are played in step and live recording mode

    On 17. März 2016 at 2:59 PM, jjonas said:

    Feedback on 4.091 beta. To the extent I tested, everything worked except one thing:

    • I assigned JAM_LIVE and JAM_STEP to the F1–F4 buttons (and disabled the "zero-address" lines for the buttons from elsewhere in the HW setup file). JAM_LIVE has no visible effect, while JAM_STEP takes you to the Jam page, but the Step/Live mode is always what you have chosen manually on the Jam page earlier. In this sense BUTTON_JAM_STEP works like the old BUTTON_RECORD.

    should work in the pre-release below

    3 hours ago, Gridracer said:

    Could it be possible that there is a little failure in the Step_digits shematic?

    http://www.ucapps.de/midibox_seq/mbseq_v4_bpm_digits.pdf

    Step_digits.jpg

    Thanks for pointing this out! The schematic has been fixed.

    On 17. März 2016 at 2:59 PM, jjonas said:

    BTW at some point in the draft manual thread I suggested that the default F1–F4 button functions in the HW setup file should be updated. I'm sorry to flip-flop on this, but since I made that suggestion I found that the Bookmarks page is actually available rather easily with MENU + SELECT, and tap tempo is available similarly with MENU + PLAY. On the other hand, the Track Selection (TRACK_SEL) page is not available easily, so probably it should take the place of bookmarks or tap tempo in the F1–F4 button default options...?

    I changed the Fx assignments again:

       o hwcfg/wilba*/MBSEQ_HW.V4: default F1-F4 assignments changed to:
         F1: Track Select, F2: Live Forwarding, F3: Recording, F4: Save All
    

    Here a link to the pre-release:
    -> (removed obsolete link)
    -> please find pre7 in one of the next postings

    Best Regards, Thorsten.

  9. before we drift into an academical discussion: Sauraean, I added the hooks into the MIOS32_SDCARD driver for you, so that you can experiment at application level w/o touching MIOS32 code.

    The change is available in the SVN repository, please update.

    MIOS32_SDCARD_SectorRead (and SectorWrite) now contain:

      // read 512 bytes via DMA
    #ifdef MIOS32_SDCARD_TASK_SUSPEND_HOOK
      MIOS32_SPI_TransferBlock(MIOS32_SDCARD_SPI, NULL, buffer, 512, MIOS32_SDCARD_TASK_RESUME_HOOK);
      MIOS32_SDCARD_TASK_SUSPEND_HOOK();
    #else
      MIOS32_SPI_TransferBlock(MIOS32_SDCARD_SPI, NULL, buffer, 512, NULL);
    #endif

    so, once a function for MIOS32_SDCARD_TASK_SUSPEND_HOOK has been assigned, it will be called after MIOS32_SPI_TransferBlock. In addition, MIOS32_SDCARD_TASK_RESUME_HOOK will be called by the DMA callback

    In your mios32_config.h file, add following code:

    extern void APP_SDCARD_TaskSuspend(void);
    extern void APP_SDCARD_TaskResume(void);
    #define MIOS32_SDCARD_TASK_SUSPEND_HOOK APP_SDCARD_TaskSuspend
    #define MIOS32_SDCARD_TASK_RESUME_HOOK  APP_SDCARD_TaskResume

    And somewhere in your app.c file:

    void APP_SDCARD_TaskSuspend(void)
    {
      // suspend task here
    }
    
    void APP_SDCARD_TaskResume(void)
    {
      // resume task here (will be called from DMA callback, it's an ISR)
    }

    Best Regards, Thorsten.

  10. No problem at my side, something is probably wrong in your MBSEQ_HW.V4 file

    Try the original hwcfg/wilba/MBSEQ_HW.V4 file, if you notice the same, then maybe related to a connection issue? 
    In this case, I would expect that the same issue happens with older versions

    Best Regards, Thorsten.

  11. No problem at my side, something is probably wrong in your MBSEQ_HW.V4 file

    Try the original hwcfg/wilba/MBSEQ_HW.V4 file, if you notice the same, then maybe related to a connection issue? 
    In this case, I would expect that the same issue happens with older versions

    Best Regards, Thorsten.

  12. Quote

    The reason I was talking about adding this to the generic MIOS32 SD card functions is that other than the portability issue, I would think that most applications would want the behavior of the CPU being freed while a SD card DMA transfer was in progress.

    I assume that only a minority of applications need this.

    During SD Card transfers FreeRTOS will switch to other higher prio tasks automatically within 1 mS (preemptive multitasking is enabled). If you organize the task priorities accordingly, there isn't a problem with the blocking behaviour. E.g. I don't see a need for MBSEQ, MBNG, MBCV

    Best Regards, Thorsten.

  13. Alright, so could you please try following pre-release at your side?
    -> http://www.ucapps.de/mios32/midibox_seq_v4_091_pre5.zip

    Changes:

       o Jam page: AStart now starts to record into first step in 
         live recording mode (as intended), it starts on the selected step
         in step recording mode
    
       o Purpose of Record and Live Button & LED change:
         they switch between record (and live) mode w/o changing to the Jam page
    
       o new button/LED combo: JAM_LIVE and JAM_STEP: they switch to the JAM
         page and select Live resp. Step recording mode
    
       o removed obsolete (non-working) pattern based scale control
    

    as you can see, the Auto-start doesn't change the selected step in step recording mode anymore, because this causes more issues than it's worth to add workarounds into the code.

     

    Quote

    I tried to do that just now, with the previously mentioned two patterns, both of them now have a CC track that's sending on Bus1 (the only bus that allows you to send internal CCs) on channel 1 (I guess the channel doesn't matter because no single track is being controlled here)..? Control on the scale page is 'Global'. However, I'm only able to change the scale when I change the CC track value on the track (and the seq is playing), but not when the seq is playing and I change between patterns (but don't change the CC values manually). The first pattern sends CC#03 value 0 and the other sends value 2, or whatever two different values, but no matter what the values are, after pattern change the scale will always return to 0:Major.

    I guess that you are sending CC#03 from a CC layer of a Note track. In this case, each step will send a CC independent from the gate, which means that you've to configure the correct scale value for each step of the CC layer, otherwise steps with value 0 will change back to 0:Major.

    If you are using a CC track instead, the value will only be sent if the gate is enabled.

    Best Regards, Thorsten.

  14. This would be some kind of gateway to the SD Card; I agree that this would be the right choice for this use case, but the existing FILE->FatFS->MIOS32_SDCARD APIs couldn't be used for this purpose.

    Instead, a dedicated SD Card handler would be required which knows from which sectors the data can be read (or written).

    Actually very similar to the SD Card Sampler project: http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fsynthesizers%2FSD+card+sample+player%2Fapp.c

    which caches the "file positions" and can read them via MIOS32_SDCARD_SectorRead

    The queue handling would require an alternative SDCARD_SectorRead function (implemented at application level) which uses the DMA callback mechanism as you described.

    The good thing: this dedicated handling doesn't require any change in existing drivers.
    And it's definitely the best choice performance-wise - if we ignore the fact that it requires some more code at application level (but this code could be "hidden" in a driver ;-)

    Best Regards, Thorsten.

  15. Quote

    My idea was a button with which to switch the Jam page Rec setting on/off, with an LED to indicate the status. This would be to spare me from having to go back and forth between the Jam and the EDIT page just to change the Rec setting. In that sense my idea is simpler than monokinetic and TK's ideas I think.

    No, this idea isn't easier, because the UI handler was originally implemented in a way that recording can only be done in the JAM page.

    It's available in the EDIT page due to some dirty tricks - actually it started as a try if this handling makes sense, and it seems that it was highly appreciated by the community (and I used it by myself as well :)

    As you report later, it's not working perfectly (poly mode not handled correctly anymore)

    Actually I would have to overwork the internal recording handling, the way how it's activated and routes incoming MIDI events.
    I've to check what this really means, currently I can only assume that I need the help from some beta testers to ensure that I haven't forgotten an important mechanism during the changes.
    Now where this fundamental change got a higher attention: who would like to attend the beta testing? (maybe I've some time for the change next week)

    Quote

    If its helpful to redefine the extended chord table to a four note per chord maximum, please say so, that is not too hard. Many chords can do without a fifth, if that helps to preserve the arpeggiator function (i'd want to add the minor 6 after all..)

    The arpeggiator function isn't in danger, it's only a minor detail which doesn't work as expected by Jjonas while he intensively reviewed the MBSEQ functions, but there is no need to downstrip the chords for that reason.

    Best Regards, Thorsten.

  16. Quote

    EDIT: To confirm: Does this mean that if you use a 4+ chord from a chord parameter layer as an arpeggiator source, only the first four notes will be used? If yes, I'll document it provisionally like this (and finally when the 4+ chord firmware comes out).

    The arpeggiator will take the last 4 played notes, which unfortunately means that on a 5-note chord, the first key of the chord won't be taken.

    Quote

    If live mode means that the sequencer is running, I haven't managed to get them working. The FTS on the Misc. page can be 'on' while ForceScale on the MODE page is 'off' and vice versa, and Oct. on the 'Misc.' page can be +3 while octave transpose on the TRANSPOSE page is +0. In both cases it seems the MODE and TRANSPOSE page values are the ones that determine the actual value.

    It works at my side:

    Fwd on (which I somtimes call "live mode" because this was the original term)
    Play some notes on the keyboard, the should be forwarded.
    Now increase/decrease the Octave - the incoming notes should be transposed.
    Enable FTS: the incoming notes should be forced to scale.
    Enable Fx, enable (for example) the Echo effect, ensure that the sequencer is running: an echo should be played.

    Quote

    I start a new session, where I'm using two patterns, 1:A1 and 1:A2. Both of them are 16 steps long, forced to scale, and have the same quarter notes: C – D – E – F. I select 1:A1, go on the scale page, set Control to 'Group 1', select 0:Major and save. Then I select 1:A2, go to the scale page, change scale to 1:Harmonic Minor, and save.

    If I now change the patterns on the scale page, the scale won't change. Instead the scale is always whatever I chose last on the scale page. It doesn't help if I save the patterns individually (instead of saving the whole session). What am I missing?

    Hm, I just looked into the code - actually an important piece is missing: the SCALE information won't be stored in the pattern, because it isn't available as a NRPN parameter.

    I think it would be better if I would just remove this feature.
    It's inherited from MBSEQ V3 (where I implemented it as an own idea) - but apparently nobody (including me) used it for MBSEQ V4 so far.

    Any objections? ;-)

    Best Regards, Thorsten.

  17. No, I wouldn't provide a MIOS32_TaskSuspend function, but integrate an optional (#define based) call into the MIOS32_SPI module which would initiate the suspend for SPI transfers instead - similar to the way how I integrated Mutexes.

    You are asking specific questions where it would be easier for me to implement a generic change based on a prototype that you provide for your specific use case. Means: try to modify the current code until you are satisfied, explain your changes (don't commit them to the repository), and then we've a good basis for further discussions. This makes it much easier for both sides.

    Best Regards, Thorsten.

×
×
  • Create New...