alf45tar / PedalinoMini

Wireless and Bluetooth MIDI Foot Controller
GNU General Public License v3.0
484 stars 84 forks source link

Enhancement | LED Rules and Effects #284

Open TarFilarek opened 2 years ago

TarFilarek commented 2 years ago

Hello,

I'm currently mapping my PedalinoMini to use it as a Loop Station in Ableton Live, and a small enhancement idea came to my mind.

I don't know if You are familiar with Ableton's Clip Recording, so I will write a little description.

It's a little example of a problem, which could be fixed with this enhancement.

PedalinoMini

If I want to record on 5 TRACKS just once, all TRACK LEDs will stay lit, cause I don't have to re-click the previous ARM BUTTON. When all TRACK LEDs are turned on, they are basically saying nothing.

And here comes an enhancement idea - the implementation of "rules" for LEDs.

Is it possible to allow users to choose which LEDs will be turned off after pressing the specific PEDAL?

It couldn't be as simple as "turn off previous LED" because there are some buttons (like Record, Mute, Solo, Tempo etc.) that should work independently and should not turn off any other LEDs.

Maybe another text cell for each PEDAL, in which we could select different LED numbers which will be turned off when this PEDAL is pressed?

Example of use: in a loop profile, we could use it to disable all remaining TRACK LEDs when the new TRACK is selected. It would allow us to clearly see which TRACK is ARMED.

Also - is it possible to implement some basic lightning effects like pulsating or flashing? It could be used with RECORD BUTTON etc.

And the last question - there is a text box named SLOT in each PEDAL. How does it work?

Kind Regards

alf45tar commented 2 years ago

Thanks for the idea. I will consider for future enhancements. SLOT is not used at the moment. In my mind it should indicate a slot on display to show the pedal tags.

TarFilarek commented 2 years ago

@alf45tar, after a second thought, my idea with LEDs wouldn't solve this problem.

In Ableton, when You turn ON the ARM BUTTON, other ARM BUTTONS turn automatically OFF.

Ableton Arm

When I want to do the same thing with PedalinoMini, I have to do this as I've shown in the video below (00:00 - 00:10).

Instead of simply moving to the next button, I need to re-press the previous one.

Otherwise, I will turn everything ON (00:10 - 00:14), and later I will have to manually "reset" all the buttons to make them work again (00:14 - 00:28).

By "reset" I mean pressing each one of them to make them send 0 Value messages, which will do nothing, cause the corresponding ARM BUTTONs in Ableton are already turned OFF.

https://user-images.githubusercontent.com/64553282/139292314-78029d74-0106-47f7-9e3d-88aa4ee00d36.mp4

The only solution I can think of is the creation of another SEND type, which could send MIDI CC messages and allow only one button (within this SEND type) to be at ON state at the same time (and make other buttons send 0 Value messages to turn them OFF).

Buttons with this SEND type would act (visually) just like the buttons with SEND set to "Program Change".

https://user-images.githubusercontent.com/64553282/139289650-594a5aac-00a3-489f-adf7-b22673826392.mp4

In DAWs there are few types of actions with such behavior (Arm, Solo). Maybe You could add a few SEND types. They could be named just like the actions - Arm, Solo, etc.

alf45tar commented 2 years ago

My favorite solution is to add a new action called SET LED COLOR. On button press (or any other event) you can set the led color of any led. Add multiple actions to set multiple led. You can consider also to use a SEQUENCE to set all the led off.

What do you think?

TarFilarek commented 2 years ago

Yeah, it sounds great!

alf45tar commented 2 years ago

@TarFilarek new version 2.2.11 has been released if you you want to give a try and let me know your comments.

TarFilarek commented 2 years ago

It works really great but had some obvious restrictions. Here is a little video of how it works.

https://user-images.githubusercontent.com/64553282/139681331-cbed447d-fc12-4621-9bc1-afa857d362f5.mp4

"SET LED COLOR" function works properly on LEDs in the same state (all turned on/off).

If the LEDs are in different states (some turned on, some off), it will mess it up, and some buttons (e.g. previously turned off) will appear to be turned on and will require reset (additional press) to sync it with the corresponding LEDs.

The easiest solution is to simply keep that in mind and modify the workflow. It's a great feature, and I'm truly thankful!

I have two more questions/ideas - I hope I'm not annoying You :D

alf45tar commented 2 years ago

@TarFilarek with the latest version it is possible to Repeat the previous midi message or Repeat Overwrite the overwrite channel value.

alf45tar commented 2 years ago

Check out version 2.1.13 for bank duplication

TarFilarek commented 2 years ago

@alf45tar

Thank You so much!

Bank Duplication works perfectly. Same with Repeat/Repeat Overwrite. The only small problem is the lack of a TAG option for Repeat Overwrite. It displays only the MIDI Values, but it's not a big deal and it is absolutely usable as it is.

I've noticed one bug with "Set Led Color". A large quantity of "Set Led Color" actions assigned to the single button will cause the TAG of an associated button to disappear, and only the MIDI Value will be displayed. It is probably too much for ESP32, but once again - it is just a visual inconvenience. The function itself works perfectly.

I really appreciate that You've implemented my suggestions. I will try to be quiet now for some time :D Once again - Thank You!

TheNothingMan commented 6 months ago

Another thing that comes to my mind for the LEDs is controlling the from MIDI input. That way you could let the software you use do a lot of the logic behind LED groups. And you would see armed tracks etc. on your pedal even if you clicked a button in the software. I think this would put Pedalino on a new level especially for loopers and clip based setups.

I'm not sure how it would be best implemented in the current workflow, though.