Minuet is a free and open source software for music education. It is part of KDE Edu ‒ the suite of educational applications developed by the KDE Community. I started developing Minuet in late October 2015, sparked by the apparent lack of applications devoted to music education in FLOSS scene and, in particular, in the suite of educational applications developed by the KDE community - KDE Edu.
Since then, some nice new features have landed in Minuet, we've created a nice website, our super-sysadmins integrated it in KDE's Continuous Integration infrastructure and KDE's Phabricator instance, our VDG heroes came up with a cute logo and helped with some UI polishing. We've got some (still bashful) contributions and, even before going out in the wild, Minuet was the target project of seven proposals from students willing to work on it as part of Google Summer of Code 2016. This first release is already available in nineteen different languages. Phew! Not bad, I'd say :).
Again, what's Minuet about?
While I didn't come up with a proper and accurate vision for Minuet yet, for now I'd say Minuet aims at providing a full-fledged platform which supports the technical, cultural, and social aspects of teaching and learning all sort of content related to music education. While this isn't obviously something to be reached with a few months of work, I believe the seed has been sown and now we should take care and keep it growing in a healthy and sunny place like KDE :).
I've got a lot of feedback about possible improvements, bug reports, but mostly regarding some nifty features people would certainly like to see in next Minuet versions. Possibilities are virtually endless :) and I've been gathering those wishes in Minuet's backlog for now. If there is something you think it'd be nice to feature in Minuet, please don't hesitate in having a chat or contacting me.
What are the features in this release?
While still in its infancy, Minuet presents ‒ in this first release ‒ a set of 44 ear-training exercises related to intervals, chords, scales, and rhythm. Those exercises range from pretty basic to advanced questions where the student is expected to hear a given musical concept (interval, chord, scale, or rhythm) and identify it among a set of possible answers.
Questions can be replayed and have their tempo adjusted to faster or slower execution, so that students may explore their skills with diverse setups. Melodic and harmonic questions are fully visualized on piano keyboard (other instruments coming soon) with colored marks which match their corresponding answer in answers' grid.
A last-minute burst of productivity :) made it possible to include, also in this version, some ear-training exercises related to rhythm. Recognizing rhythmic patterns and associating them to their corresponding musical notation are some of the most important skills every musician should possess.
Rhythm recognition exercise showing the available set of rhythmic patterns the student is expected to identify
Minuet 0.1 features two exercises (easy and medium) where a sequence of four randomly chosen rhythm patterns is played and, then, the student is expected to identify the patterns and the sequence in which they were executed. For those sequence positions where the student did choose the wrong answer, the correct ones are shown right above the faulty choices.
The feature Minuet used to have for playing arbitrary MIDI file has been removed from this release, as it was somehow interfering with exercises execution and wasn't totally aligned with overall application purposes. We'll get back to it in next releases.
Under the hood!
We want to make Minuet simple but yet powerful for both users (student and content creators) and developers. While some refactoring of Minuet's internals is expected for 0.2 release, Minuet's architecture was designed to allow for the seamless integration of new exercises. For that purpose, exercises are defined in JSON files which are, in turn, merged by Minuet's core and presented as a set of dynamic QML elements. Such inversion of control sets the stage for the rapid inclusion of new educational content, allows for sharing those on-line, and also enables the use of visual exercise editors.
Minuet's MIDI playing infrastructure is currently powered by the Drumstick library, using TiMidity++ and Freepats as back-end, but it should also work fine with virtually any ALSA-compatible MIDI sequencer. Minuet tries the best to automatically start and stop TiMidity++ and it runs a system sanitizer, at first execution, to check if sound system is correctly configured.
The roadmap for Minuet 0.2 includes a number of improvements and new features:
- Architecture refactoring: while creating new exercises is already a quite straightforward task, a lot of improvements can be done in the dependencies between QML elements and between those elements and the internal Drumstick-based sequencer. Some exercise evaluation logic still needs to be moved into Minuet's exercise controller and an API to support multiple instruments as plugins should be devised.
- Minuet on Windows, OS X and Android: in spite of Drumstick's claims about running properly on Windows, I had some hard times with that in the past and we'll probably move to another cross-platform MIDI library and/or come up with an architecture to load MIDI back-ends as plugins, with different implementations for different platforms. At first sight, TiMidity++ works fine on Android and you should expect some work toward mobile platforms soon.
- Sheet music support: besides showing exercises on the piano keyboard (or other instruments, soon), presenting the questions using the standard sheet music notation is also a feature of paramount importance. The ability to sight-reading a piece of music is considerably leveraged when exercises are practiced along with accompanying sheet music notation.
- Student performance metrics: Minuet currently provide no means to track and evaluate student's performance as exercises are applied. Indicators such as average answer time, hit rate, and average number of replays may be used for that purpose. Also, the use of Minuet as a tool to support exams would make things easier for both teachers and students.
Medium- and long-term goals include more advanced features such as:
- Singing and clapping capabilities: current Minuet human-interaction mechanism comes down to the use of mouse clicks to point out the answer for a given ear training exercise. Obviously, singers and drummers/percussionists wouldn't have any valuable benefit of using Minuet unless it provides some mechanism to get exercises' answer from singing and clapping data captured from a computer-connected microphone.
- Advanced (on-line) music content: areas such as harmony, counterpoint, and improvisation may greatly benefit from the use of software tools. Creating a database of licks, patterns, and motifs for improvisation, integrated with on-line public content are valuable assets when strengthening your music skills.
- Sharing of Minuet data: bringing social and collaborative features to Minuet is a nice way to make it an integration platform for sharing educational content, experiences, and creations with musicians from all over the world. If you came up with some exotic new scale, just share it and wait for comments, or download that nice Latin jazz lesson from your Cuban friend :).
- And much more ...
Joining the gig!
Got interested? :) If you are an amateur or pro performer, a music teacher, a singer, or just enjoy nice technology, join us and help move Minuet forward. Developers/testers/translators are quite welcome of course, but you can also contribute by creating educational content, providing feedback about usability in real-case scenarios, or demanding new features.
Keep informed on last Minuet news or get further information about the project by using the following contacts:
Or follow Minuet on social media:
Last but not least, I'd like to thank all amazing people from KDE community who helped in bringing Minuet to its first release. That includes sysadmins, i18n/l10n team, release team, VDG, websites team, the guys from KDE Edu, and many others. Thanks folks, you rock ;)