Author Topic: project to clone Ed Sheeran's Chewie II  (Read 27153 times)

jovid196168

Re: project to clone Ed Sheeran's Chewie II
« Reply #100 on: June 03, 2018, 04:00:58 PM »
Good work MarshallArts, manage to really reduce the code there. I had a problem opening the download of the program, so I just copied and pasted it into a new arduino file. What are your plans now? I'm trying to figure out a few things like leds, logo, knob and monitors.

MarshallArts

Re: project to clone Ed Sheeran's Chewie II
« Reply #101 on: June 04, 2018, 03:16:44 AM »
Getting the status back from the tracks would be great. It is almost impossible to do that with the arduino (and stay synced with the track status in moebius).

 Getting an LED to blink in sync with the loops would be enough for me, no need for monitors for me.

Maybe, I will add four rotary encoders or sliders for output level of each track (saves me a mixer for small events).

Lastly, an enclosure...

jovid196168

Re: project to clone Ed Sheeran's Chewie II
« Reply #102 on: June 04, 2018, 03:44:19 AM »
I know a guy online, who has the LEDs stating the tracks status'. He used a separate microcontroller for them. We tried to combine the program with mine and it didn't quite work. But he thinks he may have done it. But he's on vacation at the moment so I'm unable to test the program. But here is his program just for the LEDs. Maybe you could work something out with it?

//PROGRAMMING OF READING MIDI AND FEEDBACK IN LEDS
byte commandByte;
byte noteByte;
byte velocityByte;

byte noteOn = 144;

int trk1ledg = 2;
int trk1ledr = 3;
int trk2ledg = 4;
int trk2ledr = 5;
int trk3ledg = 6;
int trk3ledr = 7;
int trk4ledg = 8;
int trk4ledr = 9;

void setup(){
Serial.begin(31250);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
digitalWrite(trk1ledr, LOW);
digitalWrite(trk2ledr, LOW);
digitalWrite(trk3ledr, LOW);
digitalWrite(trk4ledr, LOW);
digitalWrite(trk1ledg, LOW);
digitalWrite(trk2ledg, LOW);
digitalWrite(trk3ledg, LOW);
digitalWrite(trk4ledg, LOW);
delay (500);
//START UP SEQUENCE
digitalWrite(trk1ledr, LOW);
digitalWrite(trk2ledr, LOW);
digitalWrite(trk3ledr, LOW);
digitalWrite(trk4ledr, LOW);
delay (300);
digitalWrite(trk1ledr, HIGH);
digitalWrite(trk2ledr, HIGH);
digitalWrite(trk3ledr, HIGH);
digitalWrite(trk4ledr, HIGH);
delay (300);
digitalWrite(trk1ledr, LOW);
digitalWrite(trk2ledr, LOW);
digitalWrite(trk3ledr, LOW);
digitalWrite(trk4ledr, LOW);
delay (300);
digitalWrite(trk1ledr, HIGH);
digitalWrite(trk2ledr, HIGH);
digitalWrite(trk3ledr, HIGH);
digitalWrite(trk4ledr, HIGH);
delay (300);
digitalWrite(trk1ledr, LOW);
digitalWrite(trk2ledr, LOW);
digitalWrite(trk3ledr, LOW);
digitalWrite(trk4ledr, LOW);
delay (300);
digitalWrite(trk1ledr, HIGH);
digitalWrite(trk2ledr, HIGH);
digitalWrite(trk3ledr, HIGH);
digitalWrite(trk4ledr, HIGH);
delay (300);
digitalWrite(trk1ledr, LOW);
digitalWrite(trk2ledr, LOW);
digitalWrite(trk3ledr, LOW);
digitalWrite(trk4ledr, LOW);
delay (300);
digitalWrite(trk1ledg, HIGH);
digitalWrite(trk2ledg, HIGH);
digitalWrite(trk3ledg, HIGH);
digitalWrite(trk4ledg, HIGH);
delay (1100);
digitalWrite(trk1ledr, LOW);
digitalWrite(trk2ledr, LOW);
digitalWrite(trk3ledr, LOW);
digitalWrite(trk4ledr, LOW);
digitalWrite(trk1ledg, LOW);
digitalWrite(trk2ledg, LOW);
digitalWrite(trk3ledg, LOW);
digitalWrite(trk4ledg, LOW);
}
//____________________LEDS CONTROL SEQUENCES_____________________________________________________________________________
void playall (){
digitalWrite(trk1ledr, LOW);
digitalWrite(trk2ledr, LOW);
digitalWrite(trk3ledr, LOW);
digitalWrite(trk4ledr, LOW);
digitalWrite(trk1ledg, HIGH);
digitalWrite(trk2ledg, HIGH);
digitalWrite(trk3ledg, HIGH);
digitalWrite(trk4ledg, HIGH);
}

void stopall (){
digitalWrite(trk1ledr, LOW);
digitalWrite(trk2ledr, LOW);
digitalWrite(trk3ledr, LOW);
digitalWrite(trk4ledr, LOW);
digitalWrite(trk1ledg, LOW);
digitalWrite(trk2ledg, LOW);
digitalWrite(trk3ledg, LOW);
digitalWrite(trk4ledg, LOW);
}

void blinkingtracks (){
digitalWrite(trk1ledr, LOW);
digitalWrite(trk2ledr, LOW);
digitalWrite(trk3ledr, LOW);
digitalWrite(trk4ledr, LOW);
digitalWrite(trk1ledg, HIGH);
digitalWrite(trk2ledg, HIGH);
digitalWrite(trk3ledg, HIGH);
digitalWrite(trk4ledg, HIGH);
delay (200);
digitalWrite(trk1ledg, LOW);
digitalWrite(trk2ledg, LOW);
digitalWrite(trk3ledg, LOW);
digitalWrite(trk4ledg, LOW);
delay (200);
digitalWrite(trk1ledr, HIGH);
digitalWrite(trk2ledr, HIGH);
digitalWrite(trk3ledr, HIGH);
digitalWrite(trk4ledr, HIGH);
delay (200);
digitalWrite(trk1ledr, LOW);
digitalWrite(trk2ledr, LOW);
digitalWrite(trk3ledr, LOW);
digitalWrite(trk4ledr, LOW);
delay (200);
digitalWrite(trk1ledr, HIGH);
digitalWrite(trk2ledr, HIGH);
digitalWrite(trk3ledr, HIGH);
digitalWrite(trk4ledr, HIGH);
delay (200);
digitalWrite(trk1ledr, LOW);
digitalWrite(trk2ledr, LOW);
digitalWrite(trk3ledr, LOW);
digitalWrite(trk4ledr, LOW);
}
//______________________MIDI COMMANDS SECUENCE__________________________________________________________________________________________
void checkMIDI(){
do{
if (Serial.available()){
commandByte = Serial.read();//read first byte
noteByte = Serial.read();//read next byte
velocityByte = Serial.read();//read final byte
if (commandByte == noteOn){//if note on message
//check if note == 60 and velocity > 0

if (noteByte == 20 && velocityByte > 0){ //PLAY BUTTON. TURNS EVERY TRACK LED ON GREEN
//void playall ();
digitalWrite(trk1ledr,LOW);
digitalWrite(trk1ledg,HIGH);
digitalWrite(trk2ledr,LOW);
digitalWrite(trk2ledg,HIGH);
digitalWrite(trk3ledr,LOW);
digitalWrite(trk3ledg,HIGH);
digitalWrite(trk4ledr,LOW);
digitalWrite(trk4ledg,HIGH);
/*/}
if (noteByte == 19 && velocityByte > 0){ //STOP BUTTON. TURNS EVERY TRACK LED OFF
void stopall ();
/*/
}
if (noteByte == 19 && velocityByte > 0){ //CLEAR & CLEAR BUTTON. TURNS EVERY TRACK LED OFF & MAKE THEM BLINK
digitalWrite(trk1ledr, LOW);
digitalWrite(trk2ledr, LOW);
digitalWrite(trk3ledr, LOW);
digitalWrite(trk4ledr, LOW);
digitalWrite(trk1ledg, LOW);
digitalWrite(trk2ledg, LOW);
digitalWrite(trk3ledg, LOW);
digitalWrite(trk4ledg, LOW);
}
if (noteByte == 1 && velocityByte > 0){ //RECORD LOOP 1 BUTTON. TURNS TRACKS LED 1 ON RED
digitalWrite(trk1ledg,LOW);
digitalWrite(trk1ledr,HIGH);//turn on led
}
if (noteByte == 2 && velocityByte > 0){ //PLAY LOOP 1 BUTTON. TURNS TRACKS LED 1 ON GREEN
digitalWrite(trk1ledr,LOW);
digitalWrite(trk1ledg,HIGH);
//turn on led

}
if (noteByte == 3 && velocityByte > 0){ //STOP LOOP 1 BUTTON
digitalWrite(trk1ledg,LOW);
digitalWrite(trk1ledr,LOW);


}
if (noteByte == 4 && velocityByte > 0){ //RECORD LOOP 2 BUTTON. TURNS TRACKS LED 2 ON RED
digitalWrite(trk2ledg,LOW);
digitalWrite(trk2ledr,HIGH);//turn on led
}
if (noteByte == 5 && velocityByte > 0){ //PLAY LOOP 2 BUTTON. TURNS TRACKS LED 2 ON GREEN
digitalWrite(trk2ledr,LOW);
digitalWrite(trk2ledg,HIGH);
}
if (noteByte == 6 && velocityByte > 0){ //STOP LOOP 2 BUTTON.
digitalWrite(trk2ledr,LOW);
digitalWrite(trk2ledg,LOW);

}
if (noteByte == 21 && velocityByte > 0){ //RECORD LOOP 3 BUTTON. TURNS TRACKS LED 3 ON RED
digitalWrite(trk3ledg,LOW);
digitalWrite(trk3ledr,HIGH);
}
if (noteByte == 8 && velocityByte > 0){ //PLAY LOOP 3 BUTTON. TURNS TRACKS LED 3 ON GREEN
digitalWrite(trk3ledr,LOW);
digitalWrite(trk3ledg,HIGH);
}
if (noteByte == 9 && velocityByte > 0){ //STOP LOOP 3 BUTTON.
digitalWrite(trk3ledr,LOW);
digitalWrite(trk3ledg,LOW);
}
if (noteByte == 16 && velocityByte > 0){ //RECORD LOOP 4 BUTTON. TURNS TRACKS LED 4 ON RED
digitalWrite(trk4ledg,LOW);
digitalWrite(trk4ledr,HIGH);
}
if (noteByte == 17 && velocityByte > 0){ //PLAY LOOP 4 BUTTON. TURNS TRACKS LED 4 ON GREEN
digitalWrite(trk4ledr,LOW);
digitalWrite(trk4ledg,HIGH);
}
if (noteByte == 18 && velocityByte > 0){ //STOP LOOP 4 BUTTON.
digitalWrite(trk4ledr,LOW);
digitalWrite(trk4ledg,LOW);


}
}
}
}

while (Serial.available() > 2);//when at least three bytes available
}


void loop(){
checkMIDI();
delay(100);
//digitalWrite(2,LOW);//turn led off
}

MarshallArts

Re: project to clone Ed Sheeran's Chewie II
« Reply #103 on: June 04, 2018, 06:51:40 AM »
Cool... That takes the midi signals from the controller, not moebius, right? I would try to make moebius spit out midi directly (also for the blinking loop indicator), but if this fails, I can integrate the above approach in my code. If only the circular labs forum would work...

jovid196168

Re: project to clone Ed Sheeran's Chewie II
« Reply #104 on: June 04, 2018, 07:52:45 AM »
I'm not 100% sure, his circuit has both midi in and out. So most likely yes. Well it give you something to work with I guess. Has the forum been shut down? Haven't been able to get onto it for some time. I heard from someone there is a Facebook community. But I don't know what it's under.

MarshallArts

Re: project to clone Ed Sheeran's Chewie II
« Reply #105 on: June 10, 2018, 01:21:28 PM »
Major progress: I spent hours to modify my circuit. I now have all buttons attached to one analog pin (which will allow me to use a single TRS Cable to connect the controller with a separate footswitch-enclosure). I will most likely not use a monitor, as this new circuit has everything I need:

- "Armed" LEDs (orange, on top right of the picture below). They indicate "armed" to be played back if "rec/play" is pressed next in play mode.
- The usual Track LEDs (Red=record/Green=play/Off=mute) that perfectly allign with the moebius behaviour (reverse engineered and solely controlled by the arduino, so no midi signals required to be sent from Moebius)
- LED to indicate Play (=blue) and rec (=red) mode. Canīt go off, so itīs a power LED as well.

Some workflow-things still pending (see introduction to the code) but I am quite happy so far.



Here is a video of that software being used:



And here is the code:
https://drive.google.com/open?id=133EMsgiX7jnODc5YzcJ33rf-Ux7Rx_1Z

[Edit]: Here is the schematic:


The schematic includes the heartbeat LED... I got it working ok, but it drifts out of sync after few minutes. I guess it is a matter of programming/calculation/data types in the code, but it should be possible to make it sync perfectly. If I get that done, I can activate it later.

 Next: Fix the missing things in the software (maybe, I could also live without them) and think about an enclosure. I will produce a PCB for a 1590B with just the 10 LEDs, a complete Nano (including the USB-Port for powering the unit from my notebook), a MIDI Out and a TRS for the (passive) footswitch.
« Last Edit: June 10, 2018, 04:55:52 PM by MarshallArts »

MarshallArts

Re: project to clone Ed Sheeran's Chewie II
« Reply #106 on: June 10, 2018, 01:30:01 PM »
P. S. The Music you hear is not related with the video.




jovid196168

Re: project to clone Ed Sheeran's Chewie II
« Reply #107 on: June 10, 2018, 02:52:41 PM »
Hey, great work there! I've been working on mine too this weekend. I've managed to make some good progress with a friend. What scripts have you used?

MarshallArts

Re: project to clone Ed Sheeran's Chewie II
« Reply #108 on: June 10, 2018, 03:02:52 PM »
I just used the scripts available from the insructables / sonnit website.

MarshallArts

Re: project to clone Ed Sheeran's Chewie II
« Reply #109 on: June 10, 2018, 04:57:04 PM »
Updated the post above with schematics.

MarshallArts

Re: project to clone Ed Sheeran's Chewie II
« Reply #110 on: June 24, 2018, 04:37:18 PM »
I added volume control for each track and skipped the idea of the resistor network - it was not consistent enough with a long cable and cheap momentary switches. With the volume controls, I feel it's drifting away from the original topic of this thread, so I will continue the disucussion here:

http://www.madbeanpedals.com/forum/index.php?topic=28107.0

There is also a detailed documentation (and code and schematics and PCB layout) availble..

DFX-PCBS

Re: project to clone Ed Sheeran's Chewie II
« Reply #111 on: June 25, 2018, 05:03:32 AM »
Sheeran just gets on my nerves. The ginger bastard is everywhere. Good project tho

jovid196168

Re: project to clone Ed Sheeran's Chewie II
« Reply #112 on: April 13, 2019, 11:23:13 AM »
Hello, I just wanted to share an update on my project that I have now finished. If you would like to check it out head to my instagram post https://www.instagram.com/p/BwMwoQOjvXr/?utm_source=ig_share_sheet&igshid=4cqu00mugqeb. I will be following this up with a write up about the whole pedal. Thanks

Joseph

Re: project to clone Ed Sheeran's Chewie II
« Reply #113 on: May 03, 2020, 06:56:30 PM »
Amazing work! Do you mind sending the program?

willienillie

Re: project to clone Ed Sheeran's Chewie II
« Reply #114 on: May 04, 2020, 09:22:38 PM »
jovid19...