Magus questions

Hello! The Magus is very exciting to me*. But I have some questions:

  • What is the rough timeline for delivery on Maguses ordered now? The Pre-order page says “Pre-order… delivery due in September 2018” which sounds out of date.
  • How is the desktop magus powered? 9V DC? A normal American 9V DC power supply should work, right? Is it negative-center?
  • There’s no “operating system” as such, right? How are C++ programs loaded? Is it possible to run multiple “programs” at once (ie assign different chunks of code to different blocks of 4 CV plugs?
  • How does the CV Host interface work (given I hear it’s just running off an embedded ARM and not a conventional OS)? I assume the Magus comes with hardware support for things like MIDI and computer keyboards? Is it possible in principle for an end user to add new “drivers” for unsupported hardware devices?

Thanks!

* I hope to get something like a Magus, a Norns or a bela.io and I am leaning toward the Magus because the Bela doesn’t have a standard case and the Norns doesn’t have CV. I have been doing some experiments with interfacing a Arduino on a breadboard with modular but that is limited.

Hi MCC! Welcome.

I’m not a member of RT but I’ve been developing on a Wizard since I got it and I can provisionally help with a few of your questions.

It’s USB-powered so you can use either a computer or a standalone USB power supply (pedalboard supplies and modular gear increasingly offer these). Some people have experienced ground loops under certain conditions with the other devices in the line (FWIW, I haven’t) but USB isolators seem to fix that.

C++ programs are compiled on RT’s web site (in a pretty simple process) and uploaded as Sysex (which the website does automatically using browser MIDI extensions). You subclass a class called Patch and do your DSP inside a method called processAudio. To give you a taste, here’s a Patch which will make an incoming stereo signal mono:

#include "Patch.h"
class MonoMakerPatch : public Patch {
public:
  void processAudio(AudioBuffer &buffer) {
    // Load the left and right audio buffers.
    FloatArray l_buf = buffer.getSamples(LEFT_CHANNEL);
    FloatArray r_buf = buffer.getSamples(RIGHT_CHANNEL);

   // Copy the right buffer into the left channel.
    l_buf.copyFrom(r_buf);
  }
};

There is a (very simple) “os” which basically does nothing but track inputs and keep data flowing through the device. (I’m working on a writeup of this but it won’t be out for a while). Interactivity on the Wizard can happen either at a low level (tracking button presses, etc.) or at a higher level (with registered parameters). The Magus system is different (because it goes through the LCD screen, which the other units don’t have) but I suspect that it will support both lower-level and higher-level access. I haven’t done much with MIDI but I think it’s all baked in.

You can only run one Patch at once (for now, and I don’t expect that will change) but that patch can handle different tasks at once. For example, on the Wizard I can be reading two parameters which output an oscillator via audio and reading two other parameters which output a LFO via CV. The unit sees it as one program but it has two unrelated functions. You could block out CV portions of the Magus accordingly.

With low-level access, you should be able to support a fair number of alternative MIDI input devices without recompiling the firmware. I don’t think there’s any way to hook up a computer keyboard, at least not without MAJOR firmware development.

On timeline, I have no idea, but all pre-ordered Alchemists and Wizards have already shipped so it should be next up. If you want something right away, consider getting a Wizard to start playing around. The CV range is only 0…3.3V (Magus supports full Eurorack ranges) but with the right modules (or an outboard buffered mult and unity gain mixer) you can stretch that into the range you want.

I can only speak for the Wizard, but it’s a fantastic unit with incredible possibilities. I think the Magus will be even more so.

ETA: @mars et al., please feel free correct/amend the above with official, definitive answers! Just wanted to get back to @mcc

1 Like

Thanks much @gc3!

I don’t think there’s any way to hook up a computer keyboard, at least not without MAJOR firmware development.

So, to be clear, I have a background in professional firmware development :slight_smile: I haven’t worked with this specific chip but I’m mostly trying to understand, if I have the ability and will to do firmware deep dives, if there’s some path for people who want to void their warranty and set their hair on fire. The Magus sounds like a super incredible device even if its USB host/client is limited to MIDI devices, but it would be awesome if I could mod it to talk to a keyboard, or to a USB key drive for storing samples, or to this Arduino board with USB pins I’ve got.

1 Like

Hi there!

We encourage deep diving, and setting your hair on fire is optional (but send us photos if you do :slight_smile: ).
Initially the firmware supports MIDI USB, but there are plenty of examples out there for HID / keyboard and MSC / key drives. The chipset is STM32F4x, and we use the STM32CubeMX tool and HAL which makes it easier to add and configure peripherals. I’d like to implement USB Audio support too one day, but my todo-list is already pretty long!

The source code, including Cube configuration files for each device, is up on GitHub.

Of course for patch development you don’t need to even look at the firmware, there’s a C++ API and plenty of tutorials for Pure data, Max et c.

The patches are cross-compiled independently of the firmware, either using our online compiler or using OwlProgram, and dynamically loaded on the device. They get packaged up and sent across as a MIDI SysEx file.