Dynamic Controls 2 for ROLI Lightpad Block by Anthony Alfimov and Andreas Swoboda

Dynamic Controls is a free app for ROLI Dashboard. It turns your ROLI Lightpad Block into a highly customisable MIDI control surface.

Design your control layout using Buttons, Faders and XY Pads!

  • Connect your ROLI Lightpad Block to the computer. Launch ROLI Dashboard to load the Dynamic Controls app.
  • Use ROLI Dashboard to edit the control layout, save your layout presets as modes, and load them to the Block.
  • Once a mode is loaded to your Lightpad, you can use it as a standalone USB and Bluetooth MIDI controller.

Download Now

Version 2.1.0

Version 2.1.0

Version Archive and Source Code

Dynamic Controls requires: the latest version of ROLI Dashboard installed, the Lightpad Block updated to the latest firmware.

Design your Control Surface

Dynamic Controls app for ROLI Lightpad Block
  • Four control types with assignable MIDI output: Button, Note, Fader and XY Pad
  • Free positioning and resizing of controls
  • Latch or Momentary behaviour for each control type
  • Global or per-control MIDI channel assignment
  • Assignable pressure output for every control
  • Customisable appearance with global brightness and contrast settings
  • Advanced features like control layering and external MIDI reception

Find Answers in our Knowledge Base

Getting Started

“Dynamic Controls” vs. “Dynamic Controls LE”The Light Edtion (LE) has a reduced feature set. In order to free up internal memory on the Lightpad Block, we removed “XY Pads” and “Pressure CC”. Therefore, it is possible create 25 instead of 16 controls. Of course we provide both versions with our installer.
What is a “mode”?ROLI Dashboard is used to load apps onto your Lightpad Block. You can load apps by clicking on their icons in the “APPS” window. Most apps will allow you to change their settings by clicking the “EDIT” button. After you have changed the settings, you can save the changes as a new “mode”. Finally click on the names of your saved modes to load them onto your Lightpad Block. This works just like presets in other software.
How do I create a control layout?Start creating a control layout by loading the “Blank” factory mode. We recommend to always set the “Number of Controls” first. If you need more than 16 controls, use “Dynamic Controls LE”. Then continue by editing the individual settings of each control. Once you’re done, go to “File → Save As…” and save your control layout as a new mode.

Advanced Features Explained

Control LayeringIt is possible to create multiple controls on the same position of the 15×15 LED matrix. Also, parts of a control can be covered by other controls. In both cases the control with the highest control number will stay on top. While “Control Layering” is disabled, only the visible parts of a control will output a MIDI message. But if you enable “Control Layering”, all the invisible (overlapping) controls will also send MIDI messages. Be aware, that a large number of layered controls might slow down or freeze the app.
Receive MIDI CCWhen “Receive MIDI CC” is turend on, controls with “Behaviour” set to “Latch” will receive MIDI CC messages. The app will receive the values for “Button CC”, “Fader CC”, “X Axis CC” and “Y Axsis CC”, when sent to the Lightpad Block. However, “Pressure CC” and MIDI “Note” will not be received. Be aware, that a large number of simultaneous incoming MIDI streams might slow down or freeze the app.
Individual BrightnessTo ensure a coherent look of your control surface, the “Brightness” level for each control colour can be adjusted globally in Dynamic Controls. If you want to adjust the brightnes of each control colour idividually, enable “Individual Brightness”. Be aware, that a large difference in control brightness can make it difficult to identify whether the control is active or inactive. Also, setting the control brightness too low can result in black LEDs.

Tips & Tricks

How do I use MIDI learn with “XY Pads” and “Send Pressure”?XY Pads, as well as any other controls with “Send Pressure” enabled, transmit multiple MIDI CCs at the same time. To use MIDI learn with controls like this, we suggest the following workaround: We will use an XY Pad as an example. Set both X and Y Axis CC to the value that you intend to use as X Axis CC, and map it. Then set both X and Y Axis CC to the value you will use as Y Axis CC, and map that. Finally, change the X CC back to its intended value. Let’s say you want to use 102 as the X Axis CC and 103 as the Y Axis CC. First, you set X and Y Axis CC to 102, and map the control for the X Axis. Next, you set X and Y Axis CC to 103, and map the control for the Y Axis. Finally, you set X Axis CC to 102 again and you’re good to go!
Make the same control send multiple MIDI messagesYou can use the “Control Layering” option to achieve this effect. Firstly, create multiple instances of the same control with the same position and size. Then assign different MIDI messages to each of them. Finally enable “Control Layering” to allow all stacked controls to be active. For example, this method can be used to create chords with the “Note” control type.
Create a light show with your ROLI Lightpad BlockWhile you have “Receive MIDI” turned on, Buttons, Faders and XY-Pads will respond to external MIDI messages sent to the Lightpad Block. So setting up an automation for these parameters in your DAW will create a visual animation. The achieved effect will be similar to the various Novation Launchpad light show videos found on YouTube.
Create your own apps for ROLI BLOCKSDynamic Controls was developed with the LittleFoot script language using the BLOCKS CODE IDE. If you want to create your own app for ROLI BLOCKS, you can get the resources on the JUCE website: juce.com/blocks


How can I uninstall Dynamic Controls?IMPORTANT: Back up your custom modes (*.mode files) from the following directories: Documents/ROLI/LittleFoot/Dynamic Controls.littlefootModes/ Documents/ROLI/LittleFoot/Dynamic Controls LE.littlefootModes/ Delete the app files: Documents/ROLI/LittleFoot/Dynamic Controls.littlefoot Documents/ROLI/LittleFoot/Dynamic Controls LE.littlefoot Delete the mode directories: Documents/ROLI/LittleFoot/Dynamic Controls.littlefootModes/ Documents/ROLI/LittleFoot/Dynamic Controls LE.littlefootModes/
Can I save multiple modes to my ROLI Lightpad Block?Unfortunately, the memory of Lightpad Blocks is very limited. Therefore, it is not possible to save more than one Dynamic Controls mode to your Lightpad Block.

Connect with us

Need any help? Message us at dynamic.controls@swonic.com

Sign up for our Newsletter!

Dynamic Controls is a non-commercial project.

Developed by Anthony Alfimov and Andreas Swoboda.

Available as free download on swonic.com/dynamic-controls.

Download press images here.

33 Replies to “Dynamic Controls 2 for ROLI Lightpad Block by Anthony Alfimov and Andreas Swoboda”

  1. dear Swonic,

    First and for all thank you so much for yr superb software I love it to bits, amazing.
    Is there a small chance that you con incorporate multiple midi channels for each button/fader,…
    Just a question, if you don’t feel like doing this or it is to much work I fully understand,



    1. Hi,
      thank you so much for the feedback! I‘m glad to hear you find this app useful.
      Actually I wanted to include this feature (MIDI channel per control) in the initial release, but it wasn’t possible due to memory limitations of Lightpad BLOCKS.
      For the further development I teamed up with a friend and we are currently working on ways to making the whole thing more memory efficient so we can offer more features too! MIDI channel per control is on the list and we’ll try to make this happen…
      Please stay connected (YouTube/Twitter/…) — I‘ll post there once we have a new update ready!

    1. Thanks so much Adriàn. I’m happy to hear that you like the app! At the moment it is not possible to assign MIDI Note messages to the controls. I teamed up with a friend and we are working on an update for the script. If all works out there will be limited support for MIDI Notes. But a script that let’s you create custom notepads is something we’d like to work on in the future. So stay tuned and subscribe to my Twitter or YouTube channel to receive updates once we release a new version. Andreas

  2. Hi,

    thank you for that very useful app. Can it be possible to have more than only one page using the mod button?
    Thank you

    1. Hi Yann,
      thank you for your feedback! Actually saving modes of Dynamic Controls to the Lightpad Block is not possible at the moment, because there is not enough memory left. We are working on future versions already and maybe there will be a possibility one day, but this will require changes in the Little Foot script language. Watch out my Twitter (https://twitter.com/swonicmusic) for future updates.

      1. Hey Andreas,

        I had the same question just now. Any chance this will happen in the future? Great Job on this btw!

        1. Hi Moritz,

          thanks for reaching out! Situation with the LittleFoot language and Lightpad memory has not changed yet. We don’t know what ROLI is coming up with in the future. But right now, we are not considering to implement saving modes, because of the hardware and software limitations.


  3. Hi! Genuinely asking, how is this different than the Midi implementation within the ROLI Dashboard? Thank you so much!


    1. Hello Eric,
      thank you for your comment. I’m not sure if I understand exactly what you mean? Dynamic Controls runs inside ROLI Dashboard. This way it’s like all the ROLI factory apps. The main advantage is that you can design your own controls and freely choose size and position on the Lightpad. That’s not possible with any of the factory apps yet.
      Please let me know if I can do anything else for you.
      Also, if you’re interested, we just launched a small survey and will launch a big update soon. Check this out here: https://www.surveymonkey.com/r/P3H8WLN

  4. Hi! this looks like such a simple way of doing things

    it looks like you’ve created exactly what i need.
    Do you think the Lightpad is a good solution for using an external controller in unison with my midi keyboard to take care of a few CC tasks.
    say, for example i’m using a legato string patch from spitfire and would like to control the expression, dynamics and vibrato all at once on three simultaneous faders.
    Also, once I get this working, would it always work with my orchestral template without having to go through the rigmarole of “learning cc” every time


    1. Hi Joe,

      Thanks for the feedback!

      Yes, I definitely think it’s a good solution for your setup. You can create your own CC controller with Dynamic Controls and load it on your Lightpad. The Lightpad will remember the setup until you reset it or load some other app on it. So it should be no problem to always use it with your template – as long as the DAW you’re using it will remember MIDI controllers and their mappings. But if it works with your MIDI keyboards faders or knobs; I’m pretty sure it will also work with a Lightpad!

      I hope this helps! If you have any more questions feel free to ask. Also make sure to stay connected since version 2 of Dynamic Controls will be available soon!!


  5. Thank you so much for this amazing app for Roli Blocks!! It is very easy to get to work with quickly. I love it because you seem to understand the concept of sending to a specific midi channel and to a midi note. The only thing I would really request is touch sensitivity. I’m not into play all the notes at full value. Thank you again, it’s much appreciated.

    1. Thank you for your feedback! 🙂 We’re very glad that you like it. Yes, we definitely would like to have touch sensitivity – however, right now it wasn’t possible to implement this feature, because there is no memory left on the Lightpad Block… Andreas

  6. hi guys reallly like what you have acheived here, super useful and intuitive, i have a feature request please, would it be possible to implement a send type box for the xy editing same as the one in the official xy app? im tring to mmake a mapping of multiple xy pads for maschine but the midi learn is such that whatever part of the pad i touch it just sends one value to the parameter im trying to learrn it to..

    greetz from the uk

    all the best

    1. Hi,
      we’re glad to hear that you enjoy Dynamic Controls! Thank you for your request.
      This is a good idea and we will consider adding that feature in a future update. In the meantime there is two possible work arounds I can think of (1) create a second mode with Faders instead of XY Pads. Use the same MIDI CC messages, and always use the Fader mode for when you want to use MIDI learn. (2) If you want to use MIDI learn with an XY Pad then set all parameters to the same MIDI CC. For example if you use 102 for the X Axis and 103 for the Y Axis, first set X and Y Axis to 102 – map the control for the X Axis and then set X and Y Axis to 103 and map the control for the Y Axis. Finally set X Axsis to 102 again and you’re good to go!
      Please let us know if that helps.

      1. Yeap that’s the work around I used, works well, thanks for the reply and the consideration of the feature..

        Cheers guys🍺

  7. This is amazing dude! Really useful. I just have one question. IIs there a way to connect Ableton Drum Rack to do a lightshow by putting this app in a drumpad setup? To make finger drum and receive pre-configured midi in addition to the one currently being played. It would be wild! And again, congratulations!

    1. Hi,
      thank you! We’re glad you find it useful. If I get you right, you want to send MIDI Note messages to the Lightpad from Ableton Live that will light up certain Notes? I am afraid this is not possible with Dynamic Controls, since incoming MIDI Note messages are not received by the app. It is however possible to create Buttons that receive incoming MIDI CC messages and create a Lightshow light that.
      Hope this helps.

  8. Hallo, first of all thank you so much for this awesome diy Roli Blocks programmer. This is exactly what I needed!

    Now I have one question:

    I know it is not possible to save multiple modes to the Block.
    But is it maybe possible to switch modes with a button on the Block?


    1. Hi Michelle,

      thank you for your feedback! We are happy that you like our app.

      Unfortunately it is not possible to save multiple modes to the Block because there is not enough memory left.

      Therefore it is also not possible to switch between modes.


      1. Okay, I just thought maybe there is a way to switch to another mode just like we can do with a mouse click in the Dashboard, with the difference of assigning the switch to a sysex message on the device itself if you know what I mean.

        1. Hm, for what you describe Dashboard would have to be running and the app window would need to be in focus the whole time. Because if you have Dashbaord running in the background it’s disconnecting from your Blocks. So I don’t think that this is possible.

          1. I see. Okay, thanks anyway. It’s sad that the device has such a low memory.
            For me it’s a reason to jump off the Blocks train again maybe. But perhaps you can downsize the footprint of your program, That would be awesome. 🙂

  9. Thank you so much for this amazing tool!

    I’m using it as an OPZ controller to mute/unmute tracks, for setting individual tracks to active, and controlling the volume of the active track.

    Here’s how. You need to use the regular version (not LE)

    To mute track 1 (repeat for all 8 tracks)
    – Midi channel 1
    – Behaviour: latch
    – Type: button
    – Button CC 53
    – On value: 1
    (When you click the button off it defaults to 0)

    To set a track to active
    – Midi channel: default
    – Behaviour: latch
    – Type: button
    – Button CC: 102
    – On value: (set to track number)
    (The value for OPZ track 1 is 0, so when you switch off the button, it sets track 1 to active)

    To control volume of the active track
    – Midi channel: default
    – Behaviour: latch
    – Type: fader
    – Fader CC: 16
    (This only works when the OPZ app is not connected via bluetooth for some reason)

    Feature request. It would be awsome to be able to set a custom Off value.

    1. Wow, that’s awesome Sigmond! Thanks for sharing.

      Do happen to have some video content online with your setup?

      A custom off value is a great idea. We’ll add your request to our list. Thank you.

      Also, make sure to subscribe to our newsletter, to get notified of future updates!

      Take care,

  10. Hey,

    I recently acquired a light pad that is slightly broken. Basically 60% of the pad doesn’t respond to touch. The other 40% works fine. Could I use Dynamic Controls to turn off the broken portion?


    1. Hi Jeff,
      thanks for reaching out! I’m sad to hear that you got a broker Lightpad. Did you try contracting ROLI support about it?
      But yes, I guess Dynamic Controls could be used to create controls only on the part’s of the surface that do work. Just give it a try 😉

  11. Dynamic Controls 2 is AMAZING! Thank you so much for putting this together 🙂 So kind of you to make it available to people as well!

    After using it I have two questions/ideas:
    PB: Is there a way to send pitch bend from the controls instead of CCs? Unsure how to implement pitch bend aside of mapping it to a CC in the DAW.

    MODE BUTTON: Is it possible to use the mode button and be able to utilize the mode switch? If so we could build say 2-4 layouts and swap them out with the mode button, while having 16-25 controls to work with.

    That way one mode page could be an XY pad with a Midi Note of C4 trigger with 2 pressures, another mode page could be 5 faders and 5 switches, and another page could be 4 XY pads. If we could use the mode switch button that would all work without needing to go back into ROLI dashboard.

  12. It makes us happy to hear that you like it! Thanks so much or the feedback.

    Unfortunately we didn’t have memory left on the Lightpad to implement these features. We would have, if it was possible the way we had designed the app…


Leave a Reply

Your email address will not be published. Required fields are marked *