N.B. This page was last changed in July 2009. It has now
been archived. Moritz v2 has no Patch Editor.
I'd like to thank both
Leslie Sanford
and Jeff Glatt here for providing a couple of indispensable (and free!) MIDI resources:
This page contains documentation for Moritz’ MIDI input and output device
nodes, and for the other basic MIDI Streaming nodes:
Moritz’ MIDI Input Device node:
Moritz’ MIDI Output Device nodes:
Other basic MIDI streaming nodes:
Documentation of Moritz’s other streaming nodes can be found in
Ornaments and
Assistant Performer.
My computer currently contains a sound card which is attached to a physical
E-MU XBoard49 MIDI keyboard. The keyboard
has a USB MIDI OUT port, a USB MIDI IN port and a standard MIDI OUT port. If the
keyboard is set to MIDI-Thru, messages arriving at the USB MIDI IN port are sent
out again on the standard MIDI OUT port. For maximum flexibility when working with
Moritz, I have therefore set the keyboard to MIDI-Thru, attached its standard MIDI
OUT port to the computer’s sound card and written the device nodes below.
This allows Moritz to receive MIDI messages from the keyboard (the
E-MU Xboard49
IN device), process them and send the result to the standard Windows synthesizer
(the
Microsoft GS Wavetable Synth OUT device) and/or to the sound card (via
the
E-MU Xboard49 OUT device) and Cubase.
Notes (August 2009):
Converting MIDI files to mp3 format: Moritz creates MIDI files, which I currently
convert to MP3s for this site using Cubase, a Cubase MP3 export plugin and the free
E-MU ProteusVX virtual instrument. Many of the original Moritz patch examples use
the “Microsoft GS Wavetable Synth” (which is part of Windows), so, while
the MP3 examples dont sound exactly as they did when I recorded them, they
are a good approximation of what I originally heard.
All Moritz’s MIDI streaming nodes can currently be created from the main menu
at :
There are two special
pin types used in streaming:
MidiStream pin: This listens for (or sends) not
only standard MIDI messages, but also Moritz-specific
ChordMessages.
A
ChordMessage is a single temporal event in a particular
channel. It contains a collection of conceptually synchronous MIDI Note Messages.
A ChordOn message is a ChordMessage containing MIDI NoteOn messages but no
NoteOffs.
A ChordOff message is a ChordMessage containing MIDI NoteOff messages, but
no NoteOns.
The messages coming from a MidiStream pin are refered to as “MidiStream messages”
in the following documentation.
Synch pin: This is used to synchronize and control
the execution of nodes.
A Synch pin’s value is unimportant, only its state is relevant. Nodes only
begin streaming, when the Synch pin to which they are ultimately connected has a
Valid state.
Only one of each device node type (E-MU Xboard49 IN, E-MU Xboard49 OUT, Microsoft
GS Wavetable Synth OUT) is allowed per patch. When such a node exists in a patch,
its corresponding menu command is greyed out in the above context menu.

Input pin: Synch
Output pin: MidiStream
Back-panel menu location:
Shortcut: emui
Uses background thread: no
|
Menu:
|
This node represents an E-MU Xboard49 MIDI keyboard being used as an input device.
Only one E-MU Xboard49 IN node can be created per patch.
Moritz'
preferences can be set
so that an early warning will be given if the keyboard is not available (probably
switched off).
Input pin: The node has one Synch input pin, which should be connected to
the Synch output pin of a StopGo node. This enables multiple MIDI input devices
and files to be started and stopped synchronously.
Output pin: The node has one MidiStream output pin which transmits MIDI messages
as they arrive from the physical keyboard. Messages are not transmitted if the node's
Synch input pin is invalid (red). Wires can, of course, be used to connect the output
pin to more than one MidiStream input pin.
Examples: See the documentation for
Moritz’s
Ornaments or
Assistant Performer.

Input pin: MidiStream
Output pin: none
Back-panel menu location:
Shortcut: emuo
Uses background thread: no
|
Menu:
|
This node represents an E-MU Xboard49 MIDI keyboard being used as an output device.
Only one E-MU Xboard49 OUT node can be created per patch.
Moritz'
preferences can be set
so that a warning will be issued if the keyboard is not available (probably switched
off) when Moritz first tries to load a new or existing patch.
If the E-MU keyboard is set to MIDI Thru, it sends incoming MIDI messages out again
on a standard MIDI cable. This cable is currently plugged into the MIDI IN socket
on my on-board sound card (TS22 PCI MIDI). MIDI messages arriving at the sound card's
MIDI IN socket can be read by other software, such as Cubase.
So Moritz patches use this E-MU Xboard49 OUT node as their output device when sending
MIDI messages to Cubase. Unfortunately, it seems not to be possible for Moritz to
send messages directly to the sound card's MIDI IN input. Conceptually, the keyboard
device belongs to Moritz, and the sound card to Cubase.
: This node is initially created with
one MIDIStream input pin, but selecting this command will add a new MidiStream input
pin on the right. This enables several streams to be sent to the same output device.
: The command is enabled if
there is more than one input pin. It removes the one on the right, deleting any
attached wire.
: Selecting this command
brings up the following dialog. See the dialog for further explanations.
Microsoft GS Wavetable Synth OUT
|
|

Input pin: MidiStream
Output pin: none
Back-panel menu location:
Shortcut: mgwso
Uses background thread: no
|
Menu:
|
This node represents the standard “Microsoft GS Wavetable Synth” output
device (part of the Windows operating system). Only one such node can be created
per patch.
If, for some reason, this device is not available when Moritz first tries to open
a new or existing patch, Moritz quits after advising the user to restart the computer.
: This node is initially created with
one MIDIStream input pin, but selecting this command will add a new MidiStream input
pin on the right. This enables several streams to be sent to the same output device.
: The command is enabled if
there is more than one input pin. It removes the one on the right, deleting any
attached wire.
: Selecting
this command brings up a dialog similar to the
E-MU Xboard49 OUT Properties dialog. Currently the only option
available there is to set a file name so that the output will be saved in a MIDI
file. See the dialog for further explanations.
Examples: See the documentation for
Moritz’s
Ornaments or
Assistant Performer.

Input pin: Synch
Output pin: MidiSequence
Back-panel menu location:
Shortcut: mfseq
Uses background thread: no
|
Menu:
|
This node represents a MIDI file. Its output pin’s value is the complete,
non-streamed, MIDI information in the file. This node’s file name is displayed
on the node. The value of its output pin is loaded when its input pin becomes Valid.

Input pin: Synch
Output pin: MidiStream
Back-panel menu location:
Shortcut: mftos
Uses background thread: no
|
Menu:
|
This node converts a MIDI file to a MidiStream. The slider shows/sets the current
position in the file. The pause button can be toggled to start/stop streaming. The
text box displays/sets the current position as a percentage.

Input pin: MidiSequence
Output pin: none
Back-panel menu location:
Shortcut: mseqf
Uses background thread: no
|
Menu:
|
This node represents a MIDI file. Its input pin’s value is the complete, non-streamed,
MIDI information which is stored in the file.

Input pin: MidiStream
Output pin: MidiStream
Back-panel menu location:
Shortcut: mt
Uses background thread: no
|
Menu:
|
This node simply passes messages recieved at its input pin to nodes connected to
its output pin.

Input pin: none
Output pin: Synch
Back-panel menu location:
Shortcut: sg
Uses background thread: no
|
Menu:
|
This node simply contains a breakpoint and one output (Synch) pin.
Setting the breakpoint invalidates the output pin (and all its connected pins),
thus preventing any of the connected nodes from streaming. Releasing the breakpoint
validates the output pin, causing all connected nodes to start streaming. This node
is intended to be connected to MIDI IN nodes. Note that a single StopGo node can
be connected to several MIDI IN nodes.
Examples: See the documentation for
Moritz’s
Ornaments or
Assistant Performer.
Streaming (and file recording) starts when the StopGo node is toggled to green.
Streaming and (and file recording) stops when this node is toggled back to red.
If Moritz throws an exception in a streaming node for some reason, then its StopGo
node is toggled to red, thus stopping all connected streams.