MegaCommand // MiniCommand Resurrection // MCLive

Works well so far, had only a few quick sessions. Wait to see Chromatic Mode :wink:

Thanks for your daily updates, great work.

1 Like

Hey Mon,

Chromatic mode (PTC) is Encoder Button 4.

For example: Load a GND-SN machine on track 2. select track 2 on the MD then press encoder button 4.
You can now play the GND-SN chromatically across the Machinedrum triggers. Scale selection is encoder 4.

Top left button switches to record mode. If the sequencer is running, you can record a melody. Top right button to clear the sequence.

Edit: Also, what version Machinedrum are you using?

Cheers,

  • Justin
3 Likes

Had a little time to work on my Machinedrum and Megacommand. Chromatic mode works, step probability too. Sometimes I hear little glitches in the sound, especially when I have more then one step in a line with different probabilities. But it’s like a different up to date machine.

A few notes:

After a restart the Megacommand Turbo Midi is back at 1x, seems it is not saved in the project.

For my opinion the encoder resolution is a little bit high / scrolling is to fast.

My 9V DC Jack doesn’t seem to work, have to see why next days.

Now I got to get a case. Hope to get my brothers 3D printer back to work.

I am working on Machinedrum SPS 1 MK2 UW+, OS 1.63.

Let me know if I can help you.

1 Like

Not quite sure what you mean here. Can you elaborate?

My guess is that the microtiming is causing the usual clicking/popping sound that the MD makes when two sounds on the same track run into each other before the first has fully decayed. But maybe you are experiencing something different?

Yes, this is on my to-do list. I will make all settings persistent after power on/off. Also will allow you to set Turbo MIDI speeds on both ports.

Yes I agree. Currently they’re too sensitive in some pages. I was actually looking at implementing a 1/2 resolution mode for the encoders a few days ago. I will put this on the to-do list.

Tested my 1.0.1a board again today, and the power jack works but I don’t currently have the switch connected (only a short between pins 2 and 3). Try reversing the polarity of your adaptor?

1 Like

Here’s mine below.

A few points:

You need to remove the excess material from the top of the MIDI ports to make it fit. It’s quite a tight fit and the encoder shafts only have 1 or 2 rotations of the nuts to hold them in place (no room for washers).

Also, I can’t tell how you’ve soldere’d your display, you will need to solder it directly and adjust the height so that the case fits. (Height details are in the build instructions)

The powerswitch is a bit of a problem. The height needs to be raised, so you’ll have to resolder yours, and attach legs to the pins to make it taller. Also the cut-out for the switch didn’t print on the printer we used, so you’ll probably need to cut it by hand.

The lid has no mechanism of attaching to the body of the case, I’m using a bit of blu-tack which holds it, but for a professional finish we need to experiment with tapping holes for screws, or using magnets. I have a tap-set at home and should try this soon.

2 Likes

I’ve updated the MCL Manual to cover the External Sequencer functionality:

MCL Manual

External Sequencer
Ext Sequencer: Loading and Saving
MD StepEdit
PolyStep Edit
MD Realtime Record - RTRK
Parameter Locks
Parameter Lock Record - RLCK
Parameter LockEdit Pages A|B
Chromatic Mode - PTC|RPTC

3 Likes

Every day a update on this project, really appreciate your work.

Had a little breakfast-troubleshooting-coffee and messuring session. Got my DC-Jack working.

DON´T USE OLD UNTESTET PARTS FROM “FRIENDS”, special thanks to Matze for the used Arduino :wink:

The powercircuit on the Mega2560-Board is broken. No further research on that. Changed the Board to a new one, works.

This was my first thougt, pulled the Decay (BD2) fully down, no change. It sounds different (louder/harder) than the usually “run into each other” of sounds on the MD. Have to do further testing on that tonight.

2 Likes

Ive skimmed over this thread… Can this firmware be used with an original Ruin & Wesen Minicommand?
Ill have no need for the extra midi port as I don’t have an A4.

Thanks

You can use the 2.0 release binary with the MiniCommand over at http://www.justinvaler.com/mcl. Unfortunately the the ExternalSequencer functionality is not supported in the MiniCommand version due to program space limitations.

1 Like

The only other thing I can think of is that you might be layering sounds with the onboard MD sequencer? There’s a bug/feature in the MD OS that causes tracks triggered by MIDI to be played back phase inverted.

If you cant work out what’s going on send me an audio recording.

Hi again, Just downloaded the Patch Manager file from your site to upload the firmware and it is says the file is damaged (?)

Is there any other way I could upload the firmware to my Minicommand ?

Ooh - forgot to mention… OSX

Looks like OSX Sierra’s system policy security prevents the package from opening and says it damaged.

The fix below works

https://discussions.apple.com/thread/7682929?start=0&tstart=0

2 Likes

Halved the encoder speed in most GUI pages.
MidiCTRL now supports variable encoder resolution/sensitivity.

You’ll need to check in latest commits in both MIDICtrl and MCL for the above ^.

2 Likes

From the looks of the manual, this is going to really open up the MD experience. Break free the chains of the tyrannical 4/4 paradigm.

@glitched

Oh yes, it does.

It is so easy to have more movement in just 16 steps than in a long pattern chain.
I really enjoying to have fun with the Megacommand.

@JustinValer
Nice work on the encoder speed. Had a first look on your code, i would like to find the parameter that change the speed, can you give me a little help? Is it somewhere in here?

int GridEncoder::update(encoder_t *enc) {

  int inc = enc->normal + (pressmode ? 0 : (scroll_fastmode ? 4 * enc->button : enc->button));
  //int inc = 4 + (pressmode ? 0 : (fastmode ? 5 * enc->button : enc->button));

    rot_counter +=  enc->normal;
    if (rot_counter > rot_res) { 
      cur = limit_value(cur, inc, min, max);
      rot_counter = 0;
    }   
    else if (rot_counter < 0)  {
      cur = limit_value(cur, inc, min, max);
      rot_counter = rot_res;
    }   

Oh, and last update on my Megacommand:

REDEYE

Sad that the display pcb is green :frowning:

And a advice for all builders:
On the DC-Jack, center=negative, outer ring=povitive voltage.

2 Likes

#define ENCODER_RES_GRID 2 (Grid page, only the first 2 encoders)
#define ENCODER_RES_SEQ 2 (Sequencer pages)
#define ENCODER_RES_SYS 2 (System Menu)
#define ENCODER_RES_PAT 2 (Save/Write pages)

I added some constants above to set the Encoder resolution on certain pages.
You can experiment with different values if you like.

Regarding the implementation.

From MIDICtrl GUI/Encoders.hh

/** Counter for encoder pulses **/
int8_t rot_counter = 0;
/** Number of encoder pulses before increasing/decreasing encoder cur value **/
uint8_t rot_res = 1;
1 Like

Where did you get your red/white display from?

MCL Update:

Some big-ish changes under the hood to accomodate dynamic peering.

You can now disconnect or reconnect attached devices without needing to reset the MegaCommand.

1 Like

The display is from a chinese eBay seller.

While compiling the new update i get a error message:

no ‘void GridEncoderPage::loop()’ member function declared in class ‘GridEncoderPage’