<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc 3.11" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>CHANGELOG</title>
<style>
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: 1.5em;}
div.column{flex: auto;}
@media screen {
div.columns{gap: min(4vw, 1.5em);}
div.column{overflow-x: auto;}
}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
</style>
<style type="text/css">
:root {
color-scheme: light;
--text: #252b33;
--muted: #626c79;
--accent: #245ac2;
--line: #dfe4eb;
--surface: #f5f7fa;
}
* { box-sizing: border-box; }
html {
background: #fff;
color: var(--text);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
font-size: 16px;
line-height: 1.7;
text-rendering: optimizeLegibility;
-webkit-text-size-adjust: 100%;
}
body {
max-width: 960px;
margin: 0 auto;
padding: clamp(24px, 6vw, 80px) clamp(20px, 5vw, 56px);
overflow-wrap: break-word;
}
h1, h2, h3, h4, h5, h6 {
color: #17202c;
line-height: 1.25;
font-weight: 650;
scroll-margin-top: 24px;
}
h1 {
margin: 0 0 1.25rem;
font-size: clamp(2rem, 5vw, 3rem);
letter-spacing: -0.04em;
}
h2 {
margin: 3rem 0 1rem;
padding-bottom: 0.65rem;
border-bottom: 1px solid var(--line);
font-size: 1.5rem;
letter-spacing: -0.025em;
}
h3 { margin: 2rem 0 0.75rem; font-size: 1.15rem; }
h4, h5, h6 { margin: 1.5rem 0 0.5rem; font-size: 1rem; }
p, ul, ol, dl { margin: 0 0 1.25rem; }
ul, ol { padding-left: 1.5rem; }
li + li { margin-top: 0.35rem; }
li > ul, li > ol { margin: 0.5rem 0; }
dt { font-weight: 650; }
dd { margin: 0.25rem 0 1rem 1.5rem; }
a {
color: var(--accent);
text-decoration-thickness: 1px;
text-underline-offset: 0.2em;
}
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
code, pre, kbd, samp {
font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
font-size: 0.875em;
}
code, kbd, samp {
padding: 0.15em 0.35em;
border-radius: 4px;
background: var(--surface);
}
pre {
margin: 1.5rem 0;
padding: 1rem 1.25rem;
overflow-x: auto;
border: 1px solid var(--line);
border-radius: 8px;
background: var(--surface);
line-height: 1.6;
overflow-wrap: normal;
}
pre code { padding: 0; background: none; font-size: inherit; }
div.sourceCode { margin: 1.5rem 0; }
div.sourceCode pre { margin: 0; }
table {
display: block;
max-width: 100%;
width: fit-content;
margin: 1.5rem 0 2rem;
overflow-x: auto;
border-collapse: collapse;
font-size: 0.875rem;
line-height: 1.5;
font-variant-numeric: tabular-nums;
}
th, td {
padding: 0.7rem 0.85rem;
border-bottom: 1px solid var(--line);
vertical-align: top;
}
th { background: var(--surface); font-weight: 650; text-align: left; }
tbody tr:hover { background: #f9fafc; }
table code { white-space: nowrap; }
caption { padding-bottom: 0.75rem; color: var(--muted); text-align: left; }
blockquote {
margin: 1.5rem 0;
padding: 0.25rem 0 0.25rem 1.25rem;
border-left: 3px solid var(--line);
color: var(--muted);
}
blockquote > :last-child { margin-bottom: 0; }
hr { margin: 2.5rem 0; border: 0; border-top: 1px solid var(--line); }
img, svg, video { max-width: 100%; height: auto; }
figure { margin: 1.5rem 0; }
figcaption, .subtitle, .date, .author { color: var(--muted); }
.footnotes { margin-top: 3rem; font-size: 0.875rem; }
#TOC { margin: 2rem 0; padding: 1.25rem; background: var(--surface); border-radius: 8px; }
#TOC > ul { margin-bottom: 0; }
::selection { background: #dce8ff; color: #17202c; }
@media (max-width: 600px) {
th, td { padding: 0.6rem; min-width: 5rem; }
h2 { margin-top: 2.25rem; }
}
@media print {
html { font-size: 10pt; color: #000; }
body { max-width: none; padding: 0; }
h1, h2, h3, h4, h5, h6 { break-after: avoid; }
pre, blockquote, tr { break-inside: avoid; }
pre { white-space: pre-wrap; overflow-wrap: anywhere; }
table { display: table; width: 100%; font-size: 8pt; }
table code { white-space: normal; }
th, td { min-width: 0; padding: 0.4rem; }
a { color: inherit; }
}
</style>
</head>
<body>
<h1 id="micromonsta-2-changelog">MicroMonsta 2 Changelog</h1>
<h2 id="v2.8.2">v2.8.2</h2>
<h3 id="fixed">Fixed</h3>
<ul>
<li>Fixed rare, random audio clicks on the outputs under certain
conditions.</li>
</ul>
<h2 id="v2.8.1">v2.8.1</h2>
<h3 id="fixed-1">Fixed</h3>
<ul>
<li>Fixed a one-sample synchronization offset between the left and right
outputs that caused a slight phase shift between channels.</li>
</ul>
<h2 id="v2.8">v2.8</h2>
<h3 id="changed">Changed</h3>
<ul>
<li>Moved the ARP and IFX pages to the PROGRAM menu, replacing their
original pages in the ARP and FX menus respectively.</li>
<li>Reworked the alternate display mappings:</li>
</ul>
<table>
<thead>
<tr>
<th>Current menu/page</th>
<th>Alternate menu/page</th>
</tr>
</thead>
<tbody>
<tr>
<td>OSC</td>
<td>MIXER</td>
</tr>
<tr>
<td>MIXER</td>
<td>DRIVE</td>
</tr>
<tr>
<td>DRIVE</td>
<td>MIXER</td>
</tr>
<tr>
<td>FILTER</td>
<td>ENV2 or OSC3, depending on the displayed subpage</td>
</tr>
<tr>
<td>MATRIX</td>
<td>ENVx or LFOx for the associated modulation source</td>
</tr>
<tr>
<td>ARP</td>
<td>PROGRAM — ARP subpage</td>
</tr>
<tr>
<td>FX</td>
<td>PROGRAM — IFX subpage</td>
</tr>
</tbody>
</table>
<h3 id="usage-notes">Usage notes</h3>
<ul>
<li>Arpeggiator on/off and latch settings are now on the PROGRAM menu’s
ARP subpage. Press and hold ALT in the ARP menu to access them
directly.</li>
<li>Chorus and EQ settings are now on the PROGRAM menu’s IFX subpage.
Press and hold ALT in the FX menu to access them directly.</li>
</ul>
<h2 id="v2.7">v2.7</h2>
<h3 id="added">Added</h3>
<ul>
<li>Added SysEx commands for improved integration with program
editors.</li>
</ul>
<h3 id="fixed-2">Fixed</h3>
<ul>
<li>Disabled the internal keyboard in MPE mode.</li>
</ul>
<h2 id="v2.6">v2.6</h2>
<h3 id="added-1">Added</h3>
<ul>
<li>Added parameters for all Combi modes:
<ul>
<li>Program A and B volume.</li>
<li>Combi tempo.</li>
</ul></li>
<li>Added parameters for Stack and Split modes:
<ul>
<li>Octave transpose for programs A and B.</li>
<li>Assignment of pitch bend, aftertouch, modulation wheel, and sustain
pedal to program A, program B, or both.</li>
</ul></li>
</ul>
<h3 id="compatibility-and-update-notes">Compatibility and update
notes</h3>
<ul>
<li>Combi mode now uses its own mix and tempo settings instead of those
stored in individual programs.</li>
<li>Updating resets the mix and tempo settings of existing Combis to
their defaults.</li>
<li>Programs stored in a Combi can be used independently in other modes
with different mix and tempo settings without affecting the Combi.</li>
</ul>
<h2 id="v2.5">v2.5</h2>
<h3 id="added-2">Added</h3>
<ul>
<li>Added an internal MIDI keyboard with scales, chord inversions, and
chord sets.
<ul>
<li>Enable or disable it using <strong>Int MIDI KBD</strong> on page 13
of the SYSTEM menu. It is enabled by default.</li>
<li>Press <strong>A+B/Yes</strong> to access the keyboard and its
settings; press it again to exit.</li>
<li>Press <strong>Alt/No</strong> to access the keyboard while staying
on the current page, allowing sound editing while playing. Press it
again to exit.</li>
<li>Keyboard settings are shared by all presets and saved globally in
the system settings.</li>
</ul></li>
</ul>
<h3 id="changed-1">Changed</h3>
<ul>
<li>Alternate displays available on some pages are now accessed by
pressing and holding <strong>Alt/No</strong>.</li>
<li>System settings are now saved when loading a program with
<strong>Alt/No</strong> or <strong>A+B/Yes</strong>, in addition to
loading with a double press of <strong>A</strong> or
<strong>B</strong>.</li>
</ul>
<h3 id="usage-notes-1">Usage notes</h3>
<ul>
<li>The internal keyboard is unavailable in Combi mode.</li>
<li>The internal keyboard has no hold mode, and changing its parameters
stops the notes currently playing.</li>
</ul>
<h3 id="compatibility-and-update-notes-1">Compatibility and update
notes</h3>
<ul>
<li>Updating resets system settings, but preserves presets. Check your
system settings after the update.</li>
</ul>
<h2 id="v2.4">v2.4</h2>
<h3 id="fixed-3">Fixed</h3>
<ul>
<li>Fixed reception of SysEx files generated by v2.3.</li>
</ul>
<h2 id="v2.3">v2.3</h2>
<h3 id="added-3">Added</h3>
<ul>
<li>Added a category filter to the LOAD menu.</li>
<li>Added faster navigation (×10) using encoder 3 in the LOAD menu,
available only when the category filter is set to None.</li>
<li>Added arpeggiator beat sync and button hold time settings to the
SYSTEM menu.</li>
</ul>
<h3 id="changed-2">Changed</h3>
<ul>
<li>Reorganized the SYSTEM menu into more pages for clearer
navigation.</li>
<li>System settings are now saved when loading a program through the
LOAD menu or the Yes/No buttons. Loading a program through a MIDI
Program Change message does not save system settings.</li>
<li>Updated low-level USB MIDI handling.</li>
</ul>
<h3 id="fixed-4">Fixed</h3>
<ul>
<li>Corrected dual-mono panning: program A is routed to the left output,
and program B to the right output.</li>
<li>Both arpeggiators now stop when latch is enabled and a MIDI Stop
message is received.</li>
</ul>
<h3 id="usage-notes-2">Usage notes</h3>
<ul>
<li>System settings can also be saved manually by holding the SYSTEM
button while already in the SYSTEM menu. This existing feature was
previously undocumented.</li>
</ul>
<h3 id="compatibility-and-update-notes-2">Compatibility and update
notes</h3>
<ul>
<li>Updating resets system settings to their defaults.</li>
</ul>
<h2 id="v2.2">v2.2</h2>
<h3 id="added-4">Added</h3>
<ul>
<li>Added MIDI CC7 support.</li>
</ul>
<h3 id="changed-3">Changed</h3>
<ul>
<li>External MIDI clock synchronization now works with a continuous
stream of clock messages, without requiring MIDI Start or Stop
messages.</li>
<li>The arpeggiator now starts when triggered.</li>
<li>The arpeggiator can now play in external clock sync mode while the
external clock is stopped. This behavior requires MIDI Start and Stop
messages.</li>
</ul>
<h3 id="fixed-5">Fixed</h3>
<ul>
<li>Fixed Program Change handling in MPE mode. Thanks to Nathan.</li>
<li>Fixed cases where program B’s name appeared instead of program A’s
after saving a Combi and returning to the main program page. Thanks to
Hippolyte.</li>
</ul>
<h2 id="v2.1">v2.1</h2>
<h3 id="added-5">Added</h3>
<ul>
<li>Added MPE mode. See the updated manual for details.</li>
</ul>
<h3 id="fixed-6">Fixed</h3>
<ul>
<li>Fixed unexpected TrPs oscillator behavior when the modulation matrix
pushed the Shape parameter above 127. Thanks to Hippolyte.</li>
</ul>
<h2 id="v2">v2</h2>
<h3 id="added-6">Added</h3>
<ul>
<li>Added oscillator phase reset, useful for FM and bass sounds.</li>
<li>Added a filter character parameter with Soft, Mild, Hard, and Mean
modes, affecting resonance and self-oscillation level. Earlier firmware
used only the hidden Mean mode. Soft mode provides the Mk1-style filter
character.</li>
<li>Added an individual envelope reset parameter to return an envelope
to zero when retriggered.</li>
<li>Added a second multiply operator (mult2).</li>
<li>Added per-program chorus and a simple EQ with low-pass or high-pass
filtering.</li>
<li>Added unipolar LFO shapes.</li>
<li>Added a second low-pass delay filter with a higher cutoff
frequency.</li>
<li>Added delay tempo sync.</li>
<li>Added VCA as a modulation matrix destination.</li>
<li>Added a per-program arpeggiator pattern with 16 editable steps.</li>
</ul>
<h3 id="changed-4">Changed</h3>
<ul>
<li>Increased oscillator and filter FM intensity for more aggressive
sounds. Higher intensity can introduce aliasing.</li>
<li>Reworked voice panning with two pan spread modes.</li>
</ul>
<h3 id="compatibility-and-update-notes-3">Compatibility and update
notes</h3>
<ul>
<li>Changed the SysEx format. Existing files remain compatible and are
converted internally when loaded.</li>
</ul>
<h2 id="v1.0.5">v1.0.5</h2>
<h3 id="fixed-7">Fixed</h3>
<ul>
<li>Fixed routing of pitch bend, modulation wheel, aftertouch, and
sustain pedal to the correct program in Combi mode, according to the
selected Combi mode. Thanks to Lasse.</li>
<li>Fixed an issue that could prevent program B from being selected for
editing after switching between mono/bitimbral and Combi modes.</li>
</ul>
<h2 id="v1.0.4">v1.0.4</h2>
<h3 id="changed-5">Changed</h3>
<ul>
<li>The sustain pedal now acts as a latch when the arpeggiator is
enabled.</li>
</ul>
<h3 id="fixed-8">Fixed</h3>
<ul>
<li>Fixed oscillator FM behavior. Thanks to Adam.</li>
<li>Fixed aftertouch and modulation wheel handling in bitimbral mode.
Thanks to Sébastien.</li>
<li>Fixed sustain pedal behavior with the arpeggiator. Thanks to
Nicola.</li>
</ul>
<h2 id="v1.0.3">v1.0.3</h2>
<h3 id="fixed-9">Fixed</h3>
<ul>
<li>Fixed the reverb input using only the left channel. Thanks to
William.</li>
<li>Fixed the active program not being reset when switching from
bitimbral to monotimbral mode while editing program B. Thanks to
William.</li>
<li>Fixed pitch bend in bitimbral mode. Thanks to Nicola.</li>
</ul>
<h2 id="v1.0.2">v1.0.2</h2>
<h3 id="fixed-10">Fixed</h3>
<ul>
<li>Fixed −/+ program navigation for program B. Thanks to Juraj.</li>
</ul>
<h2 id="v1.0.1">v1.0.1</h2>
<h3 id="fixed-11">Fixed</h3>
<ul>
<li>Fixed stuck notes when using the sustain pedal. Thanks to
Juraj.</li>
<li>Fixed program B’s name being uneditable in Combi mode. Thanks to
Juraj.</li>
<li>Fixed stuck notes when changing the unison count in monophonic
modes. Thanks to William.</li>
</ul>
<h2 id="v1">v1</h2>
<ul>
<li>Initial public release.</li>
</ul>
</body>
</html>