MegaCommand // MiniCommand Resurrection // MCLive

Yeah there’s a fair amount of sophisticated action in the new chain mode.

In order to interleave the machine parameters, we need to accurately calculate the transmission latency. and then execute the parameter transmission at exactly the right time. This is all subject to the Midi Tempo and Turbo speed.

We also optimise the number of parameters that are transmitted, if a track already has the correct parameter loaded or machine type then we need not transmit it again. For this reason, payload sizes vary, and transmission latency needs to be dynamically calculated. Also need to make sure we know exactly what state the MD is in, and we do this by monitoring CC changes and occasionally retrieving the current kit.

The actual ‘chaining’ of multiple tracks is tricky to implement. Because you want the user to be able to load tracks on the fly, but also have the ‘auto-chaining’ to run in the background undisrupted. So I had to devise a queue system.

Every time a track is loaded or chained, each track is compared against each other, and the next transition event is determined based on tracks that match the nearest transition step. A routine task keeps checking the current step position. if we’re close to the transition step, then we start preparing for the transmission. Once machine parameters are sent, the next transmission event is determined, data is cached appropriately.

The SD Card is fast, but not fast enough for the timing accuracy required. Track data is therefor loaded from the SD Card and cached in the second memory bank, and then syphoned in to main memory when needed.

In addition to the above mechanics you also need to make sure tracks play in time, are queued up correctly. Make sure that data transmissions don’t interfere with MDExploit or delay the GUI by a noticeable amount.

A fair amount of GUI code has also been implemented to work with the above.
And I still need to back port for the HD44780 display.

4 Likes

Chain mode is now stable :rocket: :rocket: :rocket:

Seemless transitions and auto chaining of tracks. Pretty much my original vision for the firmware now actualised.

Roadmap to 2.2 is basically just GUI work from hence forward.

8 Likes

The new GUI code has been back-ported for the HD44780 display.

2 Likes

Sorry, but is there a page listing the features of the Megacommand?

I`ve never used it, or the Minicommand, but am intruiged at a designated controller for my MD (and other Elektrons?) but this thread is just too long to read :stuck_out_tongue: I mean, something of a product page. This, ofcourse, if its still available for purchase.

Thanks!

2 Likes

MegaCommand is the hardware.

MegCommandLive is the firmware.

Notable firmware features:

Modern MD sequencer with micro timing conditional trigs, individual track lengths.
Chromatic Mode.
Single cycle waveform designer (3 oscillator multi waveform).
Live performance features.

Some of these features are covered in the now outdated manual:

3 Likes

Version 2.2 is almost ready.

Project spec has been finalised. I’m just tweaking and fixing obvious issues.
Aiming to release before the weekend.

4 Likes

Thanks for the info. To use the MD/minicommand in a larger setup, can I just use a midi merge to merge an external clock together with the minicommand into the MD?

Is it available as kit or finished product? Where do I buy? :slight_smile:

The MegaCommand has 2 IN and 2 OUT MIDI. You can choose which ports send/rec the clock, there’s also support to forward MIDI messages between ports and this all works at any Turbo Speed speed.

PM me for details on pre-assembled MegaCommand.

1 Like

MCL 2.20 released.

Version 2.20 features some significant enhancements.
I recommend that everyone upgrades.

Please read the changelog for details.
Old projects will not be compatible with 2.20.

4 Likes

Justin, thanks again for Your work. I think that the next step (excluding theoretically possible hotfixes) should be updating of documentation. I am not youtuber and can not post some video features walkthrough whatever, but what I possibly could do is - given some (albeit preliminary) draft, and, well, having some expectations w.r.t. docs (which I do have) - review it and/or help with editing. Still have no acquired “feel” for newest (as of last feature additions a week+ ago) firmware mainly due to lack of ‘music time’, so “almost newbie” perspective is guaranteed, which - for this kind of documentation - should be a plus.

1 Like

I absolutely agree.

The priority now is to work on documentation and videos.
Apart from hot fixes I wont be adding any additional features until the above is done.

Right now I am recuperating from the coding effort.

The last week I have been jamming with the firmware. 2.2 has surpassed my expectations.

Cheers,

  • Justin
3 Likes

I’ve gone ahead and re-written most of the MCL firmware documentation. I’m around 80% through. I’ve transcribed the google-doc to the LaTeX markup language, this takes care of formatting and document layout for the most part. There’s going to be around 30 chapters, which will make some nice bed time reading for you all.

If anyone has experience in LaTeX and wants to assist with a document review, by all means contact me.

3 Likes

MCL 2.21 released.

Bug fix release.

Fixes issues with chain mode, slot menu and parameter locks.


I’m releasing a first draft of the MCL 2.21 documentation.
You can view the documentation online below.

If sections are unclear, poorly explained or if there are obvious mistakes, send me a PM.
Will gladly hand out editing access if people want to contribute and improve the docs.

Thanks.

4 Likes

Thought I would put this out there for anyone with a MegaCommand with the OLED screen.

I had the original STL files here printed in ABS to see what needed changing to fit the newer OLED screen. With a scalpel and about 10 minutes of time, I was easily able to cut a notch at the top of the screen, and cut away about 1-2mm along the bottom of the screen. The only other area that needed editing was the power switch, which also needed to be made slightly larger.

As previously mentioned, the excess plastic protruding from the midi ports on the MegaCommand itself also need trimming off as its too tall to fit in the enclosure (I used a sharp pair of wire cutters like scissors).

I have, based on the above, edited the relevant STL file in FreeCad, and its almost there, though adding in an extra 2mm of material on each side of the screen is giving me grief. Anyone an expert in such matters?

4 Likes

If you open up megacommand_body_1_0_0d.FCStd in FreeCAD

You can see the case is made from the _590BB_BOX drawing plus a bunch of objects that have either been added or subtracted from it.

I’ve highlighted the rectangular prism that was used to create the LCD cut out. You can adjust it’s dimensions and position (placement) to vary the shape of the cut.

So in this instance the width, length and vertical position need to be changed.

Once that’s done all that would be needed is another small “cut out” for the top of the oled.

4 Likes

Thanks for the info Justin. Just involved digging to the bottom of the tree.

I have edited based on the above. All dimensions should account for the new screen now.
Available for D/L HERE

FYI, looked fine in CAD, but exporting an STL file and previewing it seems to make the front face hollow.
Will get a friend to check it on the weekend before printing but anyone can DL the updated and fix it (if required) in the meantime.

3 Likes

Amazing!

Previewing is okay on my mac, but I seem to remember a similar problem when I created the stls for printing. I cannot recall if this ended up being an actual issue.

1 Like

I’ve added a few patches to allow you to copy/paste slots from one location in the Grid to another. I’ve also added visual feedback to the “apply” parameter.

These changes are accessible in the Slot Menu.

3 Likes

Justin, please forgive me if the question is dumb, but still I’ll ask:

Did You thought about feasibility of digital LFO[s], now that interleaved tx’s and WAVDesigner are both in place?

I had some basic LFO stuff implemented before fixing the MIDI performance.

I was looking to see if CC changes would be smoother than the MD internal LFOs.
For example, the LFO resolution is low on the MD and modulation of VOL causes distortion.

I wondered if I could get better performance using CC, which ended up not being the case.

  • Justin
1 Like