Hi, I hope you don't mind. But I have ported this to use an ESP32-BASED board. My intention is to place a Oled screen to replace the LEDs and show the tempo of the clock on the screen. If you would like to try the code I would be more than happy to share it with you. The main reason for doing this is that the ESP32 as got two cores and its a faster board. Interplain
This is really cool. Thanks for sharing the code. I have coded a couple of midi loopers on Arduino myself but was never completely happy with the features or usability. Yours does everything it needs to and looks easy to use. I like Matthew Thomas's comment about rotary switches as well.
Love it!, so many functions that is usable :) Will try to build one tomorrow if I have all the parts (which I think I do) Love the melodies you do in the video aswell.
I really like this one, just breadboarded it and it's a lot of fun. I was thinking about using rotary switches instead of potentiometers for step/sequence length, so you can tell exactly what's going on. LMNC uses one on his big button!
I'm Currently looking into this concept. I like the idea of two esp32. One for inputs and a second for sequencing. And saving to a common memory chip. But seems like you run out of space fast. Have to compromise on something. Have a big array that gets filled in with notes or implement things like midi files do, to allow a timecode for when things happen. So much more complexity and not that much savings on space.
Yes indeed so much things can be optimized ! A will work on a new version of this box this year with more feature on the same space. Storing timecode could be a solution, I was just affraid of performances, that’s why I alloc a big array!
Great Project. I love it! I have a beatstep pro but i needed something like that to handle other vco on my modular (using midi converter obviously) It works like a charm. It would be great add a setting part (managed with a lcd maybe) to change midi channels routing and other things like that. I would like to take the time to change the code to add this feature. It would be great!
Yeah, that's in my TODO list for long time now ... LCD took a lot of pins to work but I could use a multiplexer for the buttons then. Right now I am working on a "mini" version for my live setup but the v2 is absolutely in the pipeline.
@@YMNKmusic Ok super, merci de ta réponse, penses-tu que cela est nécessaire si je dispose simplement d'un controller et d'un keyboard? J'ai l'impression que tu ne te sers pas de ses sorties pour faire fonctionner ton sequencer dans la vidéo..
@Camille Duboué Oui en fait ces sorties sont surtout pour sync d'autres machines avec, comme des boites à rythmes par exemple. C'est vraiment optionnel.
@@camilleduboue1226 je pense que c’est un debut de code pour une option arpeggiator … j’ai jamais terminé et c’est un peu bugg … il faut appuyer sur shift et (2) pour passer dans ce mode là si je ne me trompe pas
Is it possible to make a version of this midi looper not so quantized to the 1/16 or 1/8 of a measure for example. It would be nice to make an alternative firmware with 96 ticks or more per measure/bar, I think that would be enough for more human feel. The akai miniak had a Phrase looper that did this.
Hi and thanks for your interest. With this implementation it will takes to much RAM. I will need to rewrite a lot of code to make it 96 ticks per quarter compatible.
@@YMNKmusic Thanks for responding! I really want to build this DIY midiSequencerLooper. Will there also be an opportunity to order a full DIY Kit like some others do on Tindie or similar DIY stores? Sorry for asking 😃
@@lumm71 It's OK to ask ! But no sorry, I don't have any store for diy projects yet ! This would need a lot of effort to prepare and I prefer to focus on music, gigs & new projects for now. All the part are still easy to find (arduino, couples of resistors, potentiometers, switches, optocouplers ... nothing really exotic). Don't hesitate if you have any questions.
@@YMNKmusic I understand this but it is also a good way for me to appreciate and donate a great project in this way. Also I think many people like to have a ready case for the device. So I look forward to your major update 🙂.
This is great! Do you think is it possible to implement a single track with unquantized recording? I would like to use a single looper for every instrument, with just a knob for play/rec/overdub without any fixed temporization.
Hi, thanks! Yes, you can tweak it and remove the 3 others channel. About the quantization ... it could be possible but it's a bit different in terms of code. Also it doesn't record note length.
When quantized, you store the notes in a fixed array. The array has a size of 128 : 16 steps on 8 bars. No quantization means that you will need a very large amount of steps in order to store the precise moment when the note is triggered. Other solution would be to store a dynamic map of notes with pitch value and timing. This changes a lot the algorithm!
You can add 1 DAC for an Arduino nano, but you will have 2 analog pin missing (those we use for the knobs or the switches ...). A DAC such as the MCP4725 needs 2 analog pin to work ... If you want 4 DAC you will not have enough pin, I think.
@@YMNKmusic Is it possible tu use something like an arduino uno or mega. I am planning on bilding a synth and i am searching for a good diy sequenzer like yours. My only problem is that i cant find good diy projects of midi to cv modules with multiple channels and I am not good enough at programming to add multiple channels.
@@_der_pinguin_2463 I think Uno is not enough cuz it's basically the same than Nano. Why not with Mega, I've never used it. I'm not good with DAC actually, I only use one per Nano so I really can't help you with that :/
Really good project. I was writing a BeatStep Pro version myself when I found your video and code. Have soldered everything up and have a problem - the Start/Stop button works, the light comes on, but there is no tempo. The light doesn't flash at all (?) Thru seems to work, allowing notes to be heard or not heard. Channel buttons work, they light up each corresponding LED. It just doesn't seem to want to begin running! Can you help? :)
Did you try to debug the status of the start/stop button? I mean, is it really well connected? Did you try to unplug your midi input device and press start/stop to see if something happen ( if the light is flashing or not ? ). Is the repitch button off? Let me know if it helps you to investigate what’s wrong .
Thanks for the quick reply. Just an observation - A5 is Start/Stop on the webpage, but it's A7 in the code. All connections have been checked, everything else seems to work, with a train of output on the TX light at all times. The circuit was disconnected from MIDI and does the same thing. Repitch has been toggled on and off. But, if I am the only one with such an error then it's got to be me lol. It's like uClock isn't getting the run message. Have also reinstalled the uClock library. Am on IDE 1.8.13 by the way, in case the version could change anything.
@@Slider2732 Do you use an official arduino Nano? Also did u try sending MIDI Clock messages (start/stop/clock) to the box to see if something happen? Normally it should responds to external MIDI clock.
Update - success! Thought to check voltages and whether the pots may have been scratchy or broken. Bizarre thing, the +5V wire from the pots had a break in it. Replaced it and now the looper is working fine! A lesson to not trust salvaged wire :)
Hi :D. I connect a MIDI solution QuadThru to the output. This way I can send MIDI notes to 4 different synths using 4 different channels. The MIDI Sequencer will not work without a Keyboard cause ... you need to send MIDI notes to be recorded :D
Cool. Might try to breadboard this. Is true that is hard to find such a device with convenience. How far are you from note length and polyphonic recording?
Hi ! Thanks ! For my personal usage, i dont need note length and polyphony but somene did a upgraded version of the code with those extra features. But because of memory issue u will need a arduino mega instead of a nano : slazzarotto.free.fr/midilooper.html
Hi! Awesome project! But the quantization seems problematic. Would it be possible to make it quantize to the current step? Would you accept a donation to do it?
Thanks. Normally it should quantize to the next step not the current. But it is easy to modify it. Let me check the code this week and I will let you know which line to modify. I don’t have any system for donation, but you can give me a tip by buying me a digital album on bandcamp if you want ;)
@@YMNKmusic What I'm worried about is if I play in tempo, the sequencer will shift everything by one beat, correct? (That's why you play a little ahead of beat) Regarding the album, sure! Do you mean buy you (someone else's) album or buy your album? 😀
I recommend you to build it first and then try it yourself (it still possible to update the code once builded). Yes everything is shifted by one step so you have to play a little ahead. This way, what you hear is always in sync. This is something that works great for my personal usage but I can understand if someone wants a different approach! What could be done is a “normal” quantization process : when you play you hear exactly what you play at the right moment and then when you play it back it is quantized to the nearest step. Btw, next year I will work on a second version of the sequencer with a lot more features and customizations. About the bandcamp stuff : yes, I was talking about my albums haha
@@YMNKmusic I forgot to add, I am not new to Arduino, I've done my fair share of soldering and programming, even made my own (very primitive) arpeggiator, but my goal is to play live, and that would require playing a phrase in tempo, which would then loop (like a guitar pedal looper), since I want to play more conventional synthpop that has a fixed structure. There are Midi loopers on the market, but they are too expensive for my very small budget. 😅
Saw your post in the Synth DIY group, this is incredible, exactly the kind of thing I want to build! Thanks for all the information 😃 Can I ask - I assume you're sending MIDI to your three synths on different channels, is that hard coded on the Arduino to have each of the 4 sequences playing on a different channel?
Hi. Thanks! Yes the channels are hardcoded. Channel 1, 2, 3, 4. But you can change that in the code if you want too (I might update the code with a nice way for doing it if you really need too.)
@@YMNKmusic Thanks! I'll have a poke around in the code and maybe send you a pull request ;) Although it's been a long time since I've written any C++!!
@@mattholland0202 haha. Ideally I should put all of the hardcoded values available trough the #defines on top of the code. Let's keep in touch about that.
It would be nice once all the sequences are recorded and no more editing etc, if one could toggle a switch and have the ability to transpose the recorded sequence with connected midi keyboard.
Hey brø ! Je suis dans le même délire en ce moment. J'ai vu que d'autres avaient réalisés des loopers et autres engins des démons... Contact-me if yøu wanna more about it. Super travail !! 🤟🃏🤯
Hi, I hope you don't mind. But I have ported this to use an ESP32-BASED board. My intention is to place a Oled screen to replace the LEDs and show the tempo of the clock on the screen. If you would like to try the code I would be more than happy to share it with you. The main reason for doing this is that the ESP32 as got two cores and its a faster board. Interplain
Hello ! Oh, that's great ! Where can I found your project? Please, can you contact me by mail ? contact@ymnkmusic.com
Very cool, I was looking for something like this!
thanks for sharing your projects!, this one looks like a lot of fun to perform with, I think I will give it a try
This is really cool. Thanks for sharing the code. I have coded a couple of midi loopers on Arduino myself but was never completely happy with the features or usability. Yours does everything it needs to and looks easy to use. I like Matthew Thomas's comment about rotary switches as well.
Thanks for your support! Yes, rotary switch might be a better solution for choosing steps and bars count!
Love it!, so many functions that is usable :) Will try to build one tomorrow if I have all the parts (which I think I do) Love the melodies you do in the video aswell.
Really cool! Looking for code to use in my project and looks like midi is way to go, even being hard on analog for so long..
This is totally awesome, thanks for sharing!
amazing, mate! I’m making one myself soon
I really like this one, just breadboarded it and it's a lot of fun.
I was thinking about using rotary switches instead of potentiometers for step/sequence length, so you can tell exactly what's going on. LMNC uses one on his big button!
Yes! That's a good solution.
I'm Currently looking into this concept. I like the idea of two esp32. One for inputs and a second for sequencing. And saving to a common memory chip. But seems like you run out of space fast. Have to compromise on something. Have a big array that gets filled in with notes or implement things like midi files do, to allow a timecode for when things happen. So much more complexity and not that much savings on space.
Yes indeed so much things can be optimized ! A will work on a new version of this box this year with more feature on the same space. Storing timecode could be a solution, I was just affraid of performances, that’s why I alloc a big array!
Great Project. I love it!
I have a beatstep pro but i needed something like that to handle other vco on my modular (using midi converter obviously)
It works like a charm.
It would be great add a setting part (managed with a lcd maybe) to change midi channels routing and other things like that.
I would like to take the time to change the code to add this feature. It would be great!
Yeah, that's in my TODO list for long time now ... LCD took a lot of pins to work but I could use a multiplexer for the buttons then. Right now I am working on a "mini" version for my live setup but the v2 is absolutely in the pipeline.
Amazing!
This is very good !
Great work!
Thank you !
Really neat device! Nice features!
Have you continued to work on it?
Thanks and yes the v2 is on its way. github.com/alexiszbik/midiLoop2
Thanks for sharing, love it!
Smart!!
Salut, peux-tu me dire quel connecteur jack as-tu utilisé pour le SYNC/GATE s'il te plait, j'essaie de souder un projet comme le tien! Merci d'avance
Hello. Un simple connecteur jack mono! Le genre de truc qu'on mets sur une guitare électrique par exemple!
@@YMNKmusic Ok super, merci de ta réponse, penses-tu que cela est nécessaire si je dispose simplement d'un controller et d'un keyboard? J'ai l'impression que tu ne te sers pas de ses sorties pour faire fonctionner ton sequencer dans la vidéo..
@Camille Duboué Oui en fait ces sorties sont surtout pour sync d'autres machines avec, comme des boites à rythmes par exemple. C'est vraiment optionnel.
@@YMNKmusic Merci de ta réponse, j'ai regardé ton code arduino, peux-tu me dire à quoi correspond le Max_Key_Pressed initié à 10? Merci d'avance
@@camilleduboue1226 je pense que c’est un debut de code pour une option arpeggiator … j’ai jamais terminé et c’est un peu bugg … il faut appuyer sur shift et (2) pour passer dans ce mode là si je ne me trompe pas
Is it possible to make a version of this midi looper not so quantized to the 1/16 or 1/8 of a measure for example. It would be nice to make an alternative firmware with 96 ticks or more per measure/bar, I think that would be enough for more human feel. The akai miniak had a Phrase looper that did this.
Hi and thanks for your interest. With this implementation it will takes to much RAM. I will need to rewrite a lot of code to make it 96 ticks per quarter compatible.
I found this today and want to build it! Looks not very complicated and the code seems to be updated. Thanks!
Thanks for stopping by :) I will work on a new version with new features soon ! Keep in touch !
@@YMNKmusic Thanks for responding! I really want to build this DIY midiSequencerLooper. Will there also be an opportunity to order a full DIY Kit like some others do on Tindie or similar DIY stores? Sorry for asking 😃
@@lumm71 It's OK to ask ! But no sorry, I don't have any store for diy projects yet !
This would need a lot of effort to prepare and I prefer to focus on music, gigs & new projects for now.
All the part are still easy to find (arduino, couples of resistors, potentiometers, switches, optocouplers ... nothing really exotic). Don't hesitate if you have any questions.
@@YMNKmusic I understand this but it is also a good way for me to appreciate and donate a great project in this way. Also I think many people like to have a ready case for the device. So I look forward to your major update 🙂.
@@YMNKmusic What is the state of the the new version and features? Thanks for information 🙂
Great stuff this goes on my todo list for sure. Thank you!!!
Olá meu caro amigo, tudo bem? Mais um excelente projeto... Esse é o próximo a ser examinado Saudações do Brasil
This is great! Do you think is it possible to implement a single track with unquantized recording? I would like to use a single looper for every instrument, with just a knob for play/rec/overdub without any fixed temporization.
Hi, thanks! Yes, you can tweak it and remove the 3 others channel. About the quantization ... it could be possible but it's a bit different in terms of code. Also it doesn't record note length.
@@YMNKmusic Thanks for the answer. I am fairly educated in coding, would you care explaining how the code would be different?
When quantized, you store the notes in a fixed array. The array has a size of 128 : 16 steps on 8 bars. No quantization means that you will need a very large amount of steps in order to store the precise moment when the note is triggered. Other solution would be to store a dynamic map of notes with pitch value and timing. This changes a lot the algorithm!
@@YMNKmusic Thank you so much for the explenation. I will look into the code and try to see what I can do!
Is it possible to add a dac to every of the 4 channels so that you can have a direct CV output?
You can add 1 DAC for an Arduino nano, but you will have 2 analog pin missing (those we use for the knobs or the switches ...).
A DAC such as the MCP4725 needs 2 analog pin to work ... If you want 4 DAC you will not have enough pin, I think.
@@YMNKmusic Is it possible tu use something like an arduino uno or mega. I am planning on bilding a synth and i am searching for a good diy sequenzer like yours. My only problem is that i cant find good diy projects of midi to cv modules with multiple channels and I am not good enough at programming to add multiple channels.
@@_der_pinguin_2463 I think Uno is not enough cuz it's basically the same than Nano. Why not with Mega, I've never used it. I'm not good with DAC actually, I only use one per Nano so I really can't help you with that :/
@@YMNKmusic okay but thanks for your answers
The link in the descipription seems to be broken mais chouette projet sinon !
Coucou et merci! étrange le lien fonctionne bien chez moi :|
Really good project. I was writing a BeatStep Pro version myself when I found your video and code. Have soldered everything up and have a problem - the Start/Stop button works, the light comes on, but there is no tempo. The light doesn't flash at all (?)
Thru seems to work, allowing notes to be heard or not heard. Channel buttons work, they light up each corresponding LED.
It just doesn't seem to want to begin running!
Can you help? :)
Did you try to debug the status of the start/stop button? I mean, is it really well connected? Did you try to unplug your midi input device and press start/stop to see if something happen ( if the light is flashing or not ? ). Is the repitch button off? Let me know if it helps you to investigate what’s wrong .
Thanks for the quick reply.
Just an observation - A5 is Start/Stop on the webpage, but it's A7 in the code.
All connections have been checked, everything else seems to work, with a train of output on the TX light at all times. The circuit was disconnected from MIDI and does the same thing. Repitch has been toggled on and off. But, if I am the only one with such an error then it's got to be me lol.
It's like uClock isn't getting the run message. Have also reinstalled the uClock library. Am on IDE 1.8.13 by the way, in case the version could change anything.
@@Slider2732 Do you use an official arduino Nano? Also did u try sending MIDI Clock messages (start/stop/clock) to the box to see if something happen? Normally it should responds to external MIDI clock.
Update - success!
Thought to check voltages and whether the pots may have been scratchy or broken. Bizarre thing, the +5V wire from the pots had a break in it. Replaced it and now the looper is working fine! A lesson to not trust salvaged wire :)
Wonderful. So glad it comes to an happy ending. Enjoy the looper ;)
Great job!
salut est ce que tu as fait une version en francais?
Coucou! Malheureusement non! Mais je vais mettre à jour les sous-titres dans ce cas !
wow!
how did you connect the devices?
does the midi sequencer work without an external keyboard?
Hi :D. I connect a MIDI solution QuadThru to the output. This way I can send MIDI notes to 4 different synths using 4 different channels. The MIDI Sequencer will not work without a Keyboard cause ... you need to send MIDI notes to be recorded :D
Super stuff might give it a go 👍
Cool. Might try to breadboard this. Is true that is hard to find such a device with convenience. How far are you from note length and polyphonic recording?
Hi ! Thanks ! For my personal usage, i dont need note length and polyphony but somene did a upgraded version of the code with those extra features. But because of memory issue u will need a arduino mega instead of a nano : slazzarotto.free.fr/midilooper.html
Hi! Awesome project! But the quantization seems problematic. Would it be possible to make it quantize to the current step? Would you accept a donation to do it?
Thanks. Normally it should quantize to the next step not the current. But it is easy to modify it. Let me check the code this week and I will let you know which line to modify. I don’t have any system for donation, but you can give me a tip by buying me a digital album on bandcamp if you want ;)
@@YMNKmusic What I'm worried about is if I play in tempo, the sequencer will shift everything by one beat, correct? (That's why you play a little ahead of beat) Regarding the album, sure! Do you mean buy you (someone else's) album or buy your album? 😀
I recommend you to build it first and then try it yourself (it still possible to update the code once builded). Yes everything is shifted by one step so you have to play a little ahead. This way, what you hear is always in sync. This is something that works great for my personal usage but I can understand if someone wants a different approach! What could be done is a “normal” quantization process : when you play you hear exactly what you play at the right moment and then when you play it back it is quantized to the nearest step. Btw, next year I will work on a second version of the sequencer with a lot more features and customizations. About the bandcamp stuff : yes, I was talking about my albums haha
@@YMNKmusic I'll try! Regarding the new version, that sounds great! 😁
@@YMNKmusic I forgot to add, I am not new to Arduino, I've done my fair share of soldering and programming, even made my own (very primitive) arpeggiator, but my goal is to play live, and that would require playing a phrase in tempo, which would then loop (like a guitar pedal looper), since I want to play more conventional synthpop that has a fixed structure. There are Midi loopers on the market, but they are too expensive for my very small budget. 😅
C'est si bien !!!!
Saw your post in the Synth DIY group, this is incredible, exactly the kind of thing I want to build! Thanks for all the information 😃
Can I ask - I assume you're sending MIDI to your three synths on different channels, is that hard coded on the Arduino to have each of the 4 sequences playing on a different channel?
Hi. Thanks! Yes the channels are hardcoded. Channel 1, 2, 3, 4. But you can change that in the code if you want too (I might update the code with a nice way for doing it if you really need too.)
@@YMNKmusic Thanks! I'll have a poke around in the code and maybe send you a pull request ;) Although it's been a long time since I've written any C++!!
@@mattholland0202 haha. Ideally I should put all of the hardcoded values available trough the #defines on top of the code. Let's keep in touch about that.
Hyper cool :)
I didn't understand a word. You make very interesting and useful devices. The sequencer is super.
It would be nice once all the sequences are recorded and no more editing etc, if one could toggle a switch and have the ability to transpose the recorded sequence with connected midi keyboard.
Ah, I think you already have this implemented. 3:32
@@redlantern91754 Haha, yes, indeed :D So, we had the same idea !
Coooooool!!
Hey brø !
Je suis dans le même délire en ce moment. J'ai vu que d'autres avaient réalisés des loopers et autres engins des démons...
Contact-me if yøu wanna more about it.
Super travail !! 🤟🃏🤯
top!!!
Ca sent le francais ici 😂
🥖