for the final project of my computing degree, I have been developing an application that processes MIDI data to improve a keyboard's capabilities. I was inspired after using a MIDI controller and then a keyboard that can be played on its own but is also MIDI compatible. The former only has three small LED numbers making it difficult to change settings and its overall velocity response is too high. The latter has no octave shift buttons so the lowest and highest notes of some instruments cannot be played. Also, the velocity response of some keys, or some virtual instrument notes, are often louder/quieter than other notes, but these note velocities cannot be easily turned down/up (until after playing).
Unfortunately, neither of them could divide the keyboard into separate 'zones' for playing multiple instruments simultaneously, though it seems that most keyboards lack this feature; to achieve it, software is required.
The application (Live MIDI Manager), once finished, will resolve all of these shortcomings. From the outset, I have tried to make it user-friendly and intuitive (the screenshot of the main window has been attached).
The main window:
- allows you to add up to 4 instruments
- displays input MIDI data (from a MIDI keyboard) and output MIDI data (after being processed by the application).
Also for each instrument you can:
- name it
- adjust its note range
- change the output MIDI channel (each instrument will have its own)
- set a custom velocity curve (in addition to the default linear plot, I've added five concave and five convex curves)
- set the octave shift value (the shifted notes will be played even if it overlaps with another instrument's note range).
The application also has additional dialogue windows (feel free to ask for screenshots) including those for:
- connecting it to the keyboard (input) and software (output)
- creating a custom velocity curve
- saving/loading instrument settings
Next, I'll be working on adding a dialogue that allows individual note velocities to be increased/decreased as required. To finish, I'm going to add an accompanying note feature so that an octave, fifth or fourth is added when a note is played.
Any questions or feedback are welcome. If you include your first and last name, I could cite you in the assignment report.
Thanks for reading,