project to clone Ed Sheeran's Chewie II

Started by jovid196168, March 08, 2017, 07:21:00 PM

Previous topic - Next topic

jovid196168

#40

Need them to light up like this. First image shows track in record and the second image shows them in play mode


jovid196168

I'm also wanting to add a light for the knob to the left and the Chewie II logo. could I use a neopixel ring for the knob? Or would I be better using LED strips? What's the best options?

jovid196168

I really need some help please if someone could reply. I'm baffled how I can do this.

slacker

If you want Mobius to be able to send commands to the pedal you will need to add a MIDI In socket to the Arduino and then program the arduino to turn the LEDs on and off depending on the MIDI commands Mobius sends it. If you google "midi in arduino" you should find schematics and code examples for using MIDI in.
I don't know anything about Mobius but it looks like you can script it to send MIDI commands, there's a thread on their forums asking something similar http://www.circularlabs.com/forums/showthread.php?t=1420 that's probably the best place to get help with Mobius scripts.


jovid196168

I've added a midi in socket to my circuit. It all works how it should. Added a 4th track pedal too, got a lot of help from Ed who posted the tutorial on instructables. I'll have to have a look on that forum, I have scripts setup currently. The scripts that I got from the tutorial. I know a little about midi commands each pedal has one and they are assigned to a mobius script. I'll have a look on that forum, so that aside for now. What is my best option for the logo to light up green and red? And also for the knob to light up on the left which spirals in a circular motion? Had a look at the adafruit lights. I was told I'd need a arduino mega but I have an uno. I want to put this on something more permanent like a perfboard could I build a arduino mega on perfboard? Don't want to go spending more money on something for more pins.


Kipper4

Looking sweet there man.
I hope theres gonna be a demo when it's done.
Rich
Ma throats as dry as an overcooked kipper.


Smoke me a Kipper. I'll be back for breakfast.

Grey Paper.
http://www.aronnelson.com/DIYFiles/up/

jovid196168

Thanks Kipper4, I will show a demo. Got it to this stage with a lot of help from Ed from sonnit pedals. And also from you guys and a few others on fritzing. I now want to add a bank button for presets. LED's  for each track in record mode or play mode. Light that lights up green and flashes red for the logo when the clear button is pressed. A neopixel ring (if I can) which will light up red in record mode, green in play mode and I think orange/yellow in overdub mode but I don't know how I can do this same with the LED's because it's ran by mobius. Need to probably write some scripts to sort that out but I'm fair new to this. Oh and I want to add two screens but I don't know how that one is going to work yet. I think I'm going to go down the jack socket route. I need 10 pedals which will cost me £130 and I don't want to go stripping the plug of to void warranty. So I was thinking of getting these 6.5mm female mono sockets.
http://s.aliexpress.com/ia63uYFJ1 Will these work? I don't know how to connect them to my current circuit. Seen a few diagrams as to what each leg connectivity is. And I'm going to get these pedals here. Sticking to Roland boss pedals which are the same manufacturer of the pedals on the Chewie II. https://www.roland.com/uk/products/dp-2/. Any help I would really appreciate


caspercody

I am starting to work on this project also. I found these buttons for a good price:

http://www.taydaelectronics.com/spst-momentary-soft-touch-push-button-stomp-foots-pedal-switch.html

Just got them in yesterday and mounted, now will need to wire up.

Tayda also has the UNO board for really cheap. Was very easy to load the file onto, just trying to understand how to add more points, like track 4? Or add LEDs to the program to light up for different buttons pushed. hopefully will learn some more once I get it all wired up.

jovid196168

I'm stuck on this project now. I have it fully functioning on breadboard all good works how it should in mobius. I'm using an arduino uno, but think I'll need a different one as I will run out of pins for what I want to add. I need to add some sort of light that will light up green and red for the logo. Also a light like the adafruit neopixel ring for the knob, rgb common cathode led's for each track. And two screens but I'm still not 100% sure as to how they connect up. Need some help and suggestions. I'm wanting to make this project more permanent so I'd like to use pcb but I've never used it before. I also know you can make arduino on it so maybe that should be the route I go down. I currently have one LED attatched to this circuit which shows when the pedal is in record mode or play mode. I have ordered some 6.35mm jack sockets and I recieved my boss dp2 pedals today so I'm waiting for my sockets to arrive now. I now need to find a way how to program the LED's to light up red when track is recording and green when the track is playing. Programed that. But I need to find out how to write a script/trigger for mobius so it all works. Found this that touches onto the topic  http://www.circularlabs.com/forums/showthread.php?t=912&highlight=light+track+script Here is the code I'm running so far with a 4th track. Need all the help I can get

#include <SoftwareSerial.h>
SoftwareSerial midi(0,1); ///RX TX

int clearbtn = 8;
int recordbtn = 4;
int stopbtn = 5;
int track1btn = 9;
int track2btn = 10;
int track3btn = 11;
int track4btn = 13;
int modebtn = 7;
int undobtn = 6;
int led = 12;


int toggle1 = 0;
int toggle2 = 0;
int toggle3 = 0;
int toggle4 = 0;
int toggle5 = 0;
int toggle6 = 0;
int toggle7 = 0;
int toggle8 = 0;
int toggle9 = 0;


int mode = 0;



void setup(){
pinMode (clearbtn, INPUT_PULLUP);
pinMode (undobtn, INPUT_PULLUP);
pinMode (recordbtn, INPUT_PULLUP);
pinMode (stopbtn, INPUT_PULLUP);
pinMode (track1btn, INPUT_PULLUP);
pinMode (track2btn, INPUT_PULLUP);
pinMode (track3btn, INPUT_PULLUP);
pinMode (track4btn, INPUT_PULLUP);
pinMode (modebtn, INPUT_PULLUP);
pinMode (undobtn, INPUT_PULLUP);
pinMode (led, OUTPUT);
digitalWrite(led, HIGH);
delay(250);
digitalWrite(led, LOW);
delay(250);
digitalWrite(led, HIGH);
delay(250);
digitalWrite(led, LOW);
delay(250);
digitalWrite(led, HIGH);
delay(250);
digitalWrite(led, LOW);
delay(250);

midi.begin(31250);
}



void loop(){

if (digitalRead(undobtn) == LOW && toggle1 == 0){
toggle1 = 1;
if(mode == 0){
midi.write(0x90);
midi.write(0x41);
midi.write(0x01);
// delay(300);
}

if(mode == 1){
midi.write(0x90);
midi.write(0x36);
midi.write(0x01);
// delay(300);
}
}

if (digitalRead(undobtn) == HIGH && toggle1 == 1){
toggle1=0;
if(mode == 0){
midi.write(0x90);
midi.write(0x41);
midi.write((byte)0x00);
delay(300);
}

if(mode == 1){
midi.write(0x90);
midi.write(0x36);
midi.write((byte)0x00);
delay(300);
}

}




if(digitalRead(clearbtn) == LOW && toggle2 == 0){
toggle2 = 1;
if(mode == 0){
midi.write(0x90);
midi.write(0x01);
midi.write(0x45);
//delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x37);
midi.write(0x45);
//delay(300);
}
}


if(digitalRead(clearbtn) == HIGH && toggle2 == 1){
toggle2 = 0;

if(mode == 0){
midi.write(0x90);
midi.write(0x01);
midi.write((byte)0x00);
delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x37);
midi.write((byte)0x00);
delay(300);
}

}



if(digitalRead(recordbtn) == LOW && toggle3 == 0){
toggle3 = 1;
if(mode == 0){
midi.write(0x90);
midi.write(0x10);
midi.write(0x45);
//delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x35);
midi.write(0x45);
// delay(300);
}
}

if(digitalRead(recordbtn) == HIGH && toggle3 == 1){
toggle3 = 0;
if(mode == 0){
midi.write(0x90);
midi.write(0x10);
midi.write((byte)0x00);
delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x35);
midi.write((byte)0x00);
delay(300);

}
}




if(digitalRead(stopbtn) == LOW && toggle4 == 0){
toggle4 = 1;
///Serial.println("mute/stop");
if(mode == 0){
midi.write(0x90);
midi.write(0x07);
midi.write(0x45);
//delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x34);
midi.write(0x45);
//delay(300);
}
}


if(digitalRead(stopbtn) == HIGH && toggle4 == 1){
toggle4 = 0;
if(mode == 0){
midi.write(0x90);
midi.write(0x07);
midi.write((byte)0x00);
delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x34);
midi.write((byte)0x00);
delay(300);

}
}




if (digitalRead(track1btn) == LOW && toggle5 == 0){
toggle5 = 1;
if(mode == 0){
midi.write(0x90);
midi.write(0x14);
midi.write(0x01);
// delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x33);
midi.write(0x01);
// delay(300);
}
}

if (digitalRead(track1btn) == HIGH && toggle5 == 1){
toggle5 = 0;
if(mode == 0){
midi.write(0x90);
midi.write(0x14);
midi.write((byte)0x00);
delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x33);
midi.write((byte)0x00);
delay(300);
}
}

if (digitalRead(track2btn) == LOW && toggle6 == 0){
toggle6 = 1;
if(mode == 0){
midi.write(0x90);
midi.write(0x15);
midi.write(0x01);
// delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x32);
midi.write(0x01);
// delay(300);
}

}

if (digitalRead(track2btn) == HIGH && toggle6 == 1){
toggle6 = 0;
if(mode == 0){
midi.write(0x90);
midi.write(0x15);
midi.write((byte)0x00);
delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x32);
midi.write((byte)0x00);
delay(300);
}
}


if (digitalRead(track3btn) == LOW && toggle7 == 0){
toggle7 = 1;
if(mode == 0){
midi.write(0x90);
midi.write(0x16);
midi.write(0x01);
// delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x31);
midi.write(0x01);
// delay(300);
}
}

if (digitalRead(track3btn) == HIGH && toggle7 == 1){
toggle7 = 0;
if(mode == 0){
midi.write(0x90);
midi.write(0x16);
midi.write((byte)0x00);
delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x30);
midi.write((byte)0x00);
delay(300);

}
}


if (digitalRead(track4btn) == LOW && toggle9 == 0){
toggle9 = 1;
if(mode == 0){
midi.write(0x90);
midi.write(0x40);
midi.write(0x01);
// delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x66);
midi.write(0x01);
// delay(300);
}
}

if (digitalRead(track4btn) == HIGH && toggle9 == 1){
toggle9 = 0;
if(mode == 0){
midi.write(0x90);
midi.write(0x40);
midi.write((byte)0x00);
delay(300);
}
if(mode == 1){
midi.write(0x90);
midi.write(0x66);
midi.write((byte)0x00);
delay(300);
}
}


if (digitalRead(modebtn) == LOW && toggle8 == 0){
toggle8 = 1;
if(mode == 0){


midi.write(0x90);
midi.write(0x17);
midi.write(0x01);
// delay(300);
}

if(mode == 1){


midi.write(0x90);
midi.write(0x30);
midi.write(0x01);
// delay(300);
}


}

if (digitalRead(modebtn) == HIGH && toggle8 == 1){
toggle8 = 0;
if(mode == 0){
mode = 1;
midi.write(0x90);
midi.write(0x17);
midi.write((byte)0x00);
digitalWrite(led, HIGH);
delay(300);
}
else if(mode == 1){
mode = 0;
midi.write(0x90);
midi.write(0x30);
midi.write((byte)0x00);
digitalWrite(led, LOW);
delay(300);
}

}
}


caspercody

What pin numbers on the UNO board do these match up to? Are these all the digital pins? Using no analog inputs on the board?

int clearbtn = 8;  Is this digital pin 8?
int recordbtn = 4;
int stopbtn = 5;
int track1btn = 9;
int track2btn = 10;
int track3btn = 11;
int track4btn = 13;
int modebtn = 7;
int undobtn = 6;
int led = 12;

jovid196168

Yeah they are all of the digital pins, each figure is what I have mine wired up to. You can change them to what yours are connected to

caspercody

What pins do you connect the MIDI + and - to

jovid196168

Midi is at the beginning of the program SoftwareSerial midi(0,1); ///RX TX. I have mine in 0 and 1

caspercody

Thanks for all your help, but one last thing....Can I get a copy of your scripts for Mobius?

The ones I have do not have Undo, and Clear. Everything else works.

Thanks
Rob

jovid196168

They aren't my scripts, I got them from Ed who built the sonnit pedal http://www.instructables.com/id/DIY-Chewie-Monsta-Ed-Sheeran-Loop-Pedal/?ALLSTEPS. Mobius comes with clear and undo. They are both under functions I think add them in and assign them to the correct pedals

jovid196168

I have built my midi controller with mono sockets with pedals connected, I now want to move onto getting the led's set up. I don't know what route to go down. At first I was planning on using common cathode led's, I've now been suggested to use bi-colour led's which light up red and green when power is reverse. I'm going to need to use a couple of 74HC595's because I'll run out of pins. Anyone have any idea on how I can achieve this? Never used these led's and I've never shift registered

slacker

Looking good, here's a tutorial on using shift registers https://www.arduino.cc/en/Tutorial/ShiftOut. It doesn't really matter what sort of LEDs you use common cathode, common anode or bipolar, they all need two pins from the arduino or shift registers to get two colours and be able to turn them off.