Hello Community,
this is my first post here.
I am working on another Midi controller for my DAW, in my case Logic Pro X.
I would be happy to hear some ideas from you about my plan to build this thing.
So let me introduce you to my Project:
My plan is to build a Midi controller Like a Mixing console.
for the beginning about 8 Channelstrips with each Channelstrip having following Components:
- 1 Motorized Fader
- 3 Potentiometer
- 1 Button
- 2 LEDs
to measure and controll this thins I want to use one Arduino nano per Chanelstrip and I need one L298N H-Bridge to Controll the Motor of the fader since the one I have needs about 9V.
Reading out a poti is on of the basic lessons...
Controlling an LED too and since I only want it for Cliping signal, only needs On/Off.
Now the Fader: I found some good Tutorials on how to programm an Motorized fader and adoptetd these to an library with touchsense and and the function to slow the motor down over the H-Bridge via PWM as the fader gets Closer to its final Value.
So I have one channelstrip working on its own... no connection to a PC and only just one.
So now to the plans and ideas I have for the future:
To start of I want to connect the singel Channelstrip to the PC via an Midi to usb adapter or via serial and an little software tool.
After I got this working I have to find a way to connect several Channelstrips to the PC.
So my plan was to have one Arduino as an Master for an I2C Bus who gets the Values from all the other Arduinos and gives them to the PC.
My first approach will be, and I already have done some Latency tests, to let the Master get the values from the Slaves via an Request and let the slaves allways answer with all data in an array(about 6 to 8 Byte) since, at least in my mind, it is less effort to send out all data then to check what has changed and only send that, and i would have no idea how to send change the size of the I2C message at runtime.
Additionally to the frequent request fom the master there need to be a way for the master inform the slave if something from the PC has changed.
I have done it with an easy Wire.beginTransmission(x) and an onRecevie Function.
But there are still some concerns about all this:
First: I have heared, that it is not realy smooth working with an direct midi connection between DAW and arduino so many are using this mackie Protocoll (MCU or how its called). So thats still open for the PC Connection.
Second: Is the Classic I2C connection fast enought? I dont realy know how much Latency is ok. with two slaves I am between 2 to 5 ms for one master loop.
Third: will an Arduino Uno Or Nano be fast enough or do I have to take a Due or even another Micocontroller?
I hope I find some interested people for this Topic.
Feel free to ask or to tell me where I can do better or diffrent.
I will try to Organize all my Code pieces and throw them up here later.