I built a Songmode for the "Toys" :-P

Hey!

Hot Topic! Instead of getting frustrated, that I would like my Digi* and Model:* Devices to have a Songmode, I tried to build one myself.
It is based on Adafruis NeoTrellis M4, thats a Microcontroller with 32 RGB LED illuminated Buttons. I bought it for my own Euclidean Sequencer, thats basic version is also already running, but needs some Ideas to come around the UX-Restrictions due to nothing more than those 32 Lights.

I built a kind of 1-Track, 24 Step-Sequencer, that can hold a Pattern-Number and a Length per Step. All it does is sending a constant MIDI Clock over USB-Midi and triggering a Program-Change 1/16th before the pattern ends.
Currently I can setup the Pattern number (1-24 … That is A01 to B08) and a Length as a 1/4 note factor.
This is my prototype and its running fine, but I have still some open points:

  1. The Microcontroller has a local storage. I need to find a way to access it, so I can store projects on it. As I have the first row as basic buttons, that leaves 24 projects on the device.
  2. I already have an idea, on how to be more flexible in Sequencerlength, Number of patterns as well as be more flexible with the length of the patterns. Currently I just use 3 Rows of buttons to directly access the steps and patterns. I could use one row for Pages for Sequences, that would make a Song 128 Patterns log and be able to access all 128 Patterns by choosing the same pattern format, that Digi-Devices use.
  3. Make the MIDI-Clock timing more accurate by completely understanding the hardware timer works, currently my 120bpm are 119.4bpm.
  4. Make a way to change the bpm.
  5. Make the device able to read MIDI, so I could not just program the song, but also record it.
  6. Maybe add features like change bpm on pattern basis to add another layer of complexity to songs :stuck_out_tongue:

Here is a little video, presenting it in action. Sorry for my bad english tho.

25 Likes

I don’t need song mode personally but I love the fact that you did it :+1:

Shows great initiative and promise.

Edit: Maybe Zoia owners could build something similar?

3 Likes

Now have 128 slots for patterns, and can use up to 128 patterns (that’s all that Digitakt and Digitone have to offer).
Currently working on a save function. Will have 128 slots for projects.

2 Likes

Awesome. Big up for the DIY spirit!

1 Like

Any plans to produce a run of these? Depending on price this sounds pretty awesome. It’s one of my biggest PITA as I like to try out different combinations of patterns and have to send program change from the daw and send it a step early and all. Fantastic that you came up with this and put it together!

Oof… timer configurations. I delved into those to set custom high frequency PWM rates on ATmega arduino s. Got it working by trial and error but can t say I m anywhere near completely understanding those!

I won’t produce them. Selling and supporting hardware is a big pita. Especially with such a limited UI, as all I have are the buttons…

If I am fine with the results (storage implementation sucks big time), I will release the code on github.

As the device itself comes for 50-60$ and needs no soldering, everyone can buy and build one.

Adafruits comes with a special way of uploading firmware to their boards. Have not looked into it yet, but It seems, that the board shows up as usbstick on your computer and you just copy the Programm there. If I get that running, everybody who is able to build a Lego DUPLO set will be able to use that device with my software.

There are some limitations in it, that might make it not that useful for everyone:

  • no screen just colored buttons without labels means you need to know the device. I try my best to make everything logical and color every screen differently so you find around, but it’s what it is: 32 Buttons :slight_smile:
  • usb only. You need to be able to route usbmidi to your devices (I use my deluge for it)
  • I have no idea currently, how to make the patternlength more flexible without creating a mess. Currently a pattern can be up to 24/4 long. So no 7/8 or 9/8 yet. I don’t need those measures. So it’s not high on the list :slight_smile:
  • at the end it just sends Programm changes to the devices. It cannot react on the controlled devices. Electron boxes handle midi Programm changes like those on the device. They are executed when the pattern is done. If you mess up the correct lengths on the pattern-sequencer, this will cause in debugging sessions, where the configuration is off.
    If you are using a daw for it currently, you will know that issue :slight_smile :slight_smile:

There is lots to do, before I am happy with it. Currently removing or inserting a step is not possible, you have to change all the following steps for it. Inserting and deleting will be possible tho.

6 Likes

Yeah I understand your reasoning for not wanting to support hardware. Props though, seriously! I can build a Duplo set (just checked) so I’m set. Bookmarked the thread so looking forward to following your progress.

I built a small little documentation, mainly for myself, because I tend to forget stuff way to fast, and I know, that I need to find into it again after not using it for a little while.
Maybe it is of interest for anyone.

http://dl.kirchheimer.de/public/documentation.html

2 Likes

I have now everything implemented into the box, that I wrote down.
I uploaded the code (first versions are always ugly :frowning: ) to my github.

I also got sorted out, how to create the install-file, that you can just copy onto the device without the need to install arduino, all the libraries etc.

There is a short “How to use” instruction on the Github too. Should be easy to get running for everyone now.

4 Likes

Forgot the link

3 Likes

:sunglasses:

@Uija Fantastic work and nice of you to share and document it, those Trellis boards popped up on my radar a few months ago, looks like a cool little platform.

Amazing how did I miss this- does it still work?

My device broke, so I cannot test, but I don’t know why itches code should not work anymore