We built an intelligent system to generate fingerings for violin music in an interactive way. Instead of fully-automatic generation of violin fingerings, the system provides multiple generation paths and yield adaptable fingering arrangements for users. A new violin dataset with fingering annotations is also proposed. For more details, please refer to "Positioning Left-hand Movement in Violin Performance: A System and User Study of Fingering Pattern Generation" (IUI 2021).
The dataset contains 10 violin pieces and the corresponding note-by-note annotations by 10 professional musicians. The annotations specify the detailed performance attributes of each note, including pitch, metrical onset, duration, beat type, string designation, hand position, and finger choice.
The filenames are formatted as [violinistid][piece_id].csv. For example, the filename vio1_bach1.csv indicates that the fingerings are annotated by violinist 1 on Bach's Partita No. 2.
The 10 violin pieces are:
Bi-directional Long Short-Term Memory Network (BLSTM) with a softmax layer is used to predict the probabilities of string and position for playing each violin note, and three modules are employed to make the output desisions of string designation, hand position, as well as finger choice. For intput of the model, each note is represented by its pitch, onset, duration, and beat type.
We have developed a simple GUI that allows users to interact with the violin fingering generation model. The GUI is designed to recommend violin fingerings on sheet music (in the MusicXML format) with three pre-defined generation modes and export the annotated scores as PDF or MusicXML files. To realize a customized recommendation, the GUI can also take user-specified fingerings as optional inputs.
The GUI is proposed along with the paper: "An Interactive Automatic Violin Fingering Recommendation Interface" (IEEE AIVR 2021).