Project
Advanced Keys
Started by Softcore on .
Sign in or create an account to join the conversation.
Midi Keys which support Velocity (Y axis of finger when Note triggered) and aftertouch (Y Axis of finger on Keys while touching)
Both Channel Pressure and Key Aftertouch (True Aftertouch) are supported.
Split mode: 2 rows of Keys, each one with its own Velocity Range, Aftertouch Range, Octave settings, Midi channel selection and Channel Pressure (if enabled), Pitch Bend and Modulation Wheel. Channel Pressure is calculated as the "average" of all Keys pressed on each row.
Chained Mode: the two rows of Keys form a unified 2-Octave Keyboard with Velocity Range, Aftertouch Range, Midi channel selection and Channel Pressure (if enabled).
Fixed Velocity or Velocity depending on the Y Axis of Key triggered option for both modes.
Option to enable Channel Pressure, Key Aftertouch, none or both.
Key - Aftertouch release setting (0 to 5 seconds). If enabled (anything other than zero) the Keys are sustained for the given amount of time and the transmitted Aftertouch messages decay to 0 according to the release time.
Option to invert either Velocity, Aftertouch or both along the Y Axis.
Testing window to check various settings with a "sample-key".
Built - in user guide and warning dialogues.
Template file and module available, ready to be inserted in your project .
Some images:
Split Mode
[img]http://i46.tinypic.com/6ga0jc.png[/img]
Chained Mode
[img]http://i46.tinypic.com/21noymo.png[/img]
Settings Page
[img]http://i46.tinypic.com/29zon6d.png[/img]
Built-in User Guide, Built-in Testing Key
[img]http://i49.tinypic.com/2draxs3.png[/img]
______________________________________________________________________
Aesthetically speaking, it is very influenced by the designs of AB - no need to hide behind my finger, I like the looks - I hope this is not considered a rip-off. Code wise, its all done from fresh start.
Download link in user library: http://liine.net/en/community/user-library/view/364/
Both Channel Pressure and Key Aftertouch (True Aftertouch) are supported.
Split mode: 2 rows of Keys, each one with its own Velocity Range, Aftertouch Range, Octave settings, Midi channel selection and Channel Pressure (if enabled), Pitch Bend and Modulation Wheel. Channel Pressure is calculated as the "average" of all Keys pressed on each row.
Chained Mode: the two rows of Keys form a unified 2-Octave Keyboard with Velocity Range, Aftertouch Range, Midi channel selection and Channel Pressure (if enabled).
Fixed Velocity or Velocity depending on the Y Axis of Key triggered option for both modes.
Option to enable Channel Pressure, Key Aftertouch, none or both.
Key - Aftertouch release setting (0 to 5 seconds). If enabled (anything other than zero) the Keys are sustained for the given amount of time and the transmitted Aftertouch messages decay to 0 according to the release time.
Option to invert either Velocity, Aftertouch or both along the Y Axis.
Testing window to check various settings with a "sample-key".
Built - in user guide and warning dialogues.
Template file and module available, ready to be inserted in your project .
Some images:
Split Mode
[img]http://i46.tinypic.com/6ga0jc.png[/img]
Chained Mode
[img]http://i46.tinypic.com/21noymo.png[/img]
Settings Page
[img]http://i46.tinypic.com/29zon6d.png[/img]
Built-in User Guide, Built-in Testing Key
[img]http://i49.tinypic.com/2draxs3.png[/img]
______________________________________________________________________
Aesthetically speaking, it is very influenced by the designs of AB - no need to hide behind my finger, I like the looks - I hope this is not considered a rip-off. Code wise, its all done from fresh start.
Download link in user library: http://liine.net/en/community/user-library/view/364/
Forgot to mention, module available for direct drag-drop in your templates too! 
Oh hey, nice.
I gots a hardware synthamjig (rackmount) that does poly - and now for the first time it finally will!
Cheers fella.
I gots a hardware synthamjig (rackmount) that does poly - and now for the first time it finally will!
Cheers fella.
Softcore, I just have to say that these keys are hardcore! 
This is a seriously awesome contribution, one that I'll probably be using on a daily basis. Thanks so much for one of the most useful templates of all time...I think I love you
This is a seriously awesome contribution, one that I'll probably be using on a daily basis. Thanks so much for one of the most useful templates of all time...I think I love you
lol thanks for the love!
I dont think Lemur needs to be "explored" in so strictly traditional ways of interfacing but hey, I just needed a secondary option of good ol' classic keys in my studio template for when the real keys are not around....so I thought why not at least make them as good as I can! 
A small fix coming this way - a mistake in my logic probably results in sending duplicate Pitch Wheel and Modulation Wheel messages when in chained mode
A small fix coming this way - a mistake in my logic probably results in sending duplicate Pitch Wheel and Modulation Wheel messages when in chained mode
The built-in user guide is fantastically done!
Thanks Brian.
Updated version uploaded: 1.5
Please those of you who have downloaded the initial version, download the updated one as it fixes an important issue with the Channel Pressure calculation in chained mode
1.5 version changes:
- You can now test each row's Ranges independently in Testing Window
- Channel Pressure can now be tested independently for each row of Keys. Channel Pressure testing with Sample Key depricated
- slight coding optimisations
1.5 Bug fixes:
- Duplicate PitchBend and ModWheel Midi messages when in chained mode fixed
- Duplicate Channel Pressure messages when in chained mode fixed
- IMPORTANT!!! Inaccurate calculation of Channel Pressure when in chained mode fixed
In the user library
http://liine.net/en/community/user-library/view/364/
Updated version uploaded: 1.5
Please those of you who have downloaded the initial version, download the updated one as it fixes an important issue with the Channel Pressure calculation in chained mode
1.5 version changes:
- You can now test each row's Ranges independently in Testing Window
- Channel Pressure can now be tested independently for each row of Keys. Channel Pressure testing with Sample Key depricated
- slight coding optimisations
1.5 Bug fixes:
- Duplicate PitchBend and ModWheel Midi messages when in chained mode fixed
- Duplicate Channel Pressure messages when in chained mode fixed
- IMPORTANT!!! Inaccurate calculation of Channel Pressure when in chained mode fixed
In the user library
http://liine.net/en/community/user-library/view/364/
very nice
Thanks! 
Thanks for the awesome template!
I've noticed one thing that might be either a bug or user error. When working in. Split mode, aftertouch on the upper keyboard does not appear to be working? Anyone else having a similar issue, or is my own incompetence coming to the fore?
Thanks again!
I've noticed one thing that might be either a bug or user error. When working in. Split mode, aftertouch on the upper keyboard does not appear to be working? Anyone else having a similar issue, or is my own incompetence coming to the fore?
Thanks again!
Hello! Just confirmed! Silly error on my behalf - Im working on optimising the template and reducing its size but in the meantime Im uploading right now the "fix"....
Thanks for noticing and reporting!
Thanks for noticing and reporting!
1.6 version bug fix: Channel Pressure for top row in split mode not working fixed.
Uploaded in the user library
http://liine.net/en/community/user-library/view/364/
Uploaded in the user library
http://liine.net/en/community/user-library/view/364/
Advanced Keys version 2 uploaded in the user library
Version 2 changes:
1.Independent Key-Aftertouch release settings for each row (when in split mode)
2.Option to assign each Key row's Channel Pressure to Pitch Bend Wheel , Modulation Wheel or any CC Controller from 2 to 127.
3.Option to hide-show the shapes inside the Keys
4.Availability of "NoGuide" module and Template for even smaller footprint
Version 2 bug fixes:
1.Finger Traces in Keys visible option not initialising correctly fixed
2. General optimising of code resulting in decrease of size even though more options were added
(from 15% reported in editor to 13% with Guide, 11% without the Guide)
Some pics with the new options:
[img]http://i50.tinypic.com/2gt43ma.png[/img]
[img]http://i46.tinypic.com/20az05x.png[/img]
link to the user library:
http://liine.net/en/community/user-library/view/364/
Version 2 changes:
1.Independent Key-Aftertouch release settings for each row (when in split mode)
2.Option to assign each Key row's Channel Pressure to Pitch Bend Wheel , Modulation Wheel or any CC Controller from 2 to 127.
3.Option to hide-show the shapes inside the Keys
4.Availability of "NoGuide" module and Template for even smaller footprint
Version 2 bug fixes:
1.Finger Traces in Keys visible option not initialising correctly fixed
2. General optimising of code resulting in decrease of size even though more options were added
(from 15% reported in editor to 13% with Guide, 11% without the Guide)
Some pics with the new options:
[img]http://i50.tinypic.com/2gt43ma.png[/img]
[img]http://i46.tinypic.com/20az05x.png[/img]
link to the user library:
http://liine.net/en/community/user-library/view/364/
Version 2.5 uploaded in user library
Changes:
- the template can now be saved either with Split or Chained Mode enabled and will correctly initialise at the saved mode.
- Aftertouch ranges are now not hidden when Aftertouch modes are disabled so that you can adjust the range to assigned CC controller (if enabled)
- small display in Keys page and over the Aftertouch Range of assigned Controller to Aftertouch (if enabled)
- minor other visual enhancements and additions to the built-in user guide (No Guide version still available)
- optimising of code resulting in a decrease of editor reported memory usage down to 10% (8 % at NoGuide version)
Bug Fixes:
- Corrected visual initialisation of some "settings" elements
- minor visual fixes and glitches
link to user library:
http://liine.net/en/community/user-library/view/364/
Changes:
- the template can now be saved either with Split or Chained Mode enabled and will correctly initialise at the saved mode.
- Aftertouch ranges are now not hidden when Aftertouch modes are disabled so that you can adjust the range to assigned CC controller (if enabled)
- small display in Keys page and over the Aftertouch Range of assigned Controller to Aftertouch (if enabled)
- minor other visual enhancements and additions to the built-in user guide (No Guide version still available)
- optimising of code resulting in a decrease of editor reported memory usage down to 10% (8 % at NoGuide version)
Bug Fixes:
- Corrected visual initialisation of some "settings" elements
- minor visual fixes and glitches
link to user library:
http://liine.net/en/community/user-library/view/364/
Version 2.6 uploaded
Version 2.6 changes:
- Template and library files optimised for classic, shaded, and pixel skins, No Guide versions included
The shaded skin provides rather more "natural looking" keys combined with the disabling of the internal shapes in the keys
Bug Fixes:
- the "testing window" channel pressure display was not working in v2.5
minor stuff: all files are now saved-delivered with common init settings
link in user library:
http://liine.net/en/community/user-library/view/364/
NOTE: possibly, unless I discover another bug, this will be the last "standalone" version of Advanced Keys which will be further used as "Keys" page for other, more complex projects.
Version 2.6 changes:
- Template and library files optimised for classic, shaded, and pixel skins, No Guide versions included
The shaded skin provides rather more "natural looking" keys combined with the disabling of the internal shapes in the keys
Bug Fixes:
- the "testing window" channel pressure display was not working in v2.5
minor stuff: all files are now saved-delivered with common init settings
link in user library:
http://liine.net/en/community/user-library/view/364/
NOTE: possibly, unless I discover another bug, this will be the last "standalone" version of Advanced Keys which will be further used as "Keys" page for other, more complex projects.
First, thanks a million for your template. I found it invaluable for dealing with both iPad apps and with my outboard gear. Now for crazy request! Is there chance you might consider adding customizable scales like it seen in ThumbJam? If that happened I could see AdvancedKeys replacing all of my other MIDI control options. I recognize this is kind of a ridiculous request, but I figured I'd give it a shot. Thanks so much for your efforts!
Thanks for the kind words!
Not so crazy as a request I have to admit - it kinda makes sense!
Im currently working on updating some other templates of mine and maybe after that, I will have a look at this!
Not so crazy as a request I have to admit - it kinda makes sense!
Im currently working on updating some other templates of mine and maybe after that, I will have a look at this!
Because I'm a jerk, I came up with another feature suggestion. Would it be possible to have aftertouch calculated based on changes in the Z position rather than the fingers' Y location. If so, one could play notes at any velocity without AT engaged and then slide the desired amount of modulation into play. Sorry for making all these requests, I just really enjoy the template!
I'm been thinking about making a template where the channel the notes are sent on different channels based on a round robin setup. Or, also known as channel rotation. This is useful to play polyphonically several monosynths. In particular, I was interested in using it to control analog four. The parameters to define would be very simple:
MIDI Channel range or set. The amount of channels you select determine the polyphony. I haven't yet figured out how I would go about designing it in lemur language. basically, the algorithm is simple. in pseudo language..
var midiPool = {1,2,3,4};
var channelsInUse = {};
onKeyPress() would then see if there was a free channel available to use (we would then decide about note stealing or not..) or not. If there is, it would use the first available channel out of the pool and update the channelsInUse array. On noteOff, the channel would be released. This seems pretty straightforward but I would welcome your opinion or if this is something you would like to implement.
Cheers !
b
MIDI Channel range or set. The amount of channels you select determine the polyphony. I haven't yet figured out how I would go about designing it in lemur language. basically, the algorithm is simple. in pseudo language..
var midiPool = {1,2,3,4};
var channelsInUse = {};
onKeyPress() would then see if there was a free channel available to use (we would then decide about note stealing or not..) or not. If there is, it would use the first available channel out of the pool and update the channelsInUse array. On noteOff, the channel would be released. This seems pretty straightforward but I would welcome your opinion or if this is something you would like to implement.
Cheers !
b
Ok then lets see if I got it right.....Aftertouch is not part of the "equation"....
You want to play notes, and note after note, the midi channel changes?
You want to play notes, and note after note, the midi channel changes?