Uni project - developing a MIDI application (Live MIDI Manager) - feedback welcome

Joined
Apr 15, 2020
Messages
6
Reaction score
8
Hi,

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 (a screenshot of the main window has been added below).

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 of the current note is also 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,

John Baird.

main_window_screenshot.png
 

happyrat1

Destroyer of Eardrums!!!
Joined
May 30, 2012
Messages
13,847
Reaction score
5,569
Location
GTA, Canada
I wouldn't say no to a Debian package or even a Tarball (as long as the dependencies aren't insane) if there should happen to be a Linux port of this software when you've completed.

Seriously, if you're not already programming for Linux, then please consider it.

The community desperately needs innovative young minds who can write their way out of paper bag and are competent in Linux MIDI programming.

Anyway, good luck with your programming career.

And for God's sake we don't need anymore bloody phone programmers :p

Gary ;)
 
Joined
Apr 15, 2020
Messages
6
Reaction score
8
Hi Gary,

thanks for your input. Funny you should say that. I've tried to keep it OS-neutral from the outset by using Python and Tkinter, so I'm hoping that it won't be too difficult to set it up for Linux users. After the project, I'm hoping to test it on the Raspberry Pi, as I can see its potential and it would be cool to use it for music production. :)

The source code should be available on GitHub by early 2021. I'll message you when I add it. ;)

John.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
14,065
Messages
86,856
Members
13,155
Latest member
matiSon

Latest Threads

Top