Jump to content

TK.

Administrators
  • Posts

    15,199
  • Joined

Posts posted by TK.

  1. Alright, the new version is released now:

     

    MIDIbox KB V1.016
    ~~~~~~~~~~~~~~~~~
    
       o Support for AINSER8 module
         It has to be connected to J19; chip select line RC1 will be used (set jumper J4 accordingly)
         In the AIN configuration it can be selected as pin 128..135
    
       o added 4th AIN pin for "expression pedal" (CC#11 by default can be re-assigned).
    

    and the documentation has been updated: http://www.ucapps.de/midibox_kb.html

     

     

    I try to understand how the midi-ports are set. It works via a hex-number but I don't get how this hex-number gets calculated.

     

    This was already described with some examples in the documentation (search for "midi_ports")

     

    Best Regards, Thorsten.

  2. I thought, that it might be possible to enhance the KB-app with two more analog inputs, so all 8 inputs of an AINSER can be used.

     

    Nobody requested this so far, the firmware was not prepared for this, and therefore it wasn't available.

    (or did you find this somewhere in the documentation?)

     

    However, here it is:

    http://www.ucapps.de/mios32/midibox_kb_v1_016_pre2.zip

     

    The 4th analog pin is called "expression pedal" and assigned to CC#11 by default (but the CC can be changed)

     

    Some of your old configuration settings (especially delay values for black keys) will get lost once you upload the firmware, you've to reconfigure them.

     

    Best Regards, Thorsten.

     

    P.S.: I won't have the time to add new features in the next 2 months.

    I will only implement urgent bugfixes in the next weeks

  3. Seems that you want to introduce help texts with longpressed keys - I don't really want to start with this, because either this has to be supported everywhere, or nowhere - I prefer nowhere, since "push&hold" functions are sometimes used for other purposes.

     

    A common user won't understand the purpose of the GTE function without a more detailed documentation anyhow.

     

    I think that it would be better if there is a tutorial in the Wiki (written by you, because you initiated this feature ;-) which describes your use case, and how the generator has to be prepared to work properly.

    Here the entry point for the documentation: http://www.midibox.org/dokuwiki/doku.php?id=mididocs:index

     

    In order to set all gates, and to clear all notes of parameter layer A, just use the ALL function in the edit page.

     

    UNDO: press COPY before the operation, press PASTE if you want to undo the change.

     

    Best Regards, Thorsten.

  4. Which configuration capabilities do you need for a AINSER8?

    If predefined CCs should be sent, it would be an easy enhancement, if more flexibility is required, more work has to be done and this has to be properly discussed (because from the past I know that sooner or later you will ask for a "very important missing feature" which contradicts with the concept and then will result into a lot of work to support a special option for you...)

     

    Best Regards, Thorsten.

  5. Ein character LCD sollte die Zeichen eigentlich ziemlich schnell ausgeben (in 20..30 uS wenn ich mich richtig erinnere), ueber MIDI kommt jedoch nur alle 320 uS ein neues Zeichen.

     

    Somit ist es evtl. doch kein Problem mit der Zeichenausgabe, und Du kannst den Code erstmal so lassen wie er ist.

     

    Wie vertrauenswuerdig ist eigentlich das MIDI Interface, das du verwendest?

    Koennte es sein, dass bereits bei der Uebertragung zum PIC Daten verloren gehen?

    Am einfachsten laesst sich das mit einem hardwaremaessigen MIDI Out->IN Loopback am Interface ueberpruefen.

    Sende mit dem SysEx Tool die Daten, und ueberpruefe, ob sie auch wieder komplett empfangen werden.

     

    Gruss, Thorsten.

  6. Euclid generator enhancement: there is a general problem with this idea

     

    Currently the generator just enables/disables the gate based on the selected pattern.

    This has the advantage, that we can prepare all steps with different note values (in all available parameter layers), and play them based on the euclid pattern selection.

     

    The same approach isn't possible if notes should be enabled/disabled in a dedicated parameter layer.

     

    Instead, the only simply way I could imagine would be to leave the gates untouched, and to overwrite the parameter layer with a selectable note value, which is set whenever the normal function would set a gate, and cleared (0) whenever the gate wouldn't be set

    In distance to the original function, this would be a destructive change, which means that previous note values of the layer will get lost.

     

    But the actual problem is, that the note pattern written into the parameter layer won't be played according to the euclid pattern since it has no individual gate!

    Notes will only be played if the gate is set

     

    Please try following version, it will be easier to understand the problem just by trying out:

    http://www.ucapps.de/mios32/midibox_seq_v4_089_pre4.zip

     

    - change to euclid generator

    - ensure that the first parameter layer is selected

    - select 5 Pulses

    - now change to another parameter layer which plays notes with GP4 encoder

    - change the note value so that you can differ between the one played by ParA with GP5 encoder

    - change pulses for this layer with GP10 encoder

    -> at the right side of the display each note which can't be played due to a missing gate will be marked with '-'

     

    Currently I only see one solution at the user side:

    - in parameter layer A, enable the gate for all steps and disable all notes (set them to "---")

    - use the remaining layers to play different notes based on different euclid patterns

     

    Other ideas?

     

    Best Regards, Thorsten.

  7. Today I spent some time to analyse this issue.

     

    Unfortunately I wasn't able to reproduce it at my side (are you using a MBHP_CORE_STM32F4, or MBHP_CORE_LPC17 module?)

    However, I found a potential with the Snapshot Meta event: it didn't use a Mutex while accessing the SD Card, with the danger that any other task could try to access it concurrently. This would result into the error message that you mentioned.

     

    Please try this version: http://www.ucapps.de/mios32/midibox_ng_v1_033_pre8.zip

     

    For the second issue I changed the Snapshot Dump, so that LCD output will be inhibited during dump, which should result into a more deterministic behaviour

     

    Best Regards, Thorsten.

  8. 1. press and hold "copy" button

    2. press paste button

    3. pattern length is doubled along with all layer informations

     

    ok, this is easy ;-)

    Added to the wishlist

     

    --> are there any news on that proposal? because i find myself quite often using the euclid-function and i always think "hmmmm, i want to select note/note layers the euclid population will be directed to"

     

    No, but since there is no better idea yet, I finally added it to the wishlist

    Euclid generator: allow to select the note layer into which the pattern will be copied

     

    ---> this one moved up and up on my list. what do you think about that extension of an already existing "killer feature" which is the save&take over patterns function

     

    ok, added to the wishlist as well so that it doesn't get lost

     

    Best Regards, Thorsten.

  9. Hi Jasper,

     

    no, unfortunately this isn't possible because of the way how MBSEQ stores MIDI events.

    It would require a different concept to store the data (like on a pianoroll known from DAWs) with the disadvantage that some step based features wouldn't work anymore.

     

    Best Regards, Thorsten.

  10. Hallo Andre,

     

    Du verwendest ein graphisches Display, richtig?

    Dann dauert die LCD Ausgabe zu lange.

     

    Abhilfe: die Zeichen in einem RAM Buffer zwischenspeichern, und im LCD Handler ausgeben.

     

    Hier hat man dann die Zeit, die fuer die Display-Ausgabe spendiert wird, besser unter Kontrolle.

    Ich weiss jetzt nicht auswendig, wie lange die Ausgabe bei GLCDs dauert (das haengt vom Display-Typ ab), doch der PIC sollte nicht mehr wie 10 mS spendieren, ansonsten laeuft der MIDI IN Buffer ueber (der kann in dieser Zeit ca. 30 Bytes empfangen)

     

    Die LCD Ausgabe sollte also so aussehen, dass der LCD Handler im RAM Buffer nach neuen Zeichen sucht, sie ausgibt, und nach (bspw.) 10 Zeichen abbricht.

    Wenn er erneut aufgerufen wird, kann er die restlichen Zeichen abarbeiten, bis der Display-Content mit dem RAM Buffer uebereinstimmt.

     

    Wie erkennt man neue Zeichen?

    Am einfachsten, in dem man im Buffer die bereits ausgegebenen Zeichen auf 0 setzt, oder auch einfach bit #7 setzt (so mache ich das ueblicherweise - Vorteil: die Zeichen gehen nicht verloren, man koennte also bspw. temporaer auch etwas anderes auf dem Display darstellen, und dann zurueck zum gebufferten Screen)

     

    Gruss, Thorsten.

  11. too bad that this wasn't the reason - it was the last hope that such a minor issue could be the reason.

     

     

    ah, I see.... a relative-vs-absolute thing?

     

    No, this comparison is important for the case that somebody wants to record parameter changes with an external DAW. The MBSEQ UI will only send actual changes via CC to simplify editing of the recorded data.

     

    if I had a wishlist, a more flexible configuration of the mixer pages would be quite a bit higher up....   

     

    Mixer page extensions are expensive (resource & conceptional effort wise) and have to be prioritized with other items in the wish list.

     

    I won't work on major features extensions in the next 2..3 months, so don't try to request everything which comes into you mind, instead please start exploring the given possibilities first and try to consolidate your ideas so that they fit into the given framework (and into the $10 chip of the core module which sets the limits as well ;-))

     

    Best Regards, Thorsten.

  12. Finally a stable design for jam sessions so that I can put the prototype into the MIDIbox museum - thanks for the great work!!!  :thumbsup:

    Name           PCB BLM   PCB miniCore  Case  Shift button  M2 hardware  4xLED
    availability   5         5             -     9             6            17
    latigid on     1         1             1     1             1            1
    Rowan          1         1             1     1             1            1
    Phatline       2         2             1     1             1            1   
    TK             1         1             1     1             1            1
    Total          5         5             4     4             4            4

    Best Regards, Thorsten.

     

  13. I cleared both patterns & built new ones in their place, still the same thing.

     

    I think that I found the issue:

    Track 1 has Octave Transpose +0

    Track 2 has Octave Transpose -1

     

    If both tracks are selected and the configuration of Track 1 is visible, Transpose +0 has no effect

    If both tracks are selected and the configuration of Track 2 is visible, Transpose -1 has no effect

     
    Because the global parameter handling function breaks if the changed value is equal to the visible value.
     
    So, if you would select +1 instead after power-on, the change takes place, and that's the reason why I haven't noticed this. ;-)
     
    Please try this update:
     
    Change should take place independent from the visible value now (for all parameters, not only transpose)
     
    Best Regards, Thorsten.
  14. Has the PIC been bad flashed at some point - I remember having a bit of a nightmare getting it to flash 3 years ago and only succeeded in Linux in the end.

     

    Yes, this could explain the behaviour (and based on that what I see on the video, I can say that this isn't normal)

     

     

    Please try it with a proper MIOS and MBSID installation:

     

    - power-off the sammichSID

    - load the mios_v1_9h/pic18f4685/midi/mios8_v1_9h_pic18f4685.hex file

    - press the Start button

    - now power-on the core

    -> upload should be finished within ca. 10 seconds

     

    After MIOS has been installed successfully, the MIDIbox SID application can be uploaded without this special trick.

     

    Btw.: is your MIDI interface on the blacklist? -> http://www.midibox.org/dokuwiki/doku.php?id=midi_interface_blacklist

     

    Best Regards, Thorsten.

  15. I'm wondering if the transpose thing is because one of the two tracks was created in jam mode....

     

    No; the notes which are visible on the screen will be transposed, just straightforward without special dependencies.

    And the firmware uses the standard function to change octave/semitone transpose values, the function itself takes care for multi-track selections.

    Which means: if you notice such a problem in the transpose page, you would notice the same in most other pages where the standard function is used.

     

     

    it's still exhibiting this behaviour despite changing the jam track to T&A though...

     

    Could you please explain a bit further what you mean with this?

     

    It would really be helpful if you could explain the steps which are required to reproduce the problem, such as:

    - power-on

    - MENU+GP7 (Transpose)

    - Push&Hold Track1, Push Track2: both tracks should be selected

    - press GP10 to change Octave Transpose from +0 to +1

     

    I tried the "TUTOR2" session that you gave me, but without success - meanwhile I assume that we are speaking about different pages.

     

     

    the roll thing.... what I mean is, use the parameter layer roll settings to set the number of repeats & their spacing, & the trigger layer to switch them on & off. this way, you can preset the roll vallues you want against each/all of the steps, then enable/disable the rolls using the trigger layer. otherwise, when you want a roll, you have to scroll through the values to get to the one you want, & the sequence will play one or two incorrect rolls while you are doing this.

     

    Ok, this is an easy enhancement and it's also no critical change, since people who want to use the function have to reconfigure track assignments (so: they have to know what they are doing) -> no compatibility issues to be solved.

     

    Try this version: http://www.ucapps.de/mios32/midibox_seq_v4_089_pre2.zip

     

    Change to the Menu+GP9 (Trigger) page, disable the Roll trigger assignment (normally C), and assign RollGate (displayed as "RollG" under GP10) to C

    -> rolls will only be played if the RollGate is set, and the Roll or Roll2 parameter layer doesn't show "----" for the step.

     

    Best Regards, Thorsten.

  16. I'm trying to transpose tracks 1 & 2 together. as I said, the display tells me I have multiple tracks selected for editing, but only the one I was in when I selected the other one gets transposed. so if I have been editing in track 1, then change to track 2, then hold down track 2's button & select track 1, the display changes but only track 2 gets transposed.

     

    Both tracks get transposed at my side, regardless in which order the tracks have been selected.

     

    Just to be sure: can you transpose the first track when only this one is selected?

     

    Could you please pack your session subdirectory into a .zip file and attach it to this thread?

     

    Best Regards, Thorsten.

  17. I'm planning to implement some kind of compiler, which translates the .ngr commands into opcodes stored in RAM and executed dramatically faster than today.

     

    So, if performance is the only issue, it will be solved sooner or later (but not in the next two months)

     

    Best Regards, Thorsten.

  18. It wouldn't surprise me if you are getting warnings when you are using a different gcc version.

    Even more dangerous are the hidden differences which are only visible by running the code and could result into a lot of trouble!

     

    Therefore I strongly recommend you to use the official MIOS32 toolchain which is located under: http://midibox.org/mios32_toolchain/

    All other versions are unreliable.

     

    Best Regards, Thorsten.

  19. The USB descriptors of MIOS32 match with the descriptors of the official usbmidi interface spec, no special tricks have been used, and Windows/Linux/MacOS are happy with them.

    So, if another Host doesn't connect, it's an imperfection in the Host driver and you've to report this to the appr. manufacturer, not me!

    In any case it always makes sense to check, if the manufacturer already fixed the bug in a newer driver version based on customer feedback...

    Best Regards, Thorsten.

×
×
  • Create New...