Hi all,

For the past several years I have working with my good friends/fellow Ph.D. students David Kant and Mustafa Walker on a new company. We’re initially releasing modules in VCV rack format, but we have breadboard prototypes of everything we’ve worked on so euro is definitely a possibility. I am the resident synth nerd/eurorack “expert” (I also used to work at Keith McMillen Instruments, mostly prototyping new instruments), David is a specialist in machine learning (he’s also the leader of the Happy Valley Band), and Mustafa is a instrument builder and visual artist.

The Ars Memorium, at its core, is a voltage source with state memory and recall. It is capable of producing 16 arbitrary functions at once, and providing two-dimensional interpolation between saved states. All of its functions are mapped to X and Y coordinates—allowing for a wide range of audio applications including: patch preset design and interpolation, LFOs with user programable states, sequencers with an arbitrary number of steps, precise recall of complex feedback patches, dense Xenakis-esque glissando, quadrophonic panning and many other forms of linked, user-defined modulation.

Most modular patches have several “sweet spots” where the settings line up just right to produce the sound you are looking for. Historically the problem has been how to return to these spots once you have move onto another sound. The Ars Memorium solves this problem by saving the state of each of its control voltage outputs into a two-dimensional matrix. This allows the user to not only recall the most interesting settings for a patch, but to also position these settings in a meaningful spatial relationship to each other and morph between these to produce new, interstitial states.

Despite all the complexity it is capable of producing, the Ars Memorium is based on very simple principles: the user saves states in edit mode by organizing them in a two-dimensional space using the X and Y knobs and interpolates between them by the same process.

One analogy is a preset system in traditional synthesizer. Presets are an ordered list of settings about things like the frequency cutoff of a filter, the shape of the ADSR envelope, etc. When the user selects a new preset, they are instantaneously taken to the new sound. The Ars Memorium “morphs” between the two sounds. Many of the example patches for controlling traditional synthesizers over MIDI CV are a useful starting point for understanding why this is unique.

Another way of thinking about this is to compare it with automation in digital audio workstations (DAWs). In DAWs, automation tracks allow you to set the value of various plugins at various points in time. The Ars Memorium is, by comparison, extremely non-linear—allowing the user to move through the saved plot at whatever pace they choose.

If you look at the front panel, you will notice a 4 x 4 array of knobs in the top left. Each of these knobs related to a single output, the 4 x 4 array of jacks on the right contains outputs related to the corresponding knob, so that the top left knob controls the top left jack, etc. Each of the 16 control voltage sources can be programmed to a set “state” via the associated knob. The output range of the 16 control voltage outputs is 0-10 volts. The input range of the “x” and “y” control-voltage inputs is 0-10 volts.

The one complication is the switch in the bottom right corner. When flipped up the modules is in edit mode, when flipped down it is in recall mode. In edit mode, the indicator LEDs above the knobs are red, in recall mode these LEDs are blue.

Keeping track of whether you are in edit and recall mode is fundamental to understanding the module. With this in mind, let’s compare these modes directly. The primary purpose of edit mode is to program your patch and find interesting sounds. Where you would normally find a sound by setting the value of knobs on the module itself, when using the Ars Memorium, you use the CV inputs on whatever module you are using to control these values instead, with each value you want to control mapped to a knob on the Ars Memorium via a patch cable. Once you have found sounds you like, you click on the save button. When you have saved all of the sounds you like, you flip the switch into recall mode.

In recall mode the knobs can be used to make edits to the values at various states, or to create new states, but will not directly affect the output as they do in edit mode. In recall mode the value of each output is the result of interpolation between all the various states you have saved within your matrix. These values are displayed on the LED indicators above the knobs, as well as on-screen when knob plot is selected via the menu system. In addition to the labeling of the switch and the LED indicators, one way to determine whether you are in recall mode is to watch the screen when you are turning the knobs. In recall mode, you will see a display showing the current value of each of the knobs, in edit mode, this information would be redundant.

One final difference is that in recall mode, the interpolation knob and CV input become functional. This controls how close the pointer has to be to a saved state before it begins to interpolate. In some instances, it may be important to stay as close as possible to a saved state, in others you may want to interpolate between various points across the map all at once. All of this is possible with the interpolation knob. Turning it to the left decreases interpolation.

We have assembled a detailed manual, dozens of example patches (including MIDI CC mappings for a number of poly synths from Korg, Roland, ASM, Sequential, etc.) I am recording a detailed video walkthrough this week as well.

The other modules are a voltage controlled matrix mixer, a velocity module and an inversion/offset module (a bit different than normal inversion modules as it includes a 10 volt offset, so 3 volts becomes 7, 6 volts becomes 4, etc.).

I put together a teaser trailer, and will have more detailed walkthroughs in the next few weeks:

You can find out more about the modules here: https://magusinstrumentalis.com/

(Edit, I apologize if this thread was too focused on hype earlier. I have tried to include some more substantive information in this update.)

10 Likes

This is great! Will definitely check the vcv suite out. Hi from a fellow banana slug :slight_smile:

2 Likes

Hey folks, we released the modules today! I made a detailed walk-through, and Omri Cohen also has a really great video detailing the module suite.

1 Like

Hi all,

We’ve started a series exploring our utility modules, and alternate uses for them. This video shows how our modular Catoptromancer can be used as a half-wave or full-wave rectifier. The next video details how Catoptromancer can be used to create a primitive form of counterpoint. If anyone has suggestions for future videos please feel free to reach out:

1 Like

Oh, I missed your awesome Ars Memorium release; would love to see something like this “2D Frames” in Euro hardware.

I have been toying with the math to do the needed interpolation for a couple years. The method I was considering was creating a Delaunay triangulation of the points then treating those triangles as ramps in 3D space with CV output on the Z-axis. There remains the question of how to treat the edges… maybe a single “edge level” CV offset would be appropriate?

The other concept was truncating those triangles to create plateaus of variable size around the points. I think that could be a good method to ensure that your “sweet spots” are actually navigable. It would probably be equivalent to the X&Y navigation having some “magnetic attraction” to those points.

I like your Weighted Distance implementation though! The ability to have 1-knob control for influence of distant points looks nice.

Believe it or not, we actually have a semi-working version of this on a protoboard. We switched development to VCV, but do have a sort of hello world version of it working on an ARM with two 8 output DACs that works. David (who is handling nearly all of the programming) has intentionally been coding it in such a way that we could easily port it back to ARM for an eventual hardware module. With that said, we need to raise a significant amount of money in software before we think about that.

We actually looked at Delanaunay triangulation, with Weighted Distance as a simple way of testing the idea. We liked it so much that we decided to keep it. We could potentially include multiple methods in a software update. I’m going to point my partner David to this post because he will probably have more to say than I will about this. One thing I will say, is that it is pretty easy to return to this sweet spots by turning interpolation all the way down and just getting close to those points.

Thanks for starting this conversation, I think it is really worth having. I have been really happy with the results of this relatively simple interpolation method, but it might be worth returning to these different methodologies now that we have a platform that works.

1 Like

With interpolation at minimum, does it act like you are traversing a Voronoi diagram of regions belonging to nearest saved points?

1 Like

That’s definitely a David question :wink: I’ll link him to this thread.

The comparison to a Voronoi diagram is spot on @desolationjones! Although one major difference here is we include an interpolation radius. Points outside of that radius are excluded from recall. For example, if you turn the interpolation radius down, you won’t trigger a new recall unless you come very close to a saved point — but then you’ll likely get an exact recall (no interpolation). With a Voronoi approach, you’d snap to the nearest saved state, regardless of how far away. Technically speaking, our interpolation is an inverse distance weighting approach, and a Voronoi would be something more like a nearest-neighbor approach. Thanks for asking! It might be nice to have the option to toggle between these different interpolation algorithms…

3 Likes

A-ha, this satisfies my curiosity on what happens at minimum interpolation radius.

It’s fascinating how many different approaches there are to such a “preset morph controller”. I think my attraction to a Delaunay / Voronoi method is mostly aesthetic, honestly. Your weighted average method sounds like it actually adds an extra dimension of control via interpolation radius.

It allows for some really interesting sounds when using a variety of modulation sources. You can have slow position changes in the matrix (and therefore the overall character of the sound), while having fairly fast modulation of the interpolation radius, which seems to blur and focus the distinctiveness of your sound, it can be pretty striking.

Today we released a video showing how you can use the Catoptromancer (aka VERT) module to create a simple form of counterpoint in your patches. Even though it’s obviously not going to help you write species counterpoint, I found that simple tricks like this as a really nice way to get generative harmonies in your duophonic patches.

In general, the polymaths tutorial videos will examine the utility modules since we have so much material on the Ars Memorium out there. With that said, I am also working on a tutorial for using the AM as a sequencer.

This week’s video tutorial explores one of the more obscure modules in the suite, Hekebolos aka VELO. In this particular patch we show how Hekebolos translates voltage into acceleration, with the specific example of simulating shifting gears and revving an engine.

Gotta go fast!