-
Notifications
You must be signed in to change notification settings - Fork 9
/
Changelog
439 lines (294 loc) · 14.9 KB
/
Changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
MCL 2.31 16/04/2019
Fixes:
Mixer Page:
- Faster encoder rotation is now supported, by pressing the encoder button
and rotating. (When tracks are selected using trigger interface)
- Encoder 2 now adjusts FILTF for selected tracks.
- Encoder 3 now adjusts FILTW for selected tracks.
- Encoder 4 now adjusts FILTQ for selected tracks.
Chain Mode/Grid:
- Clear row now works correctly. Was incorrectly leaving slots active and
showing them as deleted. This messed up some chain mode behaviours.
- When a row is cleared completely, the row name is now initialised.
Internal Sequencer:
- Reduced sequencer muting/skipping when entering pages.
Write Mode:
- Fix write mode reliability
It was discovered that due to improvements in MIDI performance
in the MCL firmware, write mode became unreliable when sequencer was running. The
MD is unable to receive pattern/kit dumps at 4x or above turbo when
sequencer triggers are being executed. To circumvent this problem
we've added throttle to Write Mode, to limit data transfer rate when the
sequencer is live. The throttle is only activated during pattern/kit sends.
- Improve handling of empty slots: Writing an empty slot will now transmit GND
machine to MD.
- P+/P- modes were broken when chain mode was added (fixed)
- Pattern selection encoder on Write Page was incorrectly limited to 8 instead of 16.
MIDICtrl Core:
- New Memory layout.
Sysex code refactored to use HIGH memory bank. This frees up a signifcant
amount of RAM in the heap.
This change was made in preparation for handling larger sysex dumps from
newer elektron machines.
MCL 2.30 20/03/2019
Features and Fixes:
- Chain Mode Improvements: Chain mode no longer saves and requests the
current kit when sequencer is running. This fixes some complications with
parameter locks, and also improves chain page responsiveness.
Track muteGroups and trigGroups are now properly removed.
- MIDI SDS Receive is fixed and working.
- Added Loudness Page, and loudness features
Auto Normalize: When activated, all saved track have their LEV boosted to
127, and parameters controlling VOL (including parameter locks) are lowered
to compensate. VOL parameter locks and LFOs with destination VOL are
adjusted too.
The resulting track loudness remains the same, but the Track LEV parameter
is no longer set arbitrarily. LEV == 127 will always be the loudest volume
for a track.
Gain Boost: The ability to boost / reduce the VOL of all tracks in the
current kit by a percentage amount.
Peak Analyser: The MD is instructed to record 1 Bar of the current pattern.
The recording is transferred to the MegaCommand and the WAV file is decoded
and analysed. The peak value in the recording is found and this is used to
determine an appropriate gain boost to increase pattern/kit loudness using
the Boost function above.
- Added Sound Page, to Page Select Menu.
It's now possible to save and recall sounds from the MD. A sound consists of
1 or more tracks (2 maximum).
To save a sound enter the Sound Page. Select the desired track on the MD,
and then choose save. If the selected track triggers another machine, both
track machines will saved as part of the sound.
To load a sound enter the Sound Page. Select the desired track on the MD,
select the sound to be loaded from the browser, and press an encoder
buttton.
- fixed unreliable button response in WavDesigner
- New file browser page, with memory improvements. 1024 files visble per
directory.
- Added the ability to rename rows.
- Added the ability to copy and paste slots within the grid
- Graphically depict slot selection when modifying slot_apply
- Fix for chromatic mode, tuning map was not available for ROM machines greater than 31
MCL 2.20 09/11/2018
###### IMPORTANT ######
Projects created on older versions will not be compatible with MCL 2.20
Changes:
Stable support for 8x Turbo.
- Significant improvments to the MIDI code now makes 8x Turbo
the most stable speed setting.
Choose this speed on both ports for lowest sequencer jitter and
fastest transmission times.
GUI overhaul:
- Both the HD44780 and OLED display get significant updates to the GUI
to accomadate Chain mode. This includes a complete redesign of the
menu system.
The GridPage has been completely redisgned for both displays.
Screensaver added for OLED display (5 minutes delay)
Slot menu:
- To access the Slot menu:
OLED_DISPLAY:
Shift2 button will open the Slot menu for the selected slot.
HD44780 LCD:
Hold Shift 2 button + Encoder Button [ 1 - 4] will open the Slot menu
for visible slots [ 1 - 4 ].
- Slot Menu has following options and selectable values:
Chain: [ --, auto, manual, random ]
Loops: (0, 64)
Row: (0,127)
Seq: [ --, merge ]
Clear: [ --, YES ]
Apply: (0,20)
Chain (global setting):
- auto: enables chain auto mode global setting
- manual: enables chain manual mode global setting
- random: enables chain random mode global setting
Loops: specify how many times to loop track/slot
Row: specify which row to load/jump to after n loops.
Seq: merge slot's MD sequencer data in to the internal sequencer
Clear: clear the select slot.
Apply: apply the above changes to the next N slots upon exit of SlotMenu.
Chain Mode:
Chain Mode is enabled through the SlotMenu, or Global Settings->Chain Mode
menus.
Chain Mode is an enhancement of the default MCL write mode. It works
like an old school music tracker. Tracks from different rows can be chained
together and made to load automatically.
Previously, when 'writing tracks' the MD pattern data would be transmited to
the MD, and the corresponding internal sequencer data would be loaded along side it.
When chain mode is enabled, only the MegaCommand internal sequencer data is
loaded and used to sequencer the Machindrum. By performing all the MD sequencing
from the MegaCommand we can load tracks instantaneoulsy without any audible delay.
In addition, individual tracks can be chained together to form complex sequences or
songs.
To use chain mode, you must first "merge" your MD pattern data in to the
internal sequencer. To do this, you can enable the "auto-merge"
setting in the MachineDrum global settings page. If auto-mege is enabled,
any time you save a track to the MegaCommand, the MD sequencer data will be
merged in to the internal sequencer track for that slot.
The SlotMenu can also be used to merge sequencer data on specific slots or
entire rows. (see slot menu above)
Chain mode resembles an old school music tracker. From the slot menu
you can set the duration for which a track should play by setting the number
of loops. The row value specifies which row of the Grid the track should
load next after it has completed.
Chain mode can be configured in 1 of 4 ways [ --, auto, manual, random ]
If Chain mode is disabled then the write page performs as per pervious
versions.
If Auto mode is selected. Tracks written through the WritePage,
will automatically load other tracks based on their Loop and Row settings.
If Manual mode is selected, tracks will only be loaded through the Write
page. (Useful if you want to pause the chaining functionality)
If Random mode is chosen, tracks will automatically load based on random
loop and row settings limited by parameter range in Global->ChainMode menu.
When Chain mode is activated, the Write Page now displays "Chain".
The quantization options behave slightly differently in Chain mode.
In Chain mode, tracks will start playing from step 0 based on the
step quanitzation.
GridPage Changes:
The current active slot will blink.
On the OLED display, the current Bar:Beat is shown.
The next transition Bar:Beat is displayed below this.
Poly Config
Voice selection is now achieved through the MD triger interface.
Enter Global -> Machinedrum -> Poly Config.
Selected tracks will be used as polyphonic voices for chromatic modes.
If no tracks are selected, the current MD track is played monophonically.
BugFixes:
Numerous bug fixes and enhancements. See the git log
MCL 2.16a 10/08/2018
Hotfix:
Write original would be broken in some scenarios.
MCL 2.16 08/08/2018
Changes:
Improvements to the behaviour of Parameter Locks.
- Track parameters with paramter locks now have their correct default
values detected. The default value is restored when the sequencer is
stopped, or on next trig without a lock.
Previously, saving the current kit or writing track to the current
pattern would incorrectly cause the 'default' parameter value to change
to the last parameter lock value sent.
SeqStepPage:
- TrigLocks are now cleared when a trig is set, not when a trig is deleted.
Bug fixes:
- MDExploit track switching improved.
MCL 2.15 01/08/2018
##### Important #######
OLED Display is now the default display type.
- See Readme on how to enable HD44780 LCD
- Grid Write and Save Pages GUI changes:
Precision mode is now enabled by holding shift1 button in either page.
Shift2 button will "write/save" original, which means all tracks and master
settings.
Encoder buttons no longer save or write tracks.
Kit auto-save enabled by default.
- If auto-save is enabled and the sequencer is stopped, the current kit will be
saved when entering sub pages. This is necessary to detect kit changes
such as machine change, or masterfx changes.
- Current kit is saved when storing track from the MD when autosave is
enabled.
- Current kit is always saved when writing tracks to the MD regardless of
autosave setting.
- SystemConfig updated requiring new Project Creation on startup.
Stability:
- Minimum sequencer jitter and best overall firmware performance is acheived
when Turbo Midi is set to 4x. 8x turbo may not provide any performance
benefit.
MD SDS Bug:
- If MD sysex data is requested at a time proceeding a sample request,
the MD encoders and trigs lock up indefinately after the sample is received.
The only current workaround is to power cycle the MD after receiving a sample.
##### Features Added #####
Quick PageSelect:
- Holding Shift Button 1 now accesses a page quick select menu.
- When inside the page select menu:
MD trigger buttons 1 -> 16 can be used to select various pages quickly.
Rotary encoder 1 can be used to scroll through available pages.
Releasing Shift Button 1 enters the selected page.
- Currently (Mute, Mixer, Cue and Wav Designer) pages are accessible through
this menu.
Wav Designer.
- Accessible from QuickPageselect menu above.
- 3 Oscillator Additive Synthesiser. Generates single cycle waveforms and sends
them to a MD sample slot.
- There are 4 pages to the WavDesigner.
Encoder buttons[1-3] select the indivdual oscillators.
Oscillator Pages:
- Oscillator wavform can be changed by pressing top left button repeteadly.
Oscillator WAV Forms:
- SIN: Sine wav with adjustable overtones (each overtone is an octave above
fundamental)
- TRI
- PULSE
- SAW
- USR: User defined waveform, 16 points with linear interpolation.
- The MD trigger interface together with encoder 4 can be used to
manipulate the SIN and USR waveforms.
- Encoder 1 pitch adjusts frequency by semitone.
- Encoder 2 is fine tune +-100 Cents
- Encoder 3 is pulse width.
Oscillator Mixer Page:
- The wav designer mixer page has volume levels for each of the oscillators.
- From the mixer page, top right button can be used to render and transmit the waveform.
(Some of the MD GUI will lock up when receiving samples, see bug description
above)
- Encoders 1-3 adjust oscillator volume
- Encoder 4 adjusts MSD destination sample slot.
Mute Page:
- A replacement for the MD mute menu. This features quantisation modes.
Also LVL function sets the track(s) volume to 0 before unmuting, mixer
page can then be used to fade in the track(s) gently.
- MCL will attempt to detect the current mute state. (No way of receiving it
from the MD)
Mixer Page:
- For OLED users this will depict both mutes and levels.
- Track triggering is displayed visually.
- Holding Write Button when pressing MD trigs will toggle mutes according
to settings in the Mute Page.
Chromatic mode:
- Chromatic mode will be functional from pages outside of PTC page.
- MD POLYSTART parameter added. When a POLYSTART value is chosen, Tracks
from (POLYSTART to POLYSTART + POLYMAX) will be locked in as chromatic
tracks. Playable from most pages if an external keyboard is attached.
- When modifying paramters from a chromatic track, the corresponding parameter
on remaing poly tracks are updated simultanously.
Display Mirror:
- When enabled, the MC will transmit a 7bit encoded dump of the display over
usb-serial which can be viewed using the mc_display_mirror.py script.
Midi Forward:
- Ability to forward all MIDI messages (except clock/realtime) to alternate
port. Useful if you want to use the MD with the MC and an attached controller.
Enhancements Bug Fixes + Changes:
- Sample Support.
MidiSDS sample format send/rec supported. Used for Wav designer.
WAV file library has been added. should support 8->24bit samples multi
channel.
- OLED SPI frequency doubled. Noticed that the default SPI speed for the OLED
library was only 4Mhz. Increased to 8MHz. Might provide a small improvement
to refresh rate.
- Re-drawing of display is disabled in Live Record mode when sequencer running.
To improve MIDI input latency the OLED display is only updated when changing
paramter values. This greatly reduces MIDI latency during live record mode.
- Mixer page encoder behaviour improved. large jumps in encoder values are
supported and midi CC messages are interpolated between to give smooth
value change.
- Chromatic mode extended to the Seq Step page. Encoder 4 is used to
select Note of current step (uses one parameter lock track)
External MIDI keyboard on port 2 can also be used to set note value.
- Improvement of Sequencer GUI. Parameter changes are now applied immediately
upon encoder change.
- ExtSeqPage had some GUI problems. Fixed.
- Improvement to Project page GUI. Can now exit load and new project
pages. New project page shows a blinking cursor for the current character
select.
- GridWrite Page P+/P- modes were broken.
- GridWrite Page: When writing: If MD track length is shorter than the current pattern
length, the selected tracks will automatically loop until they fill up the remaining
pattern steps.
- Sequencer stability improvement, no more missing notes.
- Sequencer Track Length adjustment fixes.
- Improvements to sequencer parameter locks and pitch handling.
- Macros to control MD GUI.
Discovered undocumented sysex commands that allow for controlling of MD GUI.
Used to exit menus and record mode in the MD before enabling Trigger Exploit.
- Various improvements to the Trigger Exploit.
- Changes to ActivePeering for better connectivty and device identificaiton.
- Various other improvements I can't remember. See GitLog.