Jump to content

TK.

Administrators
  • Posts

    15,198
  • Joined

Posts posted by TK.

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

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

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

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

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

  6. Hm... so much text so late in the evening (and I already had to read so many topics today ;-)

    Are there any specific questions to me?

    Changing the firmware: some people find it simple, some others gave up - independent from their programming skills.
    There isn't so much documentation available about the MBSEQ firmware architecture and places where changes have to be done. There is also no documentation about "possible" and "impossible" features. A microcontroller is a very limited device, unlike a PC. You always have to keep the RAM consumption in mind. In addition, you've to check if the UI still allows the entry of additional parameters, or if an existing page has to be overworked, or a new page has to be created.

    People with good self education skills successfully added features in the past, w/o so much help from my side (which I can't give anyhow... ;-)

    Best Regards, Thorsten.

  7. The reason is, that all MIOS32 sources (under mios32/) work independent from FreeRTOS; I don't want to introduce special FreeRTOS mechanisms there to simplify ports to other operating systems in future.

    Another reason is, that in my use cases I haven't seen the requirement to allow the execution of same or lower prio tasks if the tasks which loads/stores from/to SD Card is stalled.

    If you want to try this in MIOS32, please don't use "SAURAEN_DMA_TEST" as a switch, and don't call FreeRTOS functions directly.
    (if it's only a test, you wouldn't submit the changes to the repository anyhow...)

    instead use a generic names, similar to the way how I made the integration of Mutexes optional (search for MUTEX)

    Best Regards, Thorsten. 

    P.S.: DIN/DOUT SPI transfers use the DMA callback hook - they are not waiting!

  8. Quote

    - Autosave mode when pattern changing (cool for editing , not for live....) or a buffer for not loosing work....( more complicated for engine ressource cause the buffer must remember all pattern change)

    Save : normal /auto /buffer

    At least I added it to the wish list now, but I've to warn you: this will require some work, and might result into some unexpected issues which need to be solved. So, please don't expect a perfect implementation from the beginning.

    Quote

    -multiloop mode (each track have this own loop settings) could be cool with a BLM dedicated page! for jam with micro loops!

    actually the entry of multiple loops only makes sense in conjunction with a BLM...

    Added it to the wish list.

    Quote

    MIDI FILTER for midi in (Song position Pointer/MMC/CC/Note)

    will allocate a lot of RAM.

    However, added to the wishlist for MBSEQ V4 Plus

    Quote

    - MIXER Map item at DEF. page port selection ( you could leave all your pattern in DEF port and a have one midi config for all your patterns.... nice if midi config change and quick way to config ) for EDIT mode.

    need more details to understand the request

    Quote

    - BLOCK selection page for copying pattern blocks where you want in the pattern.... (could be cool with the BLM)

    select with two GP button the block (interval between the two GP button) to copy and with SELECT+ GP button or the datawheel the point in the timeline to paste.
    it's like the *press & hold* COPY function but with selectionnable paste in the timeline...

    Is there really a difference compared to the current COPY/PASTE function?

    By holding PASTE you can move the block

    Quote

    - REDO

    for which purpose?

    Quote

    seeing as the pitch name on the transpose page (C3 etc) is not directly related to the pitch of the transposed track, could this be changed optionally to use something like "Nashvile Notation" where C=1, D=2, E=3, F=4, G=5, A=6, B=7 and octaves are the second number ( i.e C3 would be 1/3)  ..to me it would just be less mind boggling then looking as my transpose tracks G3 or whatever and having to think "this means A in my song" etc

    So, instead of transposing semitones, you would like to transpose the whole notes, and they should be displayed as 1/<octave>..7/<octave> - correct?

    I could add this as an option, but before I need to know, if this is the only change, or if variants are required. E.g. depending on the selected scale?

    Best Regards, Thorsten.

  9. Quote

    would be possible to have Recording going ON after UTILITY->CLR (maybe little check why data is not recorded)and Recording stay ON after SELECT+CLEAR ?

    or is this how its intended?

    I've to check the issue that you've reported, it isn't intended.

    Quote

    also one moment had idea that different Timing DIVIDE'rs for each layer could be great.

    Unfortunately this is impossible - each track has only a single set of track progression parameters (including divider)
    You've to use a second track assigned to the same MIDI port and channel.

    Best Regards, Thorsten.

  10. Quote

    Length, Divider, FX etc. setting are reset to default values, but 'Complete Track' doesn't clear anything on the Track Event and Track Instrument pages (Program/Bank change commands, Track name etc.).

    You are right. Track name isn't cleared as well, and the Program/Bank change commands are a new feature which (for me) belong to the general track configuration such as MIDI channel and port.

    Are you asking because you would like to improve the documentation, or because you request a change?

    Quote

    I'm not holding any inquisition here, I'm just trying to understand the logic <:-)

    The intention is to keep the basic track configuration, especially MIDI port, channel, event config, instrument selection (bank/program change), and everything else that I forgot.

    Yes, this part isn't documented well, but it's implemented to satisfy my personal use case.
    Hope that your manual will make it clear enough! :)

    Quote
    • There's a song position command from the official manual: "Stop. Stops the sequencer". However, there is no such option in the sequencer. In it's place there is "End", which loops the previous song position that played patterns, until the sequencer is stopped manually. A 'stop' comman that would stop the sequencer would be handy as well.

    I did this change ca. 4 years ago (renamed Stop to End, sequencer loops instead of stopping). Unfortunately changes where not properly tracked at this time, therefore I don't remember who requested this, and for what reason.

    I fixed the documentation. If there is a good reason for the "Stop", I could add this function, but apparently nobody missed it in the past.

    Quote
    • Sync'ing mutes/unmutes to measure (in the options menu): In song mode with Guide Track active, the measure countdown on the mute page for sync'd mutes/unmutes doesn't show the "right" numbers: if the guiding track is 16 steps long, and measure is set to e.g. 6 steps, the measure countdown will keep counting multiples of 6 until the guide track ends. This is not useful information, but probably in song mode it doesn't matter, because the idea of the song mode is to program most things predictably anyway, so it doesn't matter what the coundown shows. Just thought I'll mention this, I'm not suggesting anything should be done about it. (I've documented it as it is now.)

    Added to the wishlist to improve the countdown, it shouldn't be so difficult and leads to more consistency

    Quote
    • On the MUTE page and the special function of the ALL button: is there a difference between "muting a track" and "muting a track's layers"? There is an option "mute all tracks and all layers", is it different from just "muting all tracks"?

    The difference is, that you could unmute a track, and then the layers individually.

    This especially makes sense on drum tracks, but also for CC tracks

    Quote
    • An idea for the metronome: now the metronome sounds only when the sequencer is running. However, it would be handy if the metronome could be used for recording count-in, to prepare for the tempo of the recorded track. At the moment the metronome is bound to measure, I don't know but from a humble Arduino-programmer Froschperspektive ;-) an easy way to implement the count-in could be to have a fixed count-in of one measure (or perhaps a multiple of the set measure) if certain conditions are met; e.g. if (metronome == on) && (count-in == on) -> pressing PLAY (or the 5th tap tempo press) will start one measure (or user-set multiple of measure) count-in, and the seq proper starts only after that. Count-in on/off option could perhaps go on the Jam page Live recording settings, after Quantize, and any possible multiple-measure-count-in setting on metronome page (it probably doesn't need changing that often). Setting the count-in 'on' could also just automatically set the metronome 'on' as well. Any thoughts..?

    Make sense, added to wishlist

    Quote
    • is there a button & LED for the Jam page Rec on/off? If not, could there be?

    There is currently an open request for providing a dedicated Rec button for Step and Live recording mode.

    A possible enhancement of this button function would be, that the first push just changes to the Jam page, and an additional push (resp. whenever we are already in the Jam page) will enable/disable the recording function.
    Does this make sense?

    Quote
    • The PrgCh layer is not listed/documented in the official manual's parameter layer list (Track Event Configuration)

    added it

    Quote
    • Does it send a PC message in every step?

    it should only be sent if the value has changed (similar to CCs)

    Quote
    • Is there a risk of conflict if Track Instrument page sends a PC command at the start of the track, and the PrgCh layer sends another PC command at the first step? Should this be documented, "don't use them simultaneously", or is there a programmed hierarchy, "if A is set, B has no effect" or something like that?

    yes, we have this risk.

    In addition it make sense to highlight, that most synths can't process a program change immediately, resp. there could be an audible delay of following note events.
    This feature will only work properly with synths which can change the patch in "zero-time"

    Quote
    • Possible bug on Live Patterns subpage on the Jam page: if the Ptn. page is selected on the left LCD, but you change certain settings on the two LCDs and then press SELECT again to edit live patterns (Ptn. is still selected), the edit mode won't go on, but instead the page selection will change away from Ptn. to another page (on the left LCD). This happens if you have Ptn. page selected, change one the following settings, and then press SELECT to edit: If you pressed Length (GPK14), changes to MIDI page, if you pressed Fwd, changes to Step page, if you pressed Rec, changes to Step page. I think as long as Ptn. is selected, pressing & holding SELECT should always go to edit live patterns mode. Also, as a separate(?) phenomenon, if you press & release the SELECT button four times in a row, the fourth press changes away from the Ptn. page and to the MIDI page.

    added to the wishlist to clarify this issue (I remember that the implementation of this EDIT capability wasn't straightforward, will need some work to improve it)

    Quote
    • In section 6.1. on arpeggiator tracks: Up to four-note chords are supported, but what about the new chord parameter layer chords (the firmware is not ready yet) that have more than four notes in them?

    This is no bug, but a conceptional limitation.
    The arpeggiator had always only 4 key slots (already in MBSEQ V2), this can't be changed anymore.
    And the arpeggiator isn't directly related to the chord function.

    The support for chords with more than 4 notes is pretty new, but it's impossible to enhance the arpeggiator as well, especially since this would change the arp step configuration (-> incompatible legacy patterns)
     

    Quote
    • Possible bug on Misc. settings subpage on the Jam page: misc page octave transpose, FX and FTS on/off states have no effect

    They should have an effect in live mode

    Quote
    • 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've to check under which conditions the track will be retriggered

    Short delays don't surprise me, because the change is synchronized to the next step

    Quote
    • I don't really understand how the FX -> Scale page settings 'Control'. On the one hand, the official manual says of Control: "the scale and root note can either be controlled globally or pattern based", but on the other hand it says "Only one group can control the scale and root note". The first would seem to say that either you have one scale to rule them all ('Global'), or alternatively each group can have its own scale. But the second seems to say that only one group can determine the scale.

    No, the assumption is wrong.

    Use case behind the pattern based control: somebody wants to switch the root and scale with a pattern. The pattern could also contain the loopback track(s) for Bus1..4, so that it's possible to switch the transpose/arpeggiator lines + root note + scale with a single pattern change in the PATTERN page.

    Quote
    • I'm not quite sure how 'Root' works either. Is it so, that if I set 'Root' to 'E', and scale is 'Natural minor', all notes will be forced into the E natural minor scale? If 'Root' is set to 'Keyb' and scale is 'Natural minor', and I press C# on the keyboard, all force-to-scale tracks are forced to C# natural minor scale?

    Yes, this is how the root note is working

    Note that "Keyb" could also be the loopback track which sends to Bus1

    Quote
    • Mixer maps: are the freely assignable CCs the standard MIDI CCs?

    CC#0..CC#127
    So, all possible "standard" CCs

    Best Regards, Thorsten.

  11. Hi Rowan,

    this is a typo in the documentation: 3.3V outputs are only available for MBHP_CORE_LPC17 due to a chip limitation (erratum).

    MBHP_CORE_STM32 and MBHP_CORE_STM32F4 configure the output pins in open drain mode, which means that the pin is in high impedance state if no MIDI message or a logic-1 is sent. Via the 220 Ohm resistors and the optocoupler at the receiver side, the voltage level will be pulled to ca. 4..5V.

    The MBHP_MIDI_IO board has an additional 100k pull-up resistor to 5V, but this one is only used to ensure a proper signal for the LED indicators.

    Best Regards, Thorsten.

     

  12. Quote
    • In the newest official firmware at the moment of writing this (4.090) the Step/Live recording setting 'AStart' is not functioning correctly, and the draft manual has only some ideal description of how I have imagined it should work. The section will be updated in the final version.

    I take this as a reminder. As you can see, solving this issue isn't so easy, it already resulted into two intermediate updates and still doesn't work perfectly :-/

    Quote
    • I write: "303 View shows a variety of settings". Does "303" refer to TB-303 bassline synth, MC-303 groovebox or something else?

    The name is inherited from the MBSID which has a "303-style sequencer" as well. So, yes it refers to the TB-303 bassline synth, resp. the way how this device allows to enter sequences (key, gate, glide, octave up/down)

    Quote
    • I write: "It is not possible to copy and paste individual parameter or trigger layers." Is this so?

    yes

    Quote
    • I write: "Multiple tracks within a single group can be selected with the track selection buttons, or any combination of tracks on the Track Selection page." Where is the track selection page? Can it be selected only with a F1–F4 buttons set for that in the HW setup file, or by setting it as a bookmark? I couldn't find it in the main menu.

    Yes, this page can only be selected with a dedicated button or a bookmark. It doesn't make much sense in the menu page (too cumbersome usage) - of course, if somebody requests it, I could add it there.

    Quote
    • A possible bug: The Track Selection page demands that one track in Group 1 is always selected. If at any point all the tracks in Group 1 become unselected, it has the effect that all tracks in all groups get unselected, and track 1 gets selected.

    Not so nice, I will change this, so that the last remaining track can't be deselected.

    Quote
    • Option #8 says that it affects the paste and clear functions, but what does clear 'Complete Track' do that clear 'Only steps' doesn't do? In other words, how does Option #8 affect the clear function?

    If enabled, all track parameters will be cleared. Exception: MIDI port and channel.

    Quote

    Question: Would it be possible/handy to effect a press & release threshold time for switching from 'on' state to 'off' state? E.g. so that by default pressing & holding the ALL button, while the mode is 'on', enables the ""all jump to same value" mode, and when you release, the ALL mode will stay 'on'; but if you release the button in 200ms (or whatever, i'm not sure what a good value would be) after pressing it down, it will switch to 'off' mode instead? Or maybe there are other ways that I didn't come to think of. It works ok as it is (and I can document it as it is), but it could perhaps be polished a bit :-)

    I don't really like such a temporal, "timed" handling, because it is error prone.
    And by introducing such an handling for a certain button, I'm sure that the next users would request "doubleclicks" or similar functions for other buttons as well - it just doesn't fit to the general concept of the UI

    I don't find the current handling so bad - it's easy to learn (and we've already some videos which show how to use it, no? ,-)

    Best Regards, Thorsten.

     

     

  13. On 22. Februar 2016 at 2:39 AM, oozitron said:

    The "slide" amount for each CV in the "CV Config" page is a nice feature.  Would it be possible for it to work like "fingered portamento" on many MIDI synths?  Having two notes connected via a "glide" duration would turn on the slide, separated notes would make it zero.

    I have no idea if that might be possible...  it would be really cool :-)

    Ok, I will check this - added to the wish list

    On 22. Februar 2016 at 5:46 PM, phillwilson said:

    Is there any way I can make "step record" and "live record" both as F buttons as this would be the perfect solution for my work !!

    added to the wish list as well

    3 hours ago, doc007 said:

    I just finished Midibox SEQ V4 based on Wilba's frontpanel and it seems to work. My little problem concerns the SD card reader.
    At start "searching sd card" is displayed; but it is never detected. If I reset, it is still not found .But if I take out the card and I put it back in the drive it is directly detected.
    But to have the changes to the cfg Wilba   saved on the SD card, I still have to reset the core.
    Is this normal?

    no, this isn't normal

    Would it be possible to try it with a different SD Card (e.g. from a different vendor) just to doublecheck if the problem is located somewhere in the HW wiring, or to a compatibility issue?

    Best Regards, Thorsten.

  14. Well written!

    Quote

    What exactly are the configurations that can be imported this way?

    Configuration means all configuration parameters except for MIDI port and Channel

    A list of configuration parameters can be found in the CC implementation chart: http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fsequencers%2Fmidibox_seq_v4%2Fdoc%2Fmbseqv4_cc_implementation.txt

    Quote

    And does importing Steps mean trigger layer and parameter layer data, and nothing else?

    yes

    Best Regards, Thorsten.

×
×
  • Create New...