KordsKontrol development has started back in 2012. I initially used a MIDI translation tool called BOME MIDI translator to play some static chords with my faithful Korg padKontrol drum pad; rapidly, I decided rapidly to move to the development of Java standalone software, and started to design the beginning of the KordsKontrol Harmony Engine.
First release, and creation of this website was done in a second step in 2017.
A major update, leading to a completely redesigned version 2.0, was developed between December 2022 and April 2023.
2024-02-29 -Beta 2.56
The pending actions that were applied on clock start now apply on clock stop.
Pending actions (change chord bank, half bank, choose or set chord) are also immediately applied when the clock is stopped
The bar beat counter is reset on start clock message (do not apply on continue message)
Now adding additional Arpeggio automatic sustain pedal reset to avoid notes to be stuck in several cases: when stopping the clock, each time the trigger condition occurs even when the chord (type /root) is not changed (when something plays)
Also done when there is no more Arpeggio playing in Autotrigger mode (when the last Arpeggio is stopping immediately and the trigger condition when end of Arpeggio, or on next bar condition other while)
Improvements on Chords pad Auto Chord led update
No more answering to external clock (transport and ticks) when not in Autotrigger mode
Could not select clock source in Settings page if Autotrigger mode is off; no more showing the external clock ticks in such case
Fixed an array out of bound issue (only when using a legacy feature – related Arpeggios)
2024-02-23 – Beta 2.55
Now, all action that wait a Trigger condition to happen (change chord bank, half bank, choose or set chord) are immediately triggered when the Trigger condition is end of Arpeggio and there is no Arpeggio playing – Also done when the Arpeggio is stopped before its end
All pending actions (including change of Chords Auto status) are also immediately applied when the clock start, and when leaving the Performance page
Turning On or Off the Chord Auto in performance page when clock is stopped also immediately applies
Starting of stopping Arpeggios when clock is stopped is taken into account. These changes are also applied if clock is stopped before it could happen (for both Gate and Toggle modes)
Fixed broken reset of Arpeggio steps upon clock start event in Performance page (broken from 2.5, was happening when the option to require chord change to reset steps was active)
Now updating the Arpeggio pads in case of clock stop (do not show them as active anymore)
Now resetting the Beat Counter on clock starts in Settings page
Now the console is showing the MIDI channels used
Several improvements regarding MIDI clock sync -again… (KordsKontrol cannot send consecutively start/stop messages out without keeping 1ms in between, continue message now ignored when not preceded by a stop message)
Added an option in settings.ini to follow MIDI standard and expect a Downbeat after a continue message is received, or follow the count of ticks without reset (useful with many devices)
2024-02-21 – Beta 2.52
Improved the management of external device MIDI clock messages when switching from Internal to External clock of from External to Internal clock
Adding an option is settings.ini to let the user deactivate the new feature introduced in 2.5, to not reset the Arpeggio steps and sustain pedals when the chord (type /root) is not changed when the Trigger condition occurs and something plays
Now, allowing only CoreMIDI4J versions of the MIDI port for ‘toOUT’ to ensure clock messages can be sent properly by KordsKontrol on MAC
Corrected a typo in settings.ini regarding ‘continue to forward clock tick received when the clock is stopped’
2024-02-19 – Beta 2.51
It is now possible to set the level of velocity humanization per channel for notes, and now for drum notes also (the humanization for notes remain also set on a per Arpeggio basis, such a the humanization for drum notes now)
2024-02-16 – Beta 2.5
Integration of a full walk through tutorial inside the program, showing how to build and record chords progressions, program a simple Arpeggio, and play them together in the Performance page
In performance page, Arpeggios steps are not reset when 2 identical chords are played consecutively, allowing Arpeggios to play further on some (duplicated) chords
Slight improvement of the erase behaviour in the Arpeggio construction page
By default, pressing a chord pad in Performance page will trigger on next beat (do not wait trigger condition)
2024-02-02 – Beta 2.45
Now, it is possible to copy an Arpeggio on 64 pads controllers (using the select Arpeggio or Select Arpeggio bank buttons, and then pressing the source Arpeggio pad, and, keeping it pressed, pressing another Arpeggio pad)
Now, It is possible, when pressing the Arpeggio bank button, to use the 16 base pads to dis-activate the playing of the Arpeggio on a given chord (or on several chords) of any chord bank. This can let you run several different Arpeggio in parallel, some of them triggering on certain chords of the chords sequence only, some others on others chords.
Combined withe copy Arpeggio function, you can thus create variations of Arpeggios that will follow the chords sequence.
You can also use this to add some Arpeggio notes, CC or drums for example only on some chords of the sequence
2024-01-27 – Beta 2.4
Now, an Arpeggio can contain Scale notes (up to 8 per step and per channel). The principle is the same than with the chords notes, but instead of selecting which note of the chord the Arpeggio will play, you can select which note of the scale associated to the chord the Arpeggio will play (and at which Octave).
This can be combined with regular Arpeggio chords notes.
If the Arpeggio contains scale notes that cannot be reached (for example: the 8th note of the scale, when the chord is associated to a 7 notes scales), they will be ignored.
This new feature can let an Arpeggio play a melody that do not depend on the underlying chords, or add some fixed note in an Arpeggio, playing with regular evolving chords notes.
2024-01-08 – Beta 2.34
The previous update missed the case where trigger condition is set to the end of an Arpeggio, and the Arp end do not wait the end of the Arpeggio (polyArpEndWaitForTrigger=0). In such case, if the Arpeggio stopped is the last one, while the command of Chord Auto On or Off is pending, these commands were not triggered. Now, they are triggered immediately when the last Arpeggio is stopped.
2024-01-07 – Beta 2.33
Minor fixes concerning the behaviour of chords Auto On and Off in Performance page:
– Before, quitting the performance page while a pending chords auto On or Off was registered but not applied yet was resulting in the non application of the request.
– Now, if the Auto trigger is activated, and when the trigger condition is set to the end of an Arpeggio, but no Arpeggio is playing, the chord Auto On is activated on next beat without waiting for the end of Arpeggio trigger condition, and the chord Off is immediate.
2023-12-31 – Beta 2.32
KordsKontrol now can send MIDI clock transport and ticks to the destination instrument (either forwarding the signal received on fromOUT when the sequencer is following an external clock, or sending it when the sequencer is following the internal clock)
Now managing properly continue messages received on fromOUT when following an external clock
Fixed several causes of synchronisation issues when following an external clock (keep monitoring the external clock ticks all the time now, even when the sequencer is following the internal clock)
2023-12-23- Beta 2.31
Now, it is possible to change the CC messages for CC1 and CC2 in Arpeggio sketch page by pressing the CC edit mode button and using the encoder / encoder buttons – The CC is per channel and per Arpeggio!
Fixed the pedal CC for chords change with external CC on fromOUT to number 82
Removed the possibility to select CC1, CC2 and pedalCC in settings.ini
Fixed : CC2 message was never sent (CC1 was sent instead)
Removed the possibility to send CC1 and CC2 with endless encoders from Performance page
Added a verification in chords data base generation process, related to 2.3 update, to check if altered chords only used in user scales could occur, and if such case happen, to inform user that this might pose an issue if the user scales are changed after some chords are recorded, when the user asks for a revoicing / transposition of those chords
2023-12-22 – Beta 2.3
Now, the M1 button gives access to a play/edit sub page in chords progression sketch page; it is now possible to listen to a chords progression from this sub page, and also to change the voicing of an existing chords progression, or transpose it.
These features are to prepare the next release of the chords progression starter pack.
Several interface improvement related to Inversion behaviour in Chords progression sketch page.
Slightly improved closing sequence.
Compression of User files (disruptive change) greatly improving the loading time and hard drive footprint.
2023-12-15 – Beta 2.29
Fixed the sorting of roots by quantity of alterations for the Direct modulation feature (some roots were not properly sorted)
Now, the demo version can save and load the .kku files, and load the Chords (.kkc) files
Reworked the .kku, .kkc and .kka user files to allow future modifications (feature addition) without loosing the data saved by user on current versions
2023-12-08 – Beta 2.28
The function preventing 2 identical notes On on the same channel on the same step has been extended to Drum notes
Added an option in settings.ini file to allow the stop of chords AutoOn function to wait for the trigger condition to be effective (like it was already the case of the start of chords AutoOn)
2023-12-05 – Beta 2.27
In performance page, it is now possible to cancel the stop of a Poly Arpeggio that was ending on next Trigger condition
It is also possible to keep playing a Poly Arpeggio that was ending on next Trigger condition in Gate mode if the pad is released and pressed again before the said Trigger condition (previously, the press was stopping the Arpeggio, and the Arpeggio would restart only if the press was maintained until the next Trigger condition)
Quitting the Performance page with Poly Arpeggio waiting to stop will result in stopped Arpeggios next time
In Arpeggio construction page, removing the display and access to Note Gate length selector while being on a ‘Content only’ step, or when the edit mode is set to CC.
2023-12-04 – Beta 2.26
In Arpeggio construction page, when a note or drum note was recorder over a loop stopper marker, the Note Gate length was not recorded
In Arpeggio construction page, improved the auto view (channel + octave)
Fixed a vicious bug in Performance page that could lead rarely to sustained chords notes when a chord was triggered from the user and from the AutoChord in a very brief interval (synchronicity issues)
2023-12-01- Beta 2.25
Confirmed compatibility with LaunchpadPro MKIII
Removed compatibility with Launchpad Mini MKIII, Launchpad MKII, Launchpad Pro (MKII) and Push 2 until these controllers can be tested
Added EULA validation for first launch
Added a mini setup tutorial in the Initial setup window
Added a splash screen
Now, it is possible to save up to 256 chords bank in a single file – Added pages navigation for 64 pads controllers
Now, it is possible to save up to 256 Poly Arpeggios in a single file – Added pages navigation for 64 pads controllers
Improved startup robustness is case of reception of a message from controller before the controller object initialisation (like a MIDI clock from LPPRO MKIII)
Automatic selection of known controllers on LINUX
Filtering of fromOUT and toOUT MIDI ports proposed to exclude known controllers
Changed settings.ini delimiter from “:” to “~” to avoid truncating controller names on LINUX
Fixed the save state of sustain pedal when closing KordsKontrol from Arpeggio or Performance page (caused by the reset added in 2.2)
Fixed encoder buttons lights update after a recovery (unplugged Controller)
Recovery from unplugged controller can be done several time in a row (fix)
Improved recovery from Unplugged controller during startup phase
Improved application exit robustness – Fixed application exit on Mac (trying to close a MIDI bus resulted in a crash in exit sequence)
Changed LPX recovery from Live launch (switch to DAW mode) to align on LPPRO MKIII
Reset of LPX leds in case of crash
Fixed Arpeggio page Drum octave being wrongly updated when an Arpeggio contains Notes
Fixed the behaviour of Arpeggio bank change in Arpeggio construction page
2023-11-24 – Beta 2.21
Fixed colors of non playing steps of Poly Arpeggios in Performance page
Fixed some explanations using obsolete names in the console
2023-11-23 – Beta 2.2
Check that the pedal CC cannot be same than CC1 or CC2 to avoid potential issue when using a single Virtual MIDI port form both toOUT and fromOUT
Reset controller if the fromOUT or toOUT ports are not available during startup
Put a Debug warning if the Gate note length of in UserDataArp is corrupted (test purpose)
The channel selection in Performance page now consider if strumming note are being played to be locked
The config page is now properly updated on 64 pads layouts when an Arpeggio is erased in the construction page
Sustain pedals are now reset when exiting Arpeggio Build page and Performance page
Added an option in settings to allow the user to choose if the manual switch to next chord using a chord pad, or the stop of a poly Arpeggio is done on next beat when auto Trigger is ON, or on next Trigger condition
When changing the chord in Arpeggio construction page, step notes are stopped and pedal reset
2023-11-17 – Beta 2.162
Fixed hot plug issues on Mac – Forced KordsKontrol to use CoreMIDI4J version of ‘fromOUT’ MIDI port to support properly MIDI clock on Mac OS
Increased recovery speed in case of hot unplug / replug of the controller
Fixed an issue where it was impossible to Select external MIDI clock on first launch
2023-11-16 – Beta 2.161
Fixed a critical issue on 16 pads controller; in performance page, array could go out of bound when navigating through Arpeggio pages
Changes the voicing of Na6 chord
Renamed layouts on 16 pads controller
2023-11 12 – Beta 2.16
A few bug fixes:
- fixed possible corruption of user file when program was closed before the files where completely read
- fixed the automatic reinitialization of manual choice of a chord in the construction page when needed
Now, In performance page, AutoChords function plays chords automatically even if there is nothing else playing
2023-10-26 – Beta 2.15
In chords progression sketch page, the switch from 1 root note to another 1 for the active scale (Direct modulation) is not necessary done following the circle of 5th.
Instead, the concept of cercle of 5th (which, for a Major scale, guarantee that you alter only the minimum quantity of notes of your current scales pitches set for each step you turn on the circle), is generalized.
It means that the 12 possible roots for the current scale will be sorted in such a way that you can minimize the added alterations needed to move from the current root to the next one. This will guarantee a smooth transistion between 2 roots when you choose to do a Direct modulation. The further you go on the list, the more alterations you will bring. This arrangement is pre-calculated on a per scale basis.
A few minor fixes on Arpeggios construction page, and a major fix on setting page arpeggios sustain channels subpage
2023-10-24 – Beta 2.1
Now, each step of an Arpgegio can be marked as ‘accent only’ or ‘content only’ using the same button used to mark the end of an Arpeggio loop manually
When a step is ‘accent only’, it means that the notes, CC or Drum notes (content) will be ignored but still, the step will trigger the play of content
When a step is ‘content only’, it means that the notes, CC or Drum notes will be considered, but the step itself will not be played (will not trigger any content)
Doing so, it is possible to define an Arpggio with less content or more content (means, smaller or longer loop of notes, CC, or Drum notes) than the number of accents being played. Said it differently, to have X accents in an Arpeggio loop (X steps trigerring a play) , and a loop of contents (notes for examples) that have a length of Y elements , with X and Y different and having independant looping length. And thus, to create Iso rythms
This is possible for Notes, CC1, CC2 and Drum notes contents independently
Now an Arppegio manual end loop marker can only be added on a step that has no content, at the end of the arpeggio only
Step copy function is now limited to active edit mode (Notes, or CC1, CC2, Drum notes)
A few minor fixes on Arpeggios construction page
2023-10-12 – Beta 2.05 release
In performance page, the activation of ChordsAutoOn mode is now synchronized with the beginning of next bar
Cleaned the coding of ChordsAutoOn/chords sustain for better robustness
It is now possible to switch chord channels and add extra leading note and bass while a chord is playing – In performance page, this is now also synchronized with the beginning of next bar
In Arpeggio edit page, the channel edited is now saved when the software is restarted; the view automatically screen the arpeggio channels to display any data available when changing arpeggios
2023-04-14 – Beta 2.0 release
2022-12 – Started to work on the future 2.0 major update:
- Compatibility with 64 pads layout
- Addition of features exploiting the extended pad layout such as scales direct access, banks direct access, expanded Performance page….
- Support of RGB pads and buttons
- Several interface improvements for a better readiness and ease of use
- Implementation, of the Auto Trigger feature, including internal and external clock support, multiple time signatures, a better polymeter rhythms management, velocity recording and humanization, note length per step, probability per note, etc…
- Chords sequencing, with support of subsets of chords progressions within a given bank
- A more flexible auto switch to next chord
- Support of polyphonic aftertouch, velocity curves
- A more flexible sustain management and auto Chord On management
- A revised MIDI engine (more robust, more flexible)
- A revamped presentation of scales (less scales available, but better organized, and selected for their musical properties)
- Access to 8 users scale (that will benefit all the features of the Harmony Engine)
- A major extension of the non-diatonic chords functionalities, including mapping on all the scales, and systematic altered chords exploration in the Harmony engine
- The addition to the Harmony engine of a custom Altered scale optimization algorithm
- Additional settings option
- A dedicated setting page accessible from the interface
- A simplified initial setup
- A attempt to support hot swap of controllers
- A lot of optimizations, improvements, a few bug fixes
- Countless others improvements; there is not a single part of the original program that have not be revised, reworked, improved….
All these changes have been internally named 1.4, 1.5, 1.6
Putting the KordsKontrol remote solution on standby
2019-03-17 – Beta_1.4 – Adding KordsKontrolRemote app support (with UDP protocol)
2018-06-10 – Beta_1.3 (previously called 1.0.3) – New release – Added Mac OS compatibility
2017-12-23 – Beta_1.2 (previously called 1.0.2) – Added CoreMIDI4J library for Mac OS Java MIDI Sysex support
2017-12-12 – Beta_1.1 (previously called 1.0.1) – Initial release – Windows only
2017-11-20 – Beta_1.0.0 – Initial build – Compatible with Korg padKontrol and NI Maschine controllers