MIDI effect plugins for Audio Units and
CoreMIDI (iOS and macOS)
20% discount for all plugins - now available via bundle -
downloads
Overview
mfx Series is a set of compact and powerful MIDI plugins.
They can each be used
as an Apple Audio Unit (AU) MIDI effect or as a standalone app connected
via CoreMIDI virtual ports.
An iOS device (minimum iOS 11) and a suitable AU host app such as AUM, apeMatrix, Cubasis or Sequencism
is required to use the AU variants. On Mac, the minimum macOS
version is 10.13 (High Sierra) and Logic Prox X 10.4.2. To use with CoreMIDI, a routing app like
MidiFire is recommended and an iOS device with at least iOS 9 or a Mac
running 10.10 (Yosemite) is required.
mfx Series consists of 6 separate plugins:
mfxConvert - Intelligent Event Converter
mfxMonitor - MIDI Event Monitor
mfxPan - Performance Responsive Auto Panner
mfxPitch - Pitch Shifter and Delay
mfxStrip - MIDI Channel Strip
mfxWobble - Performance Responsive Auto Pitch Bender
mfxConvert - Intelligent Event Converter
mfxMonitor - Event Monitor
mfxPan - Performance Responsive Auto Panner
mfxPitch - Pitch Shifter and Delay
mfxStrip - Channel Strip
mfxWobble - Performance Responsive Auto Pitch Bender
Download
mfx Series is available via Apple's iOS and Mac App Stores.
Just click on the download button below to be taken there right now.
mfxConvert
Intelligent Event Converter - convert just about any event to any other
(multiple conversions are supported)
mfxConvert is split into two sections. On the left is the 'FROM' panel
which represents the event details of an incoming MIDI message. On the right
side is the 'TO' panel which shows the current conversions of the event
shown in the 'FROM' panel.
To create a new conversion, use the menus in the 'FROM' section to
specify the event and then use the 'TO' section to change what that incoming
message is converted to. If both FROM and TO events are the same, then this
is a neutral conversion (default) and no conversion takes place.
The FROM Controls:
learn (button)
Pressing this button switches into learn mode. Incoming MIDI events are
then used to switch directly to the matching 'FROM' event (with the TO event
also changing to the current conversion). Press again to leave learn mode.
type (menu)
- this selects the type of event that is to be converted from.
channel (menu)
- the MIDI channel of the incoming event is set here. For events that are not
channel messages (system realtime) this menu is disabled.
note/number/data byte (menu)
- for note and aftertouch events, this is the note name of the event. For other
events, this is the value number. For channel pressure and system realtime
messages, this menu is not applicable and is disabled. For pitch bend, the
menu controls which data byte is to be used in conversions (lsb or msb).
hex: (label)
- this shows the currently selected event in hex form. An 'XX' signifies a
variable value.
The TO Controls:
conversions (menu)
- this menu shows the current conversions configured. Each is listed in hex
format (handy for Stream Byter) and if you select a conversion from this
menu, the FROM and TO sections will quickly, switch to that conversion.
type, channel, note/number and hex (menus)
- these are the same as per the FROM section.
reset (button)
Pressing this removes the currently selected conversion.
Most conversions are straightforward, like when converting to a different
channel or number, but when converting from
one type to another, mfxConvert applies some 'intelligence' when doing this.
These rules are as follows:
note to aftertouch:
Aftertouch value will be the note on velocity. Note offs are blocked.
note to controller:
Controller value will be the note on velocity. Note offs are treated as note
ons with zero velocity.
note to program change, song select, system realtime:
Note ons with a velocity > 1 will trigger the event. Note offs are
blocked.
note to channel pressure:
Value will be note velocity. Note offs are blocked.
note to pitchbend:
Pitch bend lsb/msb will be set to note velocity. Note offs are converted.
controller to note:
The controller value is copied to the note velocity.
If the controller value is > 0 then a note off is also sent to prevent stuck
notes.
controller to program change, system realtime:
Only controller messages that have an ON value (127) trigger the conversion.
Controller events with values < 127 are blocked.
controller to pitchbend:
Pitch bend lsb/msb will be set to controller value.
program change to note:
A program change will trigger a note with fixed velocity of 100 and a note
off 300ms later. Useful for converting program changes to drum hits.
program change to controller:
Each program change will toggle the controller between value 0 and value
127.
system realtime to controller:
This will set the controller value to ON (127)
mfxMonitor
Event Monitor - simple scrolling MIDI event monitor that shows each
event, timestamp and hex codes.
Press the clear button to remove all events in the list.
mfxPan
Performance Responsive Auto Panner -
incoming events will generate
complementary pan controller messages (CC 10) on the same channel as the
incoming notes. Pans can be triggered by note (velocity), aftertouch or
controller events. Pans are triggered if the incoming trigger event is
within a specified range and the depth of the pan can be proportional to the
range set. There are different styles of pans and each can be given a
maximum depth, cycle time and pre delay.
The plugin is divided into two sections; TRIGGER, where the pan trigger
characteristics are set and PAN where the pan related parameters are set:
trigger (menu) - selects what type of event should trigger an auto
pan.
range from/to (menus) - a lower and upper range can be set so
that a pan will only happen if a trigger event is within the set range. The
default of 1 to 127 indicates that a pan will happen with any trigger
event (subject to the threshold value below).
threshold (slider) - the minimum trigger event value to start
a pan cycle.
pan limit (menu) - normally, the pan will cycle to the depth
specified (PAN section), but setting this to 'scaled' will scale the depth
of the pan to the trigger value. Setting to scaled means that the higher the
trigger value, the further the pan will move (and vice versa)
parallel pans (menu) - normally, mfxPan will only start a new
pan when the current pan cycle has finished. Setting this value to 'yes'
disables that restriction and multiple concurrent pan cycles are permitted. This
creates very interesting pan effects as when playing multiple notes
simultaneously, the pans will 'work against' each other and the pan will
push and pull in unexpected directions.
pan (menu) - selects the direction of the pan. A variety of
styles are available.
depth (slider) - this is the maximum depth of the pan. The higher
the number (max 64) the further right or left the pan will extend to.
cycle time (slider) - this is the length of time that the
complete pan will take from start to finish, in milliseconds. Low numbers
will create fast pans and higher numbers will create long sweeps.
pre delay (slider) - adding a pre delay in milliseconds will
delay the pan following a trigger.
mfxPitch
Pitch Shifter and Delay - add a second or third pitch shifted note to each incoming note event. Shift range is +/- 24 semitones. Additionally, each
separate pitch stream can have a discrete delay applied to it.
mfxPitch is split into two separate panels. Each one represents one of
the pitches, PITCH 1 and PITCH 2. Each section has almost the same controls:
clone/remap (menu) - configurable in PITCH 1 only. If set to 'clone',
then a new stream of notes is generated. If set to 'remap' then the incoming
note events are pitch shifted and delayed according to the settings. PITCH 2
is always a clone.
semitones (slider) - Use this to adjust the pitch offset
(transpose) to use for this pitch. If a transposed MIDI event would go out
of MIDI range, it is not transposed. If this is set to 0, then that pitch
stream is disabled.
volume (slider) This is the % of the original note volume that the pitched
note will be set to. If at 100% then there is no change in volume. If the
resultant volume of any note is out of MIDI range, then it is scaled back to
maximum (127).
delay (slider) This is a delay applied in milliseconds to the
relevant pitch stream.
mfxStrip
Channel Strip - the most commonly used MIDI manipulations in one
handy package. mfxStrip does channel filtering and remapping, note
transposition, note remapping and poly to mono conversion.
This plugin is divided into two sections; CHANNELS for adjusting channel
filtering and remapping. NOTES for working with note events:
allow incoming (menu) -
choose which MIDI channel is permitted to pass through. Events on other
channels are blocked. Selecting 'any' will allow all channels.
remap outgoing (menu) -
select a MIDI channel to remap all (permitted) MIDI events to be rewritten
to. A setting of 'no' means no channel rewriting takes place.
transpose (slider) -
permitted note events will be transposed up or down in semitone steps
if this is set to a value other than 0.
remap from/to (menus) -
use these menus to translate any number of notes to different notes. First,
select the note you wish to translate from using the left menu. The right
menu will automatically change to show the current remapping. To change the
remapping, simply select a different note using the right 'to' menu.
convert to mono (menu) -
setting this to 'yes' will convert polyphonic notes to mono.
mfxWobble
Performance Responsive Auto Pitch Bender -
incoming events will generate
complementary pitch bend messages on the same channel as the
incoming notes. Bends can be triggered by note (velocity) or
aftertouch events. Bends are triggered if the incoming trigger event is
above a specified threshold and the depth of the bend can be proportional to
the trigger event value. Each bend can be given a
maximum depth, cycle time and pre delay.
The plugin is divided into two sections; TRIGGER, where the bend trigger
characteristics are set and BEND where the bend related parameters are set:
trigger (menu) - selects what type of event should trigger an auto
bend.
threshold (slider) - the minimum trigger event value to start
a bend cycle.
threshold/bend mode (menu) - normally, the bend will extend to the
distance specified (BEND section), but setting this to 'scaled' will scale
the distance of the bend to the trigger value. Setting to scaled means that
the higher the trigger value, the further the bend will move (and vice versa)
parallel bends (menu) - normally, mfxWobble will only start a new
bend when the current bend cycle has finished. Setting this value to 'yes'
disables that restriction and multiple concurrent bend cycles are permitted.
This creates very interesting bend effects as when playing multiple notes
simultaneously, the bends will 'work against' each other and the bend will
push and pull in unexpected directions.
bend (menu) - selects whether the distance is specified in cent
or semitones.
distance (slider) - this is the maximum distance of the bend.
The higher the number (max +/- 24 semitones) the further up or down the
bend will extend to.
cycle time (slider) - this is the length of time that the
complete bend will take from start to finish, in milliseconds. Low numbers
will create fast wobbles and higher numbers will create long bends.
pre delay (slider) - adding a pre delay in milliseconds will
delay the bend following a trigger.
Common Features
The following applies to all of the mfx Series:
AUv3 parameters
All controls on each plugin (bar the Monitor clear button) are exposed
as AUV3 parameters. This means you can use a host's automation/remote
control features to change the controls dynamically from the host.
Slider values can be set using the slider, or you can touch the
value field and enter an exact value using the keyboard.
Memory footprint and CPU load
Each plugin has a very modest memory footprint and has been coded
efficiently in native C in order to process MIDI at very low latency
and high throughput.
Support Resources
Join us over at the Audeonic Soapbox
Forum to post questions (or see if your question has already been
answered?) or take part in the friendly discourse.