tttapa / MIDI_controller

This is a library for creating a MIDI controller using an Arduino or Teensy board.
GNU General Public License v3.0
402 stars 70 forks source link

Feauture additions #17

Open alf45tar opened 6 years ago

alf45tar commented 6 years ago

I suggest to add DigitalCC and AnalogResponsive to the main library.

alf45tar commented 6 years ago

AnalogResponsiveRead library can be found here

https://github.com/dxinteractive/ResponsiveAnalogRead

or downloaded via Library Manager inside Arduino IDE

cferrarini commented 6 years ago

Hello, I modified and added some features to Digital CC as Toggle (class DigitalCCT) for momentary switch toggle on/off, with optional on/off LED. Also a Class for Program Change (Class DigitalPC) for sending single program change commands, the button release command is commented in the case someone wants to send different a PC command when button is released. Also MIDI_Controller.h had to be changed to add this classes. I want to modify bank class to include to the bank type options besides change_address and change_channel also, Change Between CC and PC, So when the bank switches, it changes between CC and PC. I don´t know how to open a pull request and don´t want to mess, please submit my contributions. Thanks, Celso.

Sketch ex: DigitalPC switchespc[] = { {9, 0, 1}, {8, 1, 1}, {7, 2, 1}, {6, 3, 1}, {5, 4, 1}, };

DigitalCT switchesct[] = { {9, 4, 20, 1}, {8, 3, 21, 1}, {7, 2, 22, 1}, {6, 0, 23, 1}, {5, 1, 24, 1}, };

bank5.add(switchesct, Bank::CHANGE_ADDRESS); bank5.add(switchespc, Bank::CHANGE_ADDRESS);

Digital_cc_ct.zip

tttapa commented 6 years ago

alf45tar, cferrarini,

Thank you for your contributions.
Many of the features you added made it into my development branch eventually, in one way or another. For example, DigitalCC and DigitalCCLatching will be supported in the next release, you can use Selectors for PC, and there is no more need for the AnalogReadResponsive library, because I've improved the filtering significantly.

What kind of use cases do you have in mind for switching between CC and PC? My idea is that you decide which one to use at the time you write the code, make your MIDI mappings based on this decision, and don't change it at run-time.

Pieter

cferrarini commented 6 years ago

Hello Pieter, I´m developing a guitar pedal control, for amplitube and guitar rig, and intend it to be minimalistic, so maybe it will only have 6 momentary switches and one momentary bank selector. This bank selector will change the buttons between PC and CC. Maybe one extra bank selector button or a third push can change addresses. There is no need of sending notes in this case. PC will load the amp preset, and CC will toggle individual pedal settings inside each preset. Thats how the program works. So, once you have loaded the amp with PC you need CC to activate or deactivate pedals. Your present version does not support digital CC Toggle for momentary buttons, (the one I´ve sent). Can I use an arduino Nano 3.0 with this library? the programming process is the same as Pro Micro?

Thanks Celso

alf45tar commented 6 years ago

May I suggest to have a look here https://github.com/alf45tar/Pedalino? Everything you are looking for are there and more.

cferrarini commented 6 years ago

Nice. Definetely Taking a look at it! My pedal, is almost done, I just need to make a a bank switch between cc and pc. Im also making a wah/volume expression pedal using ir leds.

tttapa commented 6 years ago

The Arduino Nano would not be a good choice if you need MIDI over USB.

This Wiki page compares different boards: https://github.com/tttapa/MIDI_controller/wiki/MIDI-over-USB

cferrarini commented 6 years ago

Any idea to making a switch or bank button between PC and CC? The pc library Iwrote is working...

Erikovitch commented 5 years ago

Is there any way to use this library with motorized faders or can you add this functionality?

tttapa commented 5 years ago

Currently, there is no support for it.
I am working on it though, but I haven't been able to build it into the library.

I should have some free time the following weeks, when I get to it, you can expect updates in tttapa/Control-Surface.