Jump to content

TK.

Administrators
  • Posts

    15,246
  • Joined

Posts posted by TK.

  1. Hi,

     

    are you using the correct SysEx strings for MBSID V1 (!) as documented here?

    -> http://svnmios.midibox.org/filedetails.php?repname=svn.mios&path=%2Ftrunk%2Fapps%2Fsynthesizers%2Fmidibox_sid_v1%2Fdoc%2Fmidibox_sid_sysex_implementation.txt

     

     

    is there something wrong in that there is no Save menu on my LCD? All the other menu options are there.

     

    Are you using a 2x20 or 2x16 LCD?

    The SAVE item is the last one in the menu. If you are using a 2x16 LCD, you won't see it.

     

    Best Regards, Thorsten.

  2. Some time ago I also spent some thought on this - at least it's feasible, the topic is on my agenda :)

     

    It requires that the .NGR parser transforms the commands into byte code. With this kind of compression huge scripts could be processed with very high speed.

     

    Do I understand you correctly that you would like to implement this? :)

     

    Best Regards, Thorsten.

  3. The RI_N support for IIC_MIDI is in a bad state - actually I never adapted to LPC17 because the way how the port & pin is specified doesn't work for a LPC17, and I haven't adapted for STM32F4 because I knew that this configuration needs to be changed.

     

    I think that some generic MIOS32_* functions are required to configure IO pins, so that the IIC_MIDI driver could just pass the port "number" and pin number

     

     

    What are the Port and Pin Names ?

     

    The intention was to make this free configurable.

    It's a very app specific configuration, because there are no dedicated pins for the RI_N signals, so that the app developer has to decide which spare pins could be used for that purpose.

     

    Best Regards, Thorsten.

  4. It seems that there is a contradiction:

     

    EVENT_BUTTON id=72  type=CC chn=5 cc=7
    EVENT_RECEIVER id=8 fwd_id=sender:8 type=CC chn=5 cc=7

    BUTTON:72 and RECEIVER:8 listen to the same CC number (cc=7, chn=5)

     

    BUTTON:72 will get the received value

    Thereafter RECEIVER:8 forwards to all (hw_id)SENDER:8

     

    EVENT_SENDER id=13 hw_id=8 if_equal=0   fwd_id=sender:9 type=Meta meta=RunSection:2
    EVENT_SENDER id=14 hw_id=8 if_equal=127   fwd_id=sender:10 type=Meta meta=RunSection:3
    

    SENDER:13 forwards to SENDER:9 if the received value was 0

    SENDER:14 forwards to SENDER:10 if the received value was 127

     

    EVENT_SENDER id=15 hw_id=9 if_equal=button:72:127   fwd_id=LED:47:127 type=Meta meta=RunSection:1
    EVENT_SENDER id=16 hw_id=9 if_equal=button:72:127   fwd_id=LED:48:0
    

    SENDER:15 and SENDER:16 listen to (hw_id)SENDER:9 (which forwarded if the received value was 0)

    But: they will only react if BUTTON:72 is 127 - but the MIDI event set BUTTON:72 to 0 before

     

    Same for SENDER:17 and SENDER:18

    EVENT_SENDER id=17 hw_id=10 if_equal=button:72:0 fwd_id=LED:47:0 type=Meta meta=RunSection:1
    EVENT_SENDER id=18 hw_id=10 if_equal=button:72:0 fwd_id=LED:48:127
    

    They only react if BUTTON:72 is 0, but it has been set to 127 via MIDI before.

     

    Best Regards, Thorsten.

  5. Hi,

     

    I strongly recommend you to organize the buttons in a 8x8 DIN matrix, and the LEDs in a 8x16 DOUT matrix (for 128 LEDs) + 8x8 matrix (for the remaining LEDs)

     

    This will also solve the current consumption issue, because with 8 rows the current consumption is (appr.) divided by 8

    16 rows are not recommended -> LEDs not bright enough

     

    The 8x8 DIN matrix will allocate 1 DIN SR and 1 DOUT SR

    The 8x16 DOUT matrix will allocate 3 DOUT SRs

    The 8x8 DOUT matrix will allocate 2 DOUT SRs

     

    The LED rings will require another 8x16 matrix: +3 DOUT SRs (note: 16 LEDs are max. supported)

    Encoders require +1 DIN SR

     

    Makes: 2 DIN SRs and 9 DOUT SRs, accordingly one MBHP_DINX4 and three MBHP_DOUTX4

     

    - Can I connect encoder pins and push buttons to the same DIN module?

     

    yes

     

     

    - Does this design seem feasable?

     

    This is actually a very simple design; of course it's feasible :)

     

    Best Regards, Thorsten.

  6. Ok, here the recommended solution:

     

      EVENT_RECEIVER id=1 fwd_id=sender:1 type=CC chn=5 cc=1
    
    # run section 1, switch on LED 33, switch off LED 34
      EVENT_SENDER id=1 hw_id=1 if_equal=0   fwd_id=LED:33:127 type=Meta meta=RunSection:1
      EVENT_SENDER id=2 hw_id=1 if_equal=0   fwd_id=LED:34:0
    # run section 2, switch off LED 33, switch on LED 34
      EVENT_SENDER id=3 hw_id=1 if_equal=127 fwd_id=LED:34:127 type=Meta meta=RunSection:2 
      EVENT_SENDER id=4 hw_id=1 if_equal=127 fwd_id=LED:33:0
    

    the receiver forwards the received values to all senders which are matching with hw_id=1

    The senders only react on a matching value (if_equal=<value>)

     

    The value forwarding to a non-existing event (LED:33:x and LED:34:x) will only work with this new pre-release:

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

     

    I also fixed the DELAY_MS parameter, delay should be handled properly now (it was running twice the speed before if MBNG was showing the main screen on LCD)

     

    Best Regards, Thorsten.

  7. The MIOS32_SPI_TransferBlock callback isn't required for this use case, it's typically used if the app want's to send a higher amount of bytes (e.g. 64 bytes and more) and shouldn't wait until the bytes have been transmitted, but should execute the callback function instead to notify, that a new block could be sent.

     

    However, while you post this: it could make sense to try out different speeds and transfer modes.

     

    Try out following configurations:

     

    MIOS32_SPI_TransferModeInit(2, MIOS32_SPI_MODE_CLK0_PHASE0, MIOS32_SPI_PRESCALER_16);

    or

    MIOS32_SPI_TransferModeInit(2, MIOS32_SPI_MODE_CLK0_PHASE1, MIOS32_SPI_PRESCALER_16);

    or

    MIOS32_SPI_TransferModeInit(2, MIOS32_SPI_MODE_CLK1_PHASE0, MIOS32_SPI_PRESCALER_16);

    or

    MIOS32_SPI_TransferModeInit(2, MIOS32_SPI_MODE_CLK1_PHASE1, MIOS32_SPI_PRESCALER_16);

    or

    MIOS32_SPI_TransferModeInit(2, MIOS32_SPI_MODE_CLK0_PHASE0, MIOS32_SPI_PRESCALER_32);

    or

    MIOS32_SPI_TransferModeInit(2, MIOS32_SPI_MODE_CLK1_PHASE0, MIOS32_SPI_PRESCALER_32);

    or

    MIOS32_SPI_TransferModeInit(2, MIOS32_SPI_MODE_CLK0_PHASE1, MIOS32_SPI_PRESCALER_32);

    or

    MIOS32_SPI_TransferModeInit(2, MIOS32_SPI_MODE_CLK1_PHASE1, MIOS32_SPI_PRESCALER_32);

    Best Regards, Thorsten.

     

  8. This display won't work because:

    - it isn't supported by MIOS32

    - graphical LCDs are not supported by the MBSEQ V4 application

    - the screen dimensions are not supported by the MBSEQ V4 application

    - the 80x2 character row would be hard to read with this small size

    -> bad choice

     

    Best Regards, Thorsten.

  9. Du hast Dir da ziemlich viel fuer den Anfang vorgenommen...

     

    Also können z.b 2 Core über usb nebeneinander arbeiten als quasi ein Controller?

     

    Das kommt darauf an, wie Du den Controller an die DAW koppelst.

     

    Anfangs hast Du noch Mackie Control geschrieben, nun haben die Kanaele ploetzlich 8 Encoder pro Kanalzug und LED Ringen mit 16 LEDs, das wird aber so vom Mackie Control Protokoll nicht unterstuetzt.

     

    Die 2 OLEDs pro Kanal passt ebenfalls ueberhaupt nicht mit dem zusammen, wie die DAW das Display einer Mackie Control ansteuern wuerde.

     

    Am besten erkundigst Du Dich erstmal ueber die Moeglichkeiten Deiner DAW.

     

    Zu den LEDs: die lassen sich ja zu einer Matrix verschalten.

    Fuer 8 Encoder mit 16 LED Ringen nimmt man bspw, einen 8x16 Matrix, das sind gerade mal 3 DOUT Shift Register (und bis zu 32 lassen sich hintereinander schalten, hier sollte man jedoch auf die verdrahtung achten, evtl. mit dem MBHP_LINE_DRIVER arbeiten, ein komplexes Thema...)

     

    Nunja, ich wuerde Dir empfehlen, die Sache langsam anzugehen, bevor Du eine Menge Geld versenkst!

     

    Und wichtig: uCApps.de lesen, im Forum suchen, googlen - hier wird Dir nichts mundgerecht vorgekaut! ;-)

     

    Gruss, Thorsten.

  10. Servus,

     

    wenn Du in diesem .NGC File nach "MF" suchst, findest Du folgende Zeile:

    # we've a single MBHP_MF_NG module with 8 motorfaders
    # It has to be configured for Motormix protocol!
    MF n=1  enabled=1  midi_in_port=IN3  midi_out_port=OUT3  chn=1  ts_first_button_id=2001  config_port=USB3
    

    hier ersetzt Du IN3 durch IN2 und OUT3 durch OUT2

     

    Wie aus dem Kommentar ersichtlich, muss das Motormix-Protokoll (und nicht das Mackie Protokoll) konfiguriert werden - die Konversion nach Mackie uebernimmt die MBNG.

     

    Falls dann noch notwendig, kann das Modul kann anschliessend ueber die USB3 IOs konfiguriert werden (wird mit config_port=USB3 vorgegeben)

     

    Gruss, Thorsten.

  11. Hallo Boris,

     

    mit der MIDIbox NG kann man das alles mit einem einzigen 32bit Core bedienen: http://www.ucapps.de/midibox_ng.html

    User Manual: http://www.ucapps.de/midibox_ng_manual.html

     

    Und wenn ein 32bit Core immer noch nicht ausreicht, kannst Du mehrere kombinieren. Am einfachsten ueber einen USB Hub.

     

    Hier gibt es eine eigene Forum Sektion fuer dieses Projekt: http://midibox.org/forums/forum/46-midibox-ng/

     

    Wenn Du dort suchst, wirst Du auch Erfahrungsberichte ueber das Anschliessen von mehreren LCDs finden - es ist nicht immer so einfach, wie man denkt, aber es geht! ;-)

     

    Gruss, Thorsten.

  12. This configuration will only set the value of the LED, but it won't trigger the action (it won't execute the meta command)

     

    For such purposes I introduced the SENDER event; so if you write:

    #should forward when incoming signal is the correct channel, correct cc and value=0
      EVENT_RECEIVER id=1 fwd_id=sender:33 type=CC chn=5 cc=1 range=0:0
    #should forward when incoming signal is the correct channel, correct cc and value=127
      EVENT_RECEIVER id=2 fwd_id=sender:34 type=CC chn=5 cc=1 range=127:127
    # run section 1
      EVENT_SENDER id=33 type=Meta meta=RunSection:1
    # run section 2
      EVENT_SENDER id=34 type=Meta meta=RunSection:2
    

    the run script section should be executed.

     

    From the section you can switch the LED, e.g. "set LED:33 127" will turn it on, and "set LED:33 0" will turn it off

     

    Best Regards, Thorsten.

×
×
  • Create New...