Version 1.0.2
Demonstration video: https://drive.google.com/open?id=1ZyDayk5WOfHuUH_SrvZERUocpx5qfbta
Surge link: DTKeyboard v1.0.2
DTKeyboard is an academic project originally concieved for the course of Advanced Coding Tools and Methodologies, held by professor Francesco Bruschi and professor Vincenzo Rana, at the Politecnico di Milano. Since its source code is never delivered to final users, it is fully GPL-compliant. No open repository could ever be endorsed and its possible free spread is an exclusive owners' right. Please refer to the License to get more infos. All rights belongs to the relatives owners.
DTKeyboard, which stands for "Dynamic Tonality Keyboard", is a simple web-based diatonic keyboard that allows an unexperienced musician as well as a music student to easily play and improvise, transiting between close and/or far tonalities, based on the current scale and played degrees, keeping musical logic.
Displayed as a piano's keyboard, the DTKeyboard can be played simply by pressing the 8 keys corresponding to the letters A,S,D,F,G,H,J,K or by pressing the corresponding button with a left-click of the mouse. It is possible to use the up and down arrow to switch between three different octaves.
By pressing the left and right arrow, it is possible to change between close tonalities, by jumps of fifth, and by pressing the shift
button it is possible to change between a major or minor tonality. In this way the player can easily move to the other tonalities in the table. The current tonality and the other ones are highlighted on a display, which also can be clicked to switch to the desired tonality.
It is also possible to change the scale or choose a mode, by using the menù located just beneath the table of tonalities. It is possible to choose the Ionian, Dorian, Phrygian, Lydian, Mixolydian, Aeolian, Locrian modes. Starting from a major tonality we can change between the Major, Blues and Pentatonic scales. Starting from a minor tonality we can change between the Natural, Harmonic, Melodic, Blues and Pentatonic scales.
DTKeyboard fully implements Surikov's WebAudioFont library, which allows to use MIDI sounds and to change the played instrument between Piano, Organ, Guitar, Violin and Sax. Through the special panels it is also possible to use some audio effects to improve the sound:
- Master Volume
- Reverberation
- Vibrato (two controllers for rate and depth)
- 10 band MIDI equalizer (it is possible to control the gain of each band)
Each effect can be controlled by a specific knob or slider
When one or multiple notes are being played, the tonality table verifies them and highlights in red the tonalities whose scales may contain all such notes. Also, the most probable tonalities are highlighted in orange if the played notes are either its tonic, mediant or dominant. If a triad is played, the corresponding tonality is so recognized, as well as its nearest ones, allowing the player to easily modulate between tonalities which share that particular triad chord.
DTKeyboard supports the connection of a MIDI controller, which can be player with all the features of the computer-based keyboard. It has the possibility to switch on and off the Dynamic Tonality function and has a special scale-function which, if enbaled, allows to play exclusively the notes belonging to the selected tonality and scale, approximating the others to the right ones.
DTKeyboard comes with an audio player with a few preselected base-tracks, that allows the player to freely improvise with minimum effort or music knowledge, as the tonality is dynamically changed based on the song which is being played. The audio player works in this way: there is a timer (in seconds), which starts when the play button is clicked, and when it is equal to the time of the song in which there is a tonality change, DTKeboard will change the tonality and the player can go on playing in the correct way. When the pause button is clicked, the timer is saved and when the player clicks again on the play button, the timer goes on starting from the saved value. When the the stop, next, previous buttons are clicked, the timer is set to 0. There is also a metronome, with a tap function, as a support for the player improvisation.
Using Firebase, it is possible to play along with others. The player can join a base room, free to access, and play with others, sharing the same tonality and master volume. There is possibility to hear what the others are playing, each with his own selected instrument. It is also possible to create a personal room, accessible with a password, to play with just the users that know it. DTKeyboard supports also the connection of a mobile controller, so a person can easily control the tonality and the master volume of all players in a specific room.
- Matteo Manzolini matteo.manzolini@mail.polimi.it
- Alessandro Montali alessandro.montali@mail.polimi.it
- Davide Salvi davide1.salvi@mail.polimi.it
Copyright © 2018 by Matteo Manzolini, Alessandro Montali, Davide Salvi, Master's Students in Music and Acoustics Engineering c/o Politecnico di Milano