Morpheo - Documentation v1.0
Table of Contents
Figure 1: Main editor window of Morpheo
1 Intro
1.1 What is Morpheo
Morpheo is a PD-Extended patch. A control surface for DIY open source digital synthesizer called Goom by Dr Mark St John OWEN. You can build your own either with the information provided by John Owen or you can avoid soldering completely, take the STM32F4DISCOVERY board and flash it with a ported version of Goom. Morpheo author used and tested the STM32F4DISCOVERY version only but assumes the original LPC1343 should work the same as they both listen to a defined set of MIDI CC's. Original Goom synthesizer gives you a 16 notes of polyphony and 16 voice multi-timbrality, simple yet cool 2 oscillator subtractive synthesis with FM, VCA + VCF envelopes, basic velocity sensivity, pitch bend and some more minor features. Check the Goom web page for full feature list. Morpheo PD patch adds some extra features like patch management (16 banks x 16 patches), live patch morphing etc.
1.2 Assumptions
This guide assumes you have basic knowledge of subtractive synthesis. You should also be able to install PD-Extended onto your computer, load the PD patch and route your MIDI controller/sequencer to Morpheo.
2 Pre-requisites
2.1 PD-Extended
You need to have PD-Extended installed on your computer. Check the PD web site for more details. Obviously you need the Morpheo PD patch and a ccgen Some source of MIDI data, i.e. MIDI keyboard or sequencer to feed the Morpheo and Goom synth.
2.2 Goom synth
One form or another of the Goom synthesizer. This document covers STM32F4DISCOVERY option. To get the Goom synth to STM32F4DISCOVERY board you need to:
2.2.1 Flashing the synth to STM32F4DISCOVERY board
Go to ucapps.de and follow the instructions on installation of MIOS32 Bootloader. You have to do these steps:
- on Win machine (or in a VirtualBox) install the driver first
- install the ST-Link utility
- flash the project.hex with MIOS32 bootloader
- download and install MIOS Studio
- flash your board with project.hex of the Goom synthesizer from the MidiBox SVN repository
All is described in detail on the ucapps.de link above, except the last step - flashing the Goom file.
3 Connections
3.1 Power
Assuming you've succesfully flashed the MIOS bootloader and have the Goom port running on your STM32F4DISCOVERY board, you can make the microUSB connector to deliver not only MIDI data but also power for the board. You just need to connect the +5V and AD9 pins on the board.
3.2 Audio
Connect the DISCOVERY board either to your headphones, input of your soundcard, mixer or whatever you normally use for stereo sources.
3.3 MIDI
To succesfully make use of the Morpheo you have to make these connections:
- Your MIDI controller (or sequencer) >> Goom synth (DISCOVERY board will appear as MIOS32 on your computer); No MIDI Note On/Off messages are going through Morpheo PD patch so you need to feed the synth directly with note events from your MIDI controller/sequencer.
- Your MIDI controller (or sequencer) >> Pure Data (Morpheo); MIDI CC #1 (ModWheel) is used to control the MORPH fader
- Pure Data >> Goom synth; Control data needs to be fed into Goom synth as well.
Recommended tools for such routing are various patching systems on all platforms. On Windows you have MIDI-OX, on Linux you can use qJackCtl and it's connection management. Other nice tools are Patchage, Catia, Claudia or CLI aconnect. AFAIK Apple Mac's do have MIDI routing as a part of the OS (I can be wrong as I have no experience with Mac's).
4 Controls/UI
4.1 In general
IMPORTANT!
User interface of Morpheo is optimized for 7" touchscreen with 800x480 resolution. It's specifically designed to run on Raspberry Pi 2 with touchscreen LCD. Size and layout of the individual elements is thus optimized for finger control. Also this document will refer to various interactions in terms of touch interactions. (taps vs. mouse-clicks etc.)
Individual functional areas are partly color-coded for better orientation over UI but not strictly. The same colors may appear in various contexts.
Width of the control panel is reduced so only the vertical scrolling is needed on smaller screens. (unless you dive into editing subpatches)
Some control elements (mostly faders) have a little number placed close to the element label. This number just displays the MIDI CC number mapped to that particular control element. Any numeric values are displayed as regular number atoms.
4.2 Channels, channel patches
At the very top area you can find the horizontal radio switch for 16 MIDI channels. By tapping on the numbers you will switch the MIDI channel being edited. Each MIDI channel has it's own independent patch that is saved automatically every time you switch to another channel. Tapping the MIDI channel also loads the respective MIDI channel patch. When you switch back to the previous MIDI selected channel it will load the state of the patch as it was when you switched to another channel. All 16 channel patches are saved within PD patch file.
IMPORTANT!
Patch editor can edit only one MIDI channel patch at a time.
You can't use advanced features of the editor on the background for non-selected MIDI channels. (i.e. morphing feature)
But you can for example record your controler data from Morpheo into your MIDI sequencer and replay them on the background while editing/recording another MIDI channel. Keep in mind that heavy CC traffic can choke the Goom synth! I.e. morphing all 24 synth parameters on several channels concurently is not advised. Thinning the recorded MIDI CC data within your MIDI sequencer might help.
4.3 Patch editor, edit buffer
Under the MIDI channel switch you can find the main 24 synth parameters. Check the scheme of the Goom architecture for better picture of the syntesis signal path.
Upper row of vertical faders covers two oscillators, lower row offers VCF and VCA controls (of course they are digital, not a true voltage controlled elements ;-)
These parameters are editing so called edit buffer. It's an array of values which is being interactively updated and sent out to the standard set of MIDI CC's implemented in the Goom synthesizer. Again, you can't edit two separate patches at a time.
4.4 Patch initialization
On the right side is a INIT button which resets the parameters to an audible starting point for patch editing.
4.5 MIDI Panic
Use the MIDI Panic button in case of stuck notes or other undesirable situations caused i.e. by MIDI CC overload. It can happen that you get your Goom board into the state which requires hard-reset, especially if you use the CC generator with fast tempo.
4.6 Patch banks and slots
The patches can be stored in 16 banks, each with 16 patch slots, that's 256 patches in one PD file. If you need to store more patches, just save the whole PD patch into a new file. Morpheo comes with 64 pre-made sounds. In case you use them in your productions, I'd be delighted to hear the result ;-)
4.7 Loading patch
To load the patch you just need to:
- Select the bank (gray) slot 1-16 (optional if the new sound resides in currently active bank)
- Select the upper (green) patch slot 1-16
by tapping onto their radio switches respectively.
4.8 Storing patch
After your tweaked your patch and you want to save it, you need to:
- Select the target bank 1-16 (optional if the target slot is in the currently active bank)
- Select the lower (red) patch slot 1-16
by tapping onto their radio switches respectively.
IMPORTANT!
There is no 'save' dialog. Tapping onto the red (save) slots will write the current edit buffer into respective patch slot, overwriting any existing data!
IMPORTANT!
To store all your sounds you also have to save the PD patch either by File>Save menu option or pressing Ctrl+S!
It's highly recommended that every patch store procedure is followed by Ctrl+S key stroke combo.
If you want to copy some patch onto another position, just load it first and then store it to it's new slot.
4.9 Morphing patches
One of the additional features of Morpheo is … well, morphing from one patch to another :) It was originally concieved as a patch generation tool but it showed up as valid performance feature too.
On the left side is larger vertical fader which is connected to the patch load slots. It has some extra switches connected to it. The top MORPH switch activates the morphing. Smaller switches on the right side of the morph fader enable/disable individual groups of synth parameters from morphing process so you have finer control over the sound aspects that are affected by the morph. Play around with them to find out what they do ;) RGB switches represent 'color' fader groups of the oscillator/filter, in other words parameters that affect color of the sound.
To morph from current patch to another:
- Activate the MORPH switch. Morph fader will be reset to zero automatically.
- Select the BANK (can be skipped if you want to use target patch from current bank)
- Select the PATCH by tapping on one of the LOAD PATCH slots.
- Move MORPH fader upwards or use Modulation Wheel to morph to your selected morph target patch.
At any time you can disable MORPH switch, enable it again and select another morph target patch. This way you can fluently morph between any two patches or from in-between state to any stored patch.
Don't forget that you can disable some parameter groups i.e. OSC combination mode to avoid the strong audible jumps if that's your intention.
Morph fader is by default mapped to Mod Wheel CC (#1).