[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [gcompris/gsoc_aman_piano_activities] src/activities/piano_composition: piano_composition,
From:       Aman Kumar Gupta <null () kde ! org>
Date:       2018-05-21 15:41:59
Message-ID: E1fKmwh-0005jF-GW () code ! kde ! org
[Download RAW message or body]

Git commit f2eb0eb9f98bdaeaf25a662670e3eca6353ccd7e by Aman Kumar Gupta.
Committed on 21/05/2018 at 15:32.
Pushed by amankumargupta into branch 'gsoc_aman_piano_activities'.

piano_composition, 1. Rework code base according to new note notation.
    2. Add higher octaves and lower octaves as planned.
    3. Deleted old audio files.
    4. Added new svg images for notes with ledger lines.

M  +1    -1    src/activities/piano_composition/CMakeLists.txt
M  +82   -59   src/activities/piano_composition/MultipleStaff.qml
M  +27   -28   src/activities/piano_composition/Note.qml
A  +447  -0    src/activities/piano_composition/NoteNotations.js
M  +97   -23   src/activities/piano_composition/Piano.qml
M  +63   -34   src/activities/piano_composition/Piano_composition.qml
M  +32   -26   src/activities/piano_composition/Staff.qml
M  +34   -34   src/activities/piano_composition/melodies.js
M  +15   -0    src/activities/piano_composition/piano_composition.js
A  +199  -0    src/activities/piano_composition/resource/bassF4Eighth.svg
A  +182  -0    src/activities/piano_composition/resource/bassF4Half.svg
A  +199  -0    src/activities/piano_composition/resource/bassF4Quarter.svg
A  +213  -0    src/activities/piano_composition/resource/bassF4Whole.svg
A  +228  -0    src/activities/piano_composition/resource/bassG4Eighth.svg
A  +211  -0    src/activities/piano_composition/resource/bassG4Half.svg
A  +228  -0    src/activities/piano_composition/resource/bassG4Quarter.svg
A  +231  -0    src/activities/piano_composition/resource/bassG4Whole.svg
D  +-    --    src/activities/piano_composition/resource/bass_pitches/1/-1.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/1/-2.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/1/-3.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/1/-4.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/1/-5.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/1/1.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/1/2.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/1/3.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/1/4.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/1/5.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/1/6.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/1/7.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/1/8.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/2/-1.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/2/-2.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/2/-3.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/2/-4.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/2/-5.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/2/1.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/2/2.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/2/3.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/2/4.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/2/5.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/2/6.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/2/7.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/2/8.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/4/-1.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/4/-2.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/4/-3.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/4/-4.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/4/-5.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/4/1.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/4/2.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/4/3.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/4/4.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/4/5.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/4/6.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/4/7.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/4/8.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/8/-1.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/8/-2.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/8/-3.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/8/-4.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/8/-5.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/8/1.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/8/2.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/8/3.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/8/4.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/8/5.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/8/6.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/8/7.wav
D  +-    --    src/activities/piano_composition/resource/bass_pitches/8/8.wav
R  +0    -0    src/activities/piano_composition/resource/genericNoteEighth.svg [from: \
src/activities/piano_composition/resource/eighth-note.svg - 100% similarity] R  +0    \
-0    src/activities/piano_composition/resource/genericNoteHalf.svg [from: \
src/activities/piano_composition/resource/half-note.svg - 100% similarity] R  +0    \
-0    src/activities/piano_composition/resource/genericNoteQuarter.svg [from: \
src/activities/piano_composition/resource/quarter-note.svg - 100% similarity] C  +0   \
-0    src/activities/piano_composition/resource/genericNoteWhole.svg [from: \
src/activities/piano_composition/resource/whole-note.svg - 100% similarity] A  +199  \
-0    src/activities/piano_composition/resource/trebleA3Eighth.svg A  +182  -0    \
src/activities/piano_composition/resource/trebleA3Half.svg A  +199  -0    \
src/activities/piano_composition/resource/trebleA3Quarter.svg C  +82   -10   \
src/activities/piano_composition/resource/trebleA3Whole.svg [from: \
src/activities/piano_composition/resource/whole-note.svg - 050% similarity] A  +184  \
-0    src/activities/piano_composition/resource/trebleB3Eighth.svg A  +167  -0    \
src/activities/piano_composition/resource/trebleB3Half.svg A  +184  -0    \
src/activities/piano_composition/resource/trebleB3Quarter.svg C  +53   -10   \
src/activities/piano_composition/resource/trebleB3Whole.svg [from: \
src/activities/piano_composition/resource/whole-note.svg - 062% similarity] A  +170  \
-0    src/activities/piano_composition/resource/trebleC4Eighth.svg A  +153  -0    \
src/activities/piano_composition/resource/trebleC4Half.svg A  +170  -0    \
src/activities/piano_composition/resource/trebleC4Quarter.svg R  +51   -8    \
src/activities/piano_composition/resource/trebleC4Whole.svg [from: \
src/activities/piano_composition/resource/whole-note.svg - 063% similarity] D  +-    \
--    src/activities/piano_composition/resource/treble_pitches/1/-1.wav D  +-    --   \
src/activities/piano_composition/resource/treble_pitches/1/-2.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/-3.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/-4.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/-5.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/1.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/10.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/11.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/2.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/3.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/4.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/5.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/6.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/7.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/8.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/1/9.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/-1.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/-2.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/-3.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/-4.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/-5.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/1.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/10.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/11.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/2.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/3.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/4.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/5.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/6.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/7.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/8.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/2/9.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/-1.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/-2.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/-3.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/-4.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/-5.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/-6.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/1.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/10.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/11.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/2.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/3.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/4.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/5.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/6.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/7.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/8.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/4/9.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/-1.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/-2.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/-3.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/-4.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/-5.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/-6.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/1.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/10.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/11.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/2.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/3.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/4.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/5.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/6.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/7.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/8.wav D  +-    --    \
src/activities/piano_composition/resource/treble_pitches/8/9.wav

https://commits.kde.org/gcompris/f2eb0eb9f98bdaeaf25a662670e3eca6353ccd7e

diff --git a/src/activities/piano_composition/CMakeLists.txt \
b/src/activities/piano_composition/CMakeLists.txt index 07baa872..93807790 100644
--- a/src/activities/piano_composition/CMakeLists.txt
+++ b/src/activities/piano_composition/CMakeLists.txt
@@ -1 +1 @@
-GCOMPRIS_ADD_RCC(activities/piano_composition *.qml *.svg *.js resource/*.* \
resource/*/*/*) +GCOMPRIS_ADD_RCC(activities/piano_composition *.qml *.svg *.js \
                resource/*.* resource/*/*)
diff --git a/src/activities/piano_composition/MultipleStaff.qml \
b/src/activities/piano_composition/MultipleStaff.qml index 8eac0729..0432eafa 100644
--- a/src/activities/piano_composition/MultipleStaff.qml
+++ b/src/activities/piano_composition/MultipleStaff.qml
@@ -29,7 +29,7 @@ Item {
 
     property int nbStaves
     property string clef
-    property int distanceBetweenStaff: multipleStaff.height / 8
+    property int distanceBetweenStaff: multipleStaff.height / 4
 
     property int currentStaff: 0
 
@@ -45,14 +45,14 @@ Item {
         id: flickableStaves
         flickableDirection: Flickable.VerticalFlick
         contentWidth: staffColumn.width
-        contentHeight: staffColumn.height + multipleStaff.height / 7
+        contentHeight: staffColumn.height + 1.5 * distanceBetweenStaff
         anchors.fill: parent
         clip: true
         Column {
             id: staffColumn
             spacing: distanceBetweenStaff
             anchors.top: parent.top
-            anchors.topMargin: multipleStaff.height / 14
+            anchors.topMargin: multipleStaff.height / 14 + distanceBetweenStaff / 2
             Repeater {
                 id: staves
                 model: nbStaves
@@ -71,7 +71,7 @@ Item {
         }
     }
 
-    function addNote(newValue_, newType_, newBlackType_, highlightWhenPlayed_) {
+    function addNote(noteName, noteType, highlightWhenPlayed, playAudio) {
         if(staves.itemAt(currentStaff).notes.count > nbMaxNotesPerStaff) {
             if(currentStaff + 1 >= nbStaves) {
                 var melody = getAllNotes()
@@ -83,44 +83,55 @@ Item {
             currentStaff++
         }
 
-        staves.itemAt(currentStaff).addNote(newValue_, newType_, newBlackType_, \
highlightWhenPlayed_); +        staves.itemAt(currentStaff).addNote(noteName, \
noteType, highlightWhenPlayed) +        if(playAudio)
+            playNoteAudio(noteName, noteType)
     }
 
-    function play() {
-        musicTimer.currentPlayedStaff = 0;
-        musicTimer.currentNote = 0;
-        musicTimer.interval = 500
-        for(var v = 1 ; v < currentStaff ; ++ v)
-            staves.itemAt(v).showMetronome = false;
-        // Only display metronome if we want to
-        staves.itemAt(0).showMetronome = isMetronomeDisplayed;
+    function playNoteAudio(noteName, noteLength) {
+        var audioPitchType
+        // We should find a corresponding b type enharmonic notation for # type note \
to play the audio. +        if(noteName[1] === "#") {
+            var pianoBlackKeysFlat
+            var pianoBlackKeysSharp
+            if(background.clefType === "treble") {
+                pianoBlackKeysFlat = piano.blackNotesFlatTreble
+                pianoBlackKeysSharp = piano.blackNotesSharpTreble
+            }
+            else {
+                pianoBlackKeysFlat = piano.blackNotesFlatBass
+                pianoBlackKeysSharp = piano.blackNotesSharpBass
+            }
 
-        musicTimer.start();
-    }
+            for(var i = 0; i < pianoBlackKeysSharp.length; i++) {
+                for(var j = 0; j < pianoBlackKeysSharp[i].length; j++) {
+                    if(pianoBlackKeysSharp[i][j][0] === noteName) {
+                        noteName = pianoBlackKeysFlat[i][j][0]
+                    }
+                }
+            }
 
-    function eraseAllNotes() {
-        for(var v = 0 ; v <= currentStaff ; ++ v)
-            staves.itemAt(v).eraseAllNotes();
-        currentStaff = 0;
+            audioPitchType = parseInt(noteName[2])
+        }
+        else if(noteName[1] === "b")
+            audioPitchType = parseInt(noteName[2])
+        else
+            audioPitchType = parseInt(noteName[1])
+
+        if(audioPitchType > 3)
+            audioPitchType = "treble"
+        else
+            audioPitchType = "bass"
+        var noteToPlay = "qrc:/gcompris/src/activities/piano_composition/resource/" \
+ audioPitchType + "_pitches/" + noteName + ".wav" +        \
items.audioEffects.play(noteToPlay)  }
 
-    readonly property var whiteNotes: ["C", "D", "E", "F", "G", "A", "B", "2C", \
                "2D", "2E", "2F"]
-    readonly property var blackNotesSharp: ["C#", "D#", "F#", "G#", "A#", "2C#"]
-    readonly property var blackNotesFlat: ["DB", "EB", "GB", "AB", "BB"]
-
     function getAllNotes() {
         var melody = "" + multipleStaff.clef
         for(var i = 0; i < nbStaves; i ++) {
             var staveNotes = staves.itemAt(i).notes
             for(var j = 0; j < staveNotes.count; j++) {
-                var noteValue = staveNotes.get(j).mValue
-                if(noteValue > 0)
-                    melody = melody + " " + whiteNotes[noteValue - 1]
-                else if(staveNotes.get(j).mBlackType === "sharp")
-                    melody = melody + " " + blackNotesSharp[Math.abs(noteValue) - 1]
-                else
-                    melody = melody + " " + blackNotesFlat[Math.abs(noteValue) - 1]
-                melody = melody + staveNotes.get(j).mType
+                melody +=  " " + staveNotes.get(j).noteName_ + \
staveNotes.get(j).noteType_  }
         }
         return melody
@@ -132,55 +143,67 @@ Item {
         multipleStaff.clef = melody[0];
         for(var i = 1 ; i < melody.length ; ++ i) {
             var noteLength = melody[i].length;
-            var type = parseInt(melody[i][noteLength - 1]);
-            var noteStr = melody[i].substr(0, noteLength - 1).toUpperCase();
-
-            if(whiteNotes.indexOf(noteStr) != -1)
-                addNote("" + (whiteNotes.indexOf(noteStr) + 1), type, "", false);
-            else if (blackNotesSharp.indexOf(melody[i][0]) != -1) {
-                addNote("" + (-1 * blackNotesSharp.indexOf(noteStr) - 1), type, \
"sharp", false); +            var noteName = melody[i][0]
+            var noteType
+            if(melody[i][1] === "#" || melody[i][1] === "b") {
+                noteType = melody[i].substring(3, melody[i].length)
+                noteName += melody[i][1] + melody[i][2];
             }
             else {
-                addNote("" + (-1 * blackNotesFlat.indexOf(noteStr) - 1), type, \
"flat", false); +                noteType = melody[i].substring(2, melody[i].length)
+                noteName += melody[i][1]
             }
+
+            addNote(noteName, noteType, false, false)
         }
     }
 
+    function eraseAllNotes() {
+        for(var v = 0 ; v <= currentStaff ; ++ v)
+            staves.itemAt(v).eraseAllNotes();
+        currentStaff = 0;
+    }
+
+    function play() {
+        musicTimer.currentPlayedStaff = 0
+        musicTimer.currentNote = 0
+        musicTimer.interval = 500
+        for(var v = 1 ; v < currentStaff ; ++ v)
+            staves.itemAt(v).showMetronome = false
+        // Only display metronome if we want to
+        staves.itemAt(0).showMetronome = isMetronomeDisplayed
+
+        musicTimer.start()
+    }
+
     Timer {
         id: musicTimer
         property int currentPlayedStaff: 0
         property int currentNote: 0
         onRunningChanged: {
-            if(!running && staves.itemAt(currentPlayedStaff).notes.get(currentNote) \
                !== undefined) {
-                var currentType = \
                staves.itemAt(currentPlayedStaff).notes.get(currentNote).mType
-                var note = \
staves.itemAt(currentPlayedStaff).notes.get(currentNote).mValue +            \
if(!running && staves.itemAt(currentPlayedStaff) != undefined && \
staves.itemAt(currentPlayedStaff).notes.get(currentNote) !== undefined) { +           \
var currentType = staves.itemAt(currentPlayedStaff).notes.get(currentNote).noteType_ \
+                var note = \
staves.itemAt(currentPlayedStaff).notes.get(currentNote).noteName_  
-                // TODO some notes does not play if they are played in the rcc \
                directly...
-                var noteToPlay = \
'qrc:/gcompris/src/activities/piano_composition/resource/' + multipleStaff.clef + \
'_pitches/' + currentType + '/' + note + '.wav'; +                playNoteAudio(note, \
currentType)  
                 if(currentNote == 0) {
                     staves.itemAt(currentPlayedStaff).initMetronome();
                 }
-//                 musicTimer.interval = \
                staves.itemAt(currentPlayedStaff).notes.get(currentNote).mDuration;
-                if(staves.itemAt(currentPlayedStaff).notes.get(currentNote) !== \
                undefined) {
-                    musicTimer.interval = \
                staves.itemAt(currentPlayedStaff).notes.get(currentNote).mDuration;
-                    items.audioEffects.play(noteToPlay);
-                    print("will play next " + \
                JSON.stringify(staves.itemAt(currentPlayedStaff).notes.get(currentNote)));
                
-                    \
                staves.itemAt(currentPlayedStaff).notesRepeater.itemAt(currentNote).play()
                
-                    currentNote ++;
-                }
+                musicTimer.interval = \
staves.itemAt(currentPlayedStaff).notes.get(currentNote).mDuration +                \
staves.itemAt(currentPlayedStaff).notesRepeater.itemAt(currentNote).play() +          \
currentNote ++  if(currentNote > nbMaxNotesPerStaff) {
-                    currentNote = 0;
-                    currentPlayedStaff ++;
+                    currentNote = 0
+                    currentPlayedStaff ++
                     if(currentPlayedStaff < nbStaves && currentNote < \
                staves.itemAt(currentPlayedStaff).notes.count) {
-                        print("play next staff");
-                        staves.itemAt(currentPlayedStaff).showMetronome = \
isMetronomeDisplayed; +                        \
staves.itemAt(currentPlayedStaff).showMetronome = isMetronomeDisplayed  \
                if(currentPlayedStaff > 0)
-                            staves.itemAt(currentPlayedStaff - 1).showMetronome = \
                false;
-                        staves.itemAt(currentPlayedStaff).playNote(currentNote);
+                            staves.itemAt(currentPlayedStaff - 1).showMetronome = \
false +                        \
staves.itemAt(currentPlayedStaff).playNote(currentNote)  }
                 }
-                    musicTimer.start()
+                musicTimer.start()
             }
         }
     }
diff --git a/src/activities/piano_composition/Note.qml \
b/src/activities/piano_composition/Note.qml index 5c1e8686..ef19cefb 100644
--- a/src/activities/piano_composition/Note.qml
+++ b/src/activities/piano_composition/Note.qml
@@ -27,49 +27,45 @@ import "../../core"
 
 Item {
     id: note
-    property string value
+    property string noteName
     property bool noteIsColored: true
-    property int type: wholeNote
-    property string noteType: type == wholeNote ? "whole" :
-                              type == halfNote ? "half" :
-                              type == quarterNote ? "quarter" : 
-                              type == eighthNote ? "eighth" : ""
-    property string blackType: "" // empty, "flat" or "sharp"
+    property string noteType
+    property string blackType: noteName[1] === "#" ? "sharp"
+                               : noteName[1] === "b" ? "flat" : ""// empty, "flat" \
or "sharp"  
-    //width: noteImage.width
-    //height: noteImage.height
+    readonly property string length: noteType == "Whole" ? 1 :
+                                     noteType == "Half"  ? 2 :
+                                     noteType == "Quarter" ? 4 :
+                                     noteType == 8
 
-    readonly property int wholeNote: 1
-    readonly property int halfNote: 2
-    readonly property int quarterNote: 4
-    readonly property int eighthNote: 8
+    readonly property int noteDuration: 2000 / length
 
-    readonly property int noteDuration: 2000 / type
-
-    property var noteColorMap: { "1": "#FF0000", "2": "#FF7F00", "3": "#FFFF00",
-        "4": "#32CD32", "5": "#6495ED", "6": "#D02090", "7": "#FF1493", "8": \
"#FF0000", "9": "#FF7F00", "10": "#FFFF00", "11": "#32CD32", +    readonly property \
var noteColorMap: { "1": "#FF0000", "2": "#FF7F00", "3": "#FFFF00", +        "4": \
                "#32CD32", "5": "#6495ED", "6": "#D02090", "7": "#FF1493", "8": \
                "#FF0000",
         "-1": "#FF6347", "-2": "#FFD700", "-3": "#20B2AA", "-4": "#8A2BE2",
         "-5": "#FF00FF" }
 
-    property var whiteNoteName: { "1": qsTr("C"), "2": qsTr("D"), "3": qsTr("E"),
-        "4": qsTr("F"), "5": qsTr("G"), "6": qsTr("A"), "7": qsTr("B"), "8": \
                qsTr("C") }
-    property var blackNoteName: blackType == "flat" ? flatNoteName : sharpNoteName
+    readonly property var whiteNoteName: { "C": "1", "D": "2", "E": "3", "F": "4", \
"G": "5", "A": "6", "B": "7", "C": "8" }  
-    property var sharpNoteName: { "-1": qsTr("C#"), "-2": qsTr("D#"), "-3": \
                qsTr("F#"), "-4": qsTr("G#"),
-                                  "-5": qsTr("A#")}
-    property var flatNoteName: { "-1": qsTr("Db"), "-2": qsTr("Eb"), "-3": \
                qsTr("Gb"), "-4": qsTr("Ab"),
-                                  "-5": qsTr("Bb")}
+    readonly property var sharpNoteName: { "C#": "-1", "D#": "-2", "F#": "-3", "G#": \
"-4", "A#": "-5" } +    readonly property var flatNoteName: { "Db": "-1", "Eb": "-2", \
"Gb": "-3", "Ab": "-4", "Bb": "-5" } +    readonly property var blackNoteName: \
blackType == "" ? blackType : +                                blackType == "flat" ? \
flatNoteName : sharpNoteName  
     property bool highlightWhenPlayed: false
     property alias highlightTimer: highlightTimer
 
+    property var noteDetails
+
     Image {
         id: blackTypeImage
         source: blackType !== "" ? \
"qrc:/gcompris/src/activities/piano_composition/resource/black" + blackType + ".svg" \
                : ""
-        visible: value[0] === '-'
         sourceSize.width: noteImage.width / 2.5
-        anchors.right: noteImage.left
+        anchors.right: parent.rotation === 180 ? undefined : noteImage.left
+        anchors.left: parent.rotation === 180 ? noteImage.right : undefined
+        rotation: parent.rotation === 180 ? 180 : 0
         anchors.rightMargin: -width / 2
+        anchors.leftMargin: -width
         anchors.bottom: noteImage.bottom
         anchors.bottomMargin: height / 2
         fillMode: Image.PreserveAspectFit
@@ -97,7 +93,7 @@ Item {
 
     Image {
         id: noteImage
-        source: "qrc:/gcompris/src/activities/piano_composition/resource/" + \
noteType + "-note.svg" +        source: \
"qrc:/gcompris/src/activities/piano_composition/resource/" + noteDetails.imageName + \
noteType + ".svg"  sourceSize.width: 200
         width: note.width
         height: note.height
@@ -107,7 +103,10 @@ Item {
     ColorOverlay {
         anchors.fill: noteImage
         source: noteImage
-        color: noteColorMap[value]  // make image like it lays under red glass 
+
+        readonly property int noteColorNumber: blackType == "" ? \
whiteNoteName[noteName[0]] : blackNoteName[noteName.substring(0,2)] +
+        color: noteColorMap[noteColorNumber]  // make image like it lays under red \
glass  visible: noteIsColored
     }
 
diff --git a/src/activities/piano_composition/NoteNotations.js \
b/src/activities/piano_composition/NoteNotations.js new file mode 100644
index 00000000..b7f9edf1
--- /dev/null
+++ b/src/activities/piano_composition/NoteNotations.js
@@ -0,0 +1,447 @@
+/* GCompris - NoteNotations.js
+ *
+ * Copyright (C) 2016 Aman Kumar Gupta <gupta2140@gmail.com>
+ *
+ * Authors:
+ *   Beth Hadley <bethmhadley@gmail.com> (GTK+ version)
+ *   Johnny Jazeix <jazeix@gmail.com> (Qt Quick port)
+ *   Aman Kumar Gupta <gupta2140@gmail.com> (Qt Quick port)
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 3 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, see <http://www.gnu.org/licenses/>.
+ **/
+
+function get() {
+    return [
+                {
+                    "noteName": "TrebleG3",
+                    "imageName": "bassF4",
+                    "rotation": 0,
+                    "positonOnStaff": 7.5
+                },
+                {
+                    "noteName": "TrebleG#3",
+                    "imageName": "bassF4",
+                    "rotation": 0,
+                    "positonOnStaff": 7.5
+                },
+                {
+                    "noteName": "TrebleA3",
+                    "imageName": "trebleA3",
+                    "rotation": 0,
+                    "positonOnStaff": 7
+                },
+                {
+                    "noteName": "TrebleA#3",
+                    "imageName": "trebleA3",
+                    "rotation": 0,
+                    "positonOnStaff": 7
+                },
+                {
+                    "noteName": "TrebleAb3",
+                    "imageName": "trebleA3",
+                    "rotation": 0,
+                    "positonOnStaff": 7
+                },
+                {
+                    "noteName": "TrebleB3",
+                    "imageName": "trebleB3",
+                    "rotation": 0,
+                    "positonOnStaff": 6.5
+                },
+                {
+                    "noteName": "TrebleBb3",
+                    "imageName": "trebleB3",
+                    "rotation": 0,
+                    "positonOnStaff": 6.5
+                },
+                {
+                    "noteName": "TrebleC4",
+                    "imageName": "trebleC4",
+                    "rotation": 0,
+                    "positonOnStaff": 6
+                },
+                {
+                    "noteName": "TrebleC#4",
+                    "imageName": "trebleC4",
+                    "rotation": 0,
+                    "positonOnStaff": 6
+                },
+                {
+                    "noteName": "TrebleDb4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 5.5
+                },
+                {
+                    "noteName": "TrebleD4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 5.5
+                },
+                {
+                    "noteName": "TrebleD#4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 5.5
+                },
+                {
+                    "noteName": "TrebleEb4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 5
+                },
+                {
+                    "noteName": "TrebleE4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 5
+                },
+                {
+                    "noteName": "TrebleF4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 4.5
+                },
+                {
+                    "noteName": "TrebleF#4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 4.5
+                },
+                {
+                    "noteName": "TrebleG4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 4
+                },
+                {
+                    "noteName": "TrebleGb4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 4
+                },
+                {
+                    "noteName": "TrebleG#4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 4
+                },
+                {
+                    "noteName": "TrebleAb4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 3.5
+                },
+                {
+                    "noteName": "TrebleA4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 3.5
+                },
+                {
+                    "noteName": "TrebleA#4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 3.5
+                },
+                {
+                    "noteName": "TrebleBb4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 3
+                },
+                {
+                    "noteName": "TrebleB4",
+                    "imageName": "genericNote",
+                    "rotation": 0,
+                    "positonOnStaff": 3
+                },
+                {
+                    "noteName": "TrebleC5",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 2.5
+                },
+                {
+                    "noteName": "TrebleC#5",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 2.5
+                },
+                {
+                    "noteName": "TrebleDb5",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 2
+                },
+                {
+                    "noteName": "TrebleD5",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 2
+                },
+                {
+                    "noteName": "TrebleD#5",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 2
+                },
+                {
+                    "noteName": "TrebleEb5",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 1.5
+                },
+                {
+                    "noteName": "TrebleE5",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 1.5
+                },
+                {
+                    "noteName": "TrebleF5",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 1
+                },
+                {
+                    "noteName": "TrebleF#5",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 1
+                },
+                {
+                    "noteName": "TrebleG5",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 0.5
+                },
+                {
+                    "noteName": "TrebleGb5",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 0.5
+                },
+                {
+                    "noteName": "TrebleG#5",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 0.5
+                },
+                {
+                    "noteName": "TrebleAb5",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 0
+                },
+                {
+                    "noteName": "TrebleA5",
+                    "imageName": "trebleC4",
+                    "rotation": 180,
+                    "positonOnStaff": 0
+                },
+                {
+                    "noteName": "TrebleA#5",
+                    "imageName": "trebleC4",
+                    "rotation": 180,
+                    "positonOnStaff": 0
+                },
+                {
+                    "noteName": "TrebleBb5",
+                    "imageName": "trebleB3",
+                    "rotation": 180,
+                    "positonOnStaff": -0.5
+                },
+                {
+                    "noteName": "TrebleB5",
+                    "imageName": "trebleB3",
+                    "rotation": 180,
+                    "positonOnStaff": -0.5
+                },
+                {
+                    "noteName": "TrebleC6",
+                    "imageName": "trebleA3",
+                    "rotation": 180,
+                    "positonOnStaff": -1
+                },
+                {
+                    "noteName": "BassC3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 3.5
+                },
+                {
+                    "noteName": "BassC#3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 3.5
+                },
+                {
+                    "noteName": "BassDb3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 3
+                },
+                {
+                    "noteName": "BassD3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 3
+                },
+                {
+                    "noteName": "BassD#3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 3
+                },
+                {
+                    "noteName": "BassEb3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 2.5
+                },
+                {
+                    "noteName": "BassE3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 2.5
+                },
+                {
+                    "noteName": "BassF3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 2
+                },
+                {
+                    "noteName": "BassF#3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 2
+                },
+                {
+                    "noteName": "BassG3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 1.5
+                },
+                {
+                    "noteName": "BassGb3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 1.5
+                },
+                {
+                    "noteName": "BassG#3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 1.5
+                },
+                {
+                    "noteName": "BassAb3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 1
+                },
+                {
+                    "noteName": "BassA3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 1
+                },
+                {
+                    "noteName": "BassA#3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 1
+                },
+                {
+                    "noteName": "BassBb3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 0.5
+                },
+                {
+                    "noteName": "BassB3",
+                    "imageName": "genericNote",
+                    "rotation": 180,
+                    "positonOnStaff": 0.5
+                },
+                {
+                    "noteName": "BassC4",
+                    "imageName": "trebleC4",
+                    "rotation": 180,
+                    "positonOnStaff": 0
+                },
+                {
+                    "noteName": "BassC#4",
+                    "imageName": "trebleC4",
+                    "rotation": 180,
+                    "positonOnStaff": 0
+                },
+                {
+                    "noteName": "BassD4",
+                    "imageName": "trebleB3",
+                    "rotation": 180,
+                    "positonOnStaff": -0.5
+                },
+                {
+                    "noteName": "BassD#4",
+                    "imageName": "trebleB3",
+                    "rotation": 180,
+                    "positonOnStaff": -0.5
+                },
+                {
+                    "noteName": "BassDb4",
+                    "imageName": "trebleB3",
+                    "rotation": 180,
+                    "positonOnStaff": -0.5
+                },
+                {
+                    "noteName": "BassE4",
+                    "imageName": "trebleA3",
+                    "rotation": 180,
+                    "positonOnStaff": -1
+                },
+                {
+                    "noteName": "BassEb4",
+                    "imageName": "trebleA3",
+                    "rotation": 180,
+                    "positonOnStaff": -1
+                },
+                {
+                    "noteName": "BassF4",
+                    "imageName": "bassF4",
+                    "rotation": 180,
+                    "positonOnStaff": -1.5
+                },
+                {
+                    "noteName": "BassF#4",
+                    "imageName": "bassF4",
+                    "rotation": 180,
+                    "positonOnStaff": -1.5
+                },
+                {
+                    "noteName": "BassG4",
+                    "imageName": "bassG4",
+                    "rotation": 180,
+                    "positonOnStaff": -2
+                },
+                {
+                    "noteName": "BassGb4",
+                    "imageName": "bassG4",
+                    "rotation": 180,
+                    "positonOnStaff": -2
+                }
+    ]
+}
diff --git a/src/activities/piano_composition/Piano.qml \
b/src/activities/piano_composition/Piano.qml index 901f85e0..456945ff 100644
--- a/src/activities/piano_composition/Piano.qml
+++ b/src/activities/piano_composition/Piano.qml
@@ -26,31 +26,105 @@ import "../../core"
 
 Item {
     id: piano
-    //source: "qrc:/gcompris/src/activities/playpiano/resource/piano.svg"
-    //sourceSize.height: 200 * ApplicationInfo.ratio
     z: 3
 
     width: numberOfWhite * 23 // 23 is default width
     height: 120
+
+    property alias whiteKeyRepeater: whiteKeyRepeater
+    property alias blackKeyRepeater: blackKeyRepeater
+
     property int numberOfWhite: 8
+    property int currentOctaveNb: defaultOctaveNb
+    readonly property int defaultOctaveNb: background.clefType === "treble" ? 1 : 0
+    readonly property int maxNbOctaves: whiteNotes.length
+
+    onDefaultOctaveNbChanged: currentOctaveNb = defaultOctaveNb
 
-    property var blacks: [14.33, 41.67, 82.25, 108.25, 134.75] // / 8*23
     property int whiteWidth: width / numberOfWhite // 23
     property int whiteHeight: height // 120
     property int blackWidth: (whiteWidth + 1) / 2 // 13
     property int blackHeight: 2 * height / 3 // 80
 
-    property var whiteNotes: ["C", "D", "E", "F", "G", "A", "B", "C"]
-    property var blackNotesSharp: ["C#", "D#", "F#", "G#", "A#"]
-    property var blackNotesFlat: ["Db", "Eb", "Gb", "Ab", "Bb"]
-    // black note labels used, can be sharp or flat
-    property var blackNotes: useSharpNotation ? blackNotesSharp : blackNotesFlat
-
-    property var colorWhiteNotes: ["#FF0000", "#FF7F00", "#FFFF00", "#32CD32",
-    "#6495ED", "#D02090", "#FF1493", "#FF0000",
-    "#FF7F00", "#FFFF00", "#32CD32"]
-    property var colorBlackNotes: ["#FF6347", "#FFD700", "#20B2AA", "#8A2BE2",
-    "#FF00FF", "#FF6347"]
+    // White key notes are form C3 to G4 when the clef is bass
+    readonly property var whiteNotesBass: [
+        [["C3", qsTr("C%1").arg(3)], ["D3", qsTr("D%1").arg(3)], ["E3", \
qsTr("E%1").arg(3)], ["F3", qsTr("F%1").arg(3)], ["G3", qsTr("G%1").arg(3)], ["A3", \
qsTr("A%1").arg(3)], ["B3", qsTr("B%1").arg(3)], ["C4", qsTr("C%1").arg(4)]], +       \
[["G3", qsTr("G%1").arg(3)], ["A3", qsTr("A%1").arg(3)], ["B3", qsTr("B%1").arg(3)], \
["C4", qsTr("C%1").arg(4)], ["D4", qsTr("D%1").arg(4)], ["E4", qsTr("E%1").arg(4)], \
["F4", qsTr("F%1").arg(4)], ["G4", qsTr("G%1").arg(4)]] +    ]
+    // White key notes are form G3 to C6 when the clef is treble
+    readonly property var whiteNotesTreble: [
+        [["G3", qsTr("G%1").arg(3)], ["A3", qsTr("A%1").arg(3)], ["B3", \
qsTr("B%1").arg(3)], ["C4", qsTr("C%1").arg(4)], ["D4", qsTr("D%1").arg(4)], ["E4", \
qsTr("E%1").arg(4)], ["F4", qsTr("F%1").arg(4)], ["G4", qsTr("G%1").arg(4)]], +       \
[["C4", qsTr("C%1").arg(4)], ["D4", qsTr("D%1").arg(4)], ["E4", qsTr("E%1").arg(4)], \
["F4", qsTr("F%1").arg(4)], ["G4", qsTr("G%1").arg(4)], ["A4", qsTr("A%1").arg(4)], \
["B4", qsTr("B%1").arg(4)], ["C5", qsTr("C%1").arg(5)]], +        [["C5", \
qsTr("C%1").arg(5)], ["D5", qsTr("D%1").arg(5)], ["E5", qsTr("E%1").arg(5)], ["F5", \
qsTr("F%1").arg(5)], ["G5", qsTr("G%1").arg(5)], ["A5", qsTr("A%1").arg(5)], ["B5", \
qsTr("B%1").arg(5)], ["C6", qsTr("C%1").arg(6)]] +    ]
+    readonly property var whiteNotes: background.clefType === "treble" ? \
whiteNotesTreble : whiteNotesBass +
+    // Sharp and flat black key notes when the clef is bass.
+    readonly property var blackNotesSharpBass: [
+        [["C#3", qsTr("C#%1").arg(3)], ["D#3", qsTr("D#%1").arg(3)], ["F#3", \
qsTr("F#%1").arg(3)], ["G#3", qsTr("G#%1").arg(3)], ["A#3", qsTr("A#%1").arg(3)]], +  \
[["G#3", qsTr("G#%1").arg(3)], ["A#3", qsTr("A#%1").arg(3)], ["C#4", \
qsTr("C#%1").arg(4)], ["D#4", qsTr("D#%1").arg(4)], ["F#4", qsTr("F#%1").arg(4)]] +   \
] +    readonly property var blackNotesFlatBass: [
+        [["Db3", qsTr("Db%1").arg(3)], ["Eb3", qsTr("Eb%1").arg(3)], ["Gb3", \
qsTr("Gb%1").arg(3)], ["Ab3", qsTr("Ab%1").arg(3)], ["Bb3", qsTr("Bb%1").arg(3)]], +  \
[["Ab3", qsTr("Ab%1").arg(3)], ["Bb3", qsTr("Bb%1").arg(3)], ["Db4", \
qsTr("Db%1").arg(4)], ["Eb4", qsTr("Eb%1").arg(4)], ["Gb4", qsTr("Gb%1").arg(4)]] +   \
] +    readonly property var blackNotesbass: useSharpNotation ? blackNotesSharpBass : \
blackNotesFlatBass +
+    // Sharp and flat black key notes when the clef is treble
+    readonly property var blackNotesSharpTreble: [
+        [["G#3", qsTr("G#%1").arg(3)], ["A#3", qsTr("A#%1").arg(3)], ["C#4", \
qsTr("C#%1").arg(4)], ["D#4", qsTr("D#%1").arg(4)], ["F#4", qsTr("F#%1").arg(4)]], +  \
[["C#4", qsTr("C#%1").arg(4)], ["D#4", qsTr("D#%1").arg(4)], ["F#4", \
qsTr("F#%1").arg(4)], ["G#4", qsTr("G#%1").arg(4)], ["A#4", qsTr("A#%1").arg(4)]], +  \
[["C#5", qsTr("C#%1").arg(5)], ["D#5", qsTr("D#%1").arg(5)], ["F#5", \
qsTr("F#%1").arg(5)], ["G#5", qsTr("G#%1").arg(5)], ["A#5", qsTr("A#%1").arg(5)]] +   \
] +    readonly property var blackNotesFlatTreble: [
+        [["Ab3", qsTr("Ab%1").arg(3)], ["Bb3", qsTr("Bb%1").arg(3)], ["Db4", \
qsTr("Db%1").arg(4)], ["Eb4", qsTr("Eb%1").arg(4)], ["Gb4", qsTr("Gb%1").arg(4)]], +  \
[["Db4", qsTr("Db%1").arg(4)], ["Eb4", qsTr("Eb%1").arg(4)], ["Gb4", \
qsTr("Gb%1").arg(4)], ["Ab4", qsTr("Ab%1").arg(4)], ["Bb4", qsTr("Bb%1").arg(4)]], +  \
[["Db5", qsTr("Db%1").arg(5)], ["Eb5", qsTr("Eb%1").arg(5)], ["Gb5", \
qsTr("Gb%1").arg(5)], ["Ab5", qsTr("Ab%1").arg(5)], ["Bb5", qsTr("Bb%1").arg(5)]] +   \
] +    readonly property var blackNotesTreble: useSharpNotation ? \
blackNotesSharpTreble : blackNotesFlatTreble +
+    // Black note labels used, can be sharp or flat
+    readonly property var blackNotes: background.clefType === "treble" ? \
blackNotesTreble : blackNotesbass +
+    // Positions of black keys when the clef is treble
+    readonly property var blacksTreble: [
+        [14.33, 41.67, 82.25, 108.25, 154],
+        [14.33, 41.67, 82.25, 108.25, 134.75],
+        [14.33, 41.67, 82.25, 108.25, 134.75]
+    ]
+    // Positions of black keys when the clef is bass
+    readonly property var blacksBass: [
+        [14.33, 41.67, 82.25, 108.25, 134.75],
+        [14.33, 41.67, 82.25, 108.25, 154],
+    ]
+    readonly property var blacks: background.clefType === "treble" ? blacksTreble : \
blacksBass +
+    // Color of white key labels when the clef is bass
+    readonly property var colorWhiteNotesBass: [
+        ["#FF0000", "#FF7F00", "#FFFF00", "#32CD32", "#6495ED", "#D02090", \
"#FF1493", "#FF0000"], +        ["#6495ED", "#D02090", "#FF1493", "#FF0000", \
"#FF7F00", "#FFFF00", "#32CD32", "#6495ED"], +    ]
+    // Color of white key labels when the clef is treble
+    readonly property var colorWhiteNotesTreble: [
+        ["#6495ED", "#D02090", "#FF1493", "#FF0000", "#FF7F00", "#FFFF00", \
"#32CD32", "#6495ED"], +        ["#FF0000", "#FF7F00", "#FFFF00", "#32CD32", \
"#6495ED", "#D02090", "#FF1493", "#FF0000"], +        ["#FF0000", "#FF7F00", \
"#FFFF00", "#32CD32", "#6495ED", "#D02090", "#FF1493", "#FF0000"] +    ]
+    readonly property var colorWhiteNotes: background.clefType === "treble" ? \
colorWhiteNotesTreble : colorWhiteNotesBass +
+    // Color of black key labels when the clef is bass
+    readonly property var colorBlackNotesBass: [
+        ["#FF6347", "#FFD700", "#20B2AA", "#8A2BE2", "#FF00FF"],
+        ["#8A2BE2", "#FF00FF", "#FF6347", "#FFD700", "#20B2AA"]
+    ]
+    // Color of black key labels when the clef is treble
+    readonly property var colorBlackNotesTreble: [
+        ["#8A2BE2", "#FF00FF", "#FF6347", "#FFD700", "#20B2AA"],
+        ["#FF6347", "#FFD700", "#20B2AA", "#8A2BE2", "#FF00FF"],
+        ["#FF6347", "#FFD700", "#20B2AA", "#8A2BE2", "#FF00FF"]
+    ]
+    readonly property var colorBlackNotes: background.clefType === "treble" ? \
colorBlackNotesTreble : colorBlackNotesBass +
     signal noteClicked(string note)
 
     property bool blackLabelsVisible: true
@@ -60,33 +134,33 @@ Item {
 
     Repeater {
         id: whiteKeyRepeater
-        model: whiteNotes.length
+        model: whiteNotes[currentOctaveNb].length
         PianoKey {
             color: "white"
             width: whiteWidth
             height: whiteHeight
             x: index * whiteWidth
             labelSquareSize: piano.labelSquareSize
-            noteColor: colorWhiteNotes[index]
-            keyName: whiteNotes[index]
+            noteColor: colorWhiteNotes[currentOctaveNb][index]
+            keyName: whiteNotes[currentOctaveNb][index][1]
             labelsVisible: whiteLabelsVisible
-            onKeyPressed: noteClicked(index + 1)
+            onKeyPressed: noteClicked(whiteNotes[currentOctaveNb][index][0])
         }
     }
 
     Repeater {
         id: blackKeyRepeater
-        model: blackNotes.length
+        model: Object.keys(blackNotes[currentOctaveNb]).length
         PianoKey {
             color: "black"
             width: blackWidth
             height: blackHeight
-            x: blacks[index] * piano.width / 184
+            x: blacks[currentOctaveNb][index] * piano.width / 184
             labelSquareSize: piano.labelSquareSize
-            noteColor: colorBlackNotes[index]
-            keyName: blackNotes[index]
+            noteColor: colorBlackNotes[currentOctaveNb][index]
+            keyName: blackNotes[currentOctaveNb][index][1]
             labelsVisible: blackLabelsVisible
-            onKeyPressed: noteClicked(-index - 1)
+            onKeyPressed: noteClicked(blackNotes[currentOctaveNb][index][0])
         }
     }
 }
diff --git a/src/activities/piano_composition/Piano_composition.qml \
b/src/activities/piano_composition/Piano_composition.qml index fe2c2b28..6bc92161 \
                100644
--- a/src/activities/piano_composition/Piano_composition.qml
+++ b/src/activities/piano_composition/Piano_composition.qml
@@ -49,43 +49,43 @@ ActivityBase {
 
         Keys.onPressed: {
             if(event.key === Qt.Key_1) {
-                playNote('1')
+                piano.whiteKeyRepeater.itemAt(0).keyPressed()
             }
             if(event.key === Qt.Key_2) {
-                playNote('2')
+                piano.whiteKeyRepeater.itemAt(1).keyPressed()
             }
             if(event.key === Qt.Key_3) {
-                playNote('3')
+                piano.whiteKeyRepeater.itemAt(2).keyPressed()
             }
             if(event.key === Qt.Key_4) {
-                playNote('4')
+                piano.whiteKeyRepeater.itemAt(3).keyPressed()
             }
             if(event.key === Qt.Key_5) {
-                playNote('5')
+                piano.whiteKeyRepeater.itemAt(4).keyPressed()
             }
             if(event.key === Qt.Key_6) {
-                playNote('6')
+                piano.whiteKeyRepeater.itemAt(5).keyPressed()
             }
             if(event.key === Qt.Key_7) {
-                playNote('7')
+                piano.whiteKeyRepeater.itemAt(6).keyPressed()
             }
             if(event.key === Qt.Key_8) {
-                playNote('8')
+                piano.whiteKeyRepeater.itemAt(7).keyPressed()
             }
             if(event.key === Qt.Key_F1 && bar.level >= 4) {
-                playNote('-1')
+                piano.blackKeyRepeater.itemAt(0).keyPressed()
             }
             if(event.key === Qt.Key_F2 && bar.level >= 4) {
-                playNote('-2')
+                piano.blackKeyRepeater.itemAt(1).keyPressed()
             }
             if(event.key === Qt.Key_F3 && bar.level >= 4) {
-                playNote('-3')
+                piano.blackKeyRepeater.itemAt(2).keyPressed()
             }
             if(event.key === Qt.Key_F4 && bar.level >= 4) {
-                playNote('-4')
+                piano.blackKeyRepeater.itemAt(3).keyPressed()
             }
             if(event.key === Qt.Key_F5 && bar.level >= 4) {
-                playNote('-5')
+                piano.blackKeyRepeater.itemAt(4).keyPressed()
             }
             if(event.key === Qt.Key_Delete) {
                 multipleStaff.eraseAllNotes()
@@ -95,9 +95,6 @@ ActivityBase {
             }
         }
 
-        function playNote(note) {
-            piano.noteClicked(note)
-        }
         // Add here the QML items you need to access in javascript
         QtObject {
             id: items
@@ -110,12 +107,13 @@ ActivityBase {
             property string staffLength: "short"
             property alias melodyList: melodyList
             property alias file: file
+            property alias piano: piano
         }
 
         onStart: { Activity.start(items) }
         onStop: { Activity.stop() }
 
-        property int currentType: 1
+        property string currentType: "Whole"
         property string clefType: bar.level == 2 ? "bass" : "treble"
 
         File {
@@ -162,7 +160,7 @@ ActivityBase {
             id: multipleStaff
             width: horizontalLayout ? parent.width * 0.50 : parent.width * 0.8
             height: horizontalLayout ? parent.height * 0.58 : parent.height * 0.3
-            nbStaves: 3
+            nbStaves: 2
             clef: clefType
             nbMaxNotesPerStaff: 8
             noteIsColored: true
@@ -175,6 +173,7 @@ ActivityBase {
         }
 
         GCButtonScroll {
+            id: multipleStaffFlickButton
             anchors.right: parent.right
             anchors.rightMargin: 5 * ApplicationInfo.ratio
             anchors.verticalCenter: multipleStaff.verticalCenter
@@ -188,22 +187,52 @@ ActivityBase {
 
         Piano {
             id: piano
-            width: horizontalLayout ? parent.width * 0.4 : parent.width * 0.7
-            height: horizontalLayout ? parent.height * 0.45 : parent.width * 0.26
+            width: horizontalLayout ? parent.width * 0.34 : parent.width * 0.7
+            height: horizontalLayout ? parent.height * 0.40 : parent.width * 0.26
             anchors.horizontalCenter: horizontalLayout ? undefined : \
parent.horizontalCenter  anchors.left: horizontalLayout ? parent.left : undefined
-            anchors.leftMargin: parent.width * 0.03
-            anchors.top: horizontalLayout ? optionsRow.bottom : multipleStaff.bottom
-            anchors.topMargin: parent.height * 0.05
+            anchors.leftMargin: parent.width * 0.04
+            anchors.top: horizontalLayout ? multipleStaff.top : multipleStaff.bottom
+            anchors.topMargin: horizontalLayout ? parent.height * 0.08 : \
                parent.height * 0.025
             blackLabelsVisible: [4, 5, 6, 7, 8].indexOf(items.bar.level) == -1 ? \
false : true  useSharpNotation: bar.level == 5 ? false : true
-            onNoteClicked: {
-                var blackType = ""
-                if(note < 0)
-                    blackType = piano.useSharpNotation ? "sharp" : "flat"
-                multipleStaff.addNote(note, currentType, blackType, false)
-                var noteToPlay = \
'qrc:/gcompris/src/activities/piano_composition/resource/' + clefType + '_pitches/' + \
                currentType + '/' + note + '.wav';
-                items.audioEffects.play(noteToPlay)
+            onNoteClicked: multipleStaff.addNote(note, currentType, false, true)
+        }
+
+        Image {
+            id: shiftKeyboardLeft
+            source: "qrc:/gcompris/src/core/resource/bar_next.svg"
+            sourceSize.width: piano.width / 7
+            width: sourceSize.width
+            height: width
+            fillMode: Image.PreserveAspectFit
+            rotation: 180
+            visible: piano.currentOctaveNb > 0
+            anchors {
+                verticalCenter: piano.verticalCenter
+                right: piano.left
+            }
+            MouseArea {
+                anchors.fill: parent
+                onClicked: piano.currentOctaveNb--
+            }
+        }
+
+        Image {
+            id: shiftKeyboardRight
+            source: "qrc:/gcompris/src/core/resource/bar_next.svg"
+            sourceSize.width: piano.width / 7
+            width: sourceSize.width
+            height: width
+            fillMode: Image.PreserveAspectFit
+            visible: piano.currentOctaveNb < piano.maxNbOctaves - 1
+            anchors {
+                verticalCenter: piano.verticalCenter
+                left: piano.right
+            }
+            MouseArea {
+                anchors.fill: parent
+                onClicked: piano.currentOctaveNb++
             }
         }
 
@@ -214,15 +243,14 @@ ActivityBase {
             spacing: 15
             anchors.horizontalCenter: parent.horizontalCenter
 
-            readonly property var noteTypes: [1, 2, 4, 8]
-            readonly property var noteLengthName: ["whole-note", "half-note", \
"quarter-note", "eighth-note"] +            readonly property var noteLengthName: \
["Whole", "Half", "Quarter", "Eighth"]  
             Image {
                 id: noteTypeOption
 
                 property int currentIndex: 0
 
-                source: \
"qrc:/gcompris/src/activities/piano_composition/resource/%1.svg".arg(optionsRow.noteLengthName[currentIndex])
 +                source: \
"qrc:/gcompris/src/activities/piano_composition/resource/genericNote%1.svg".arg(optionsRow.noteLengthName[currentIndex])
  sourceSize.width: 50
                 anchors.top: parent.top
                 anchors.topMargin: -6
@@ -232,7 +260,7 @@ ActivityBase {
                     onClicked: {
                         parent.currentIndex = (parent.currentIndex + 1) % 4
                         clickAnimation.start()
-                        currentType = optionsRow.noteTypes[parent.currentIndex]
+                        currentType = optionsRow.noteLengthName[parent.currentIndex]
                     }
                 }
 
@@ -273,6 +301,7 @@ ActivityBase {
                     onClicked: {
                         multipleStaff.eraseAllNotes()
                         clefType = (clefType == "bass") ? "treble" : "bass"
+                        print(piano.currentOctaveNb)
                     }
                 }
             }
diff --git a/src/activities/piano_composition/Staff.qml \
b/src/activities/piano_composition/Staff.qml index 10acf4ce..8c1dfa3a 100644
--- a/src/activities/piano_composition/Staff.qml
+++ b/src/activities/piano_composition/Staff.qml
@@ -23,6 +23,7 @@ import QtQuick 2.6
 import GCompris 1.0
 
 import "../../core"
+import "piano_composition.js" as Activity
 
 Item {
     id: staff
@@ -36,7 +37,7 @@ Item {
     width: 400
     height: 100
     // Stave
-    property int nbLines: 5
+    readonly property int nbLines: 5
 
     property bool lastPartition: false
 
@@ -122,19 +123,19 @@ Item {
         print("total distance " + metronome.x)
     }
 
-    function addNote(newValue_, newType_, newBlackType_, highlightWhenPlayed_) {
+    function addNote(noteName, noteType, blackType, highlightWhenPlayed) {
         var duration
-        if(newType_ == 1)
-            duration = 2000/newType_
-        else if(newType_ == 2)
-            duration = 3000/newType_
-        else if(newType_ == 4)
-            duration = 4000/newType_
+        if(noteType == "Whole")
+            duration = 2000 / 1
+        else if(noteType == "Half")
+            duration = 3000 / 2
+        else if(noteType == "Quarter")
+            duration = 4000 / 4
         else
-            duration = 6500/newType_
-        notes.append({"mValue": newValue_, "mType": newType_,
-                      "mBlackType": newBlackType_, "mDuration": duration,
-                      "mHighlightWhenPlayed": highlightWhenPlayed_});
+            duration = 6500 / 8
+
+        notes.append({"noteName_": noteName, "noteType_": noteType, "mDuration": \
duration, +                      "highlightWhenPlayed": highlightWhenPlayed});
     }
 
     function playNote(noteId) {
@@ -154,14 +155,23 @@ Item {
             id: notesRepeater
             model: notes
             Note {
-                value: mValue
-                type: mType
-                blackType: mBlackType
-                highlightWhenPlayed: mHighlightWhenPlayed
+                noteName: noteName_
+                noteType: noteType_
+                highlightWhenPlayed: highlightWhenPlayed
                 noteIsColored: staff.noteIsColored
                 width: (notes.count == 1 && items.staffLength === "long") ? \
Math.min(items.background.width,items.background.height) * 0.1 : noteWidth  height: \
staff.height  
+                noteDetails: Activity.getNoteDetails(noteName)
+                rotation: {
+                    if(noteDetails.positonOnStaff < 0 && noteType === "Whole")
+                        return 0
+                    else if(noteDetails.positonOnStaff > 6 && noteType === "Whole")
+                        return 180
+                    else
+                        return noteDetails.rotation
+                }
+
                 MouseArea {
                     anchors.fill: parent
                     onClicked: {
@@ -177,19 +187,15 @@ Item {
                 }
 
                 y: {
-                    var shift =  - verticalDistanceBetweenLines / 2
-                    if(clef === "bass") {
-                        shift += -2.5 * verticalDistanceBetweenLines
-                    }
+                    var shift =  -verticalDistanceBetweenLines / 2
+                    var relativePosition = noteDetails.positonOnStaff
+                    var imageY = (nbLines - 3) * verticalDistanceBetweenLines
 
-                    if(blackType === "flat") {
-                        shift += - verticalDistanceBetweenLines / 2
+                    if(rotation === 180) {
+                        return imageY - (4 - relativePosition) * \
verticalDistanceBetweenLines + shift  }
 
-                    if(mValue >= -2)
-                        return (nbLines - 3) * verticalDistanceBetweenLines - \
                (Math.abs(parseInt(mValue)) - 1) * verticalDistanceBetweenLines / 2 + \
                shift
-                    else
-                        return (nbLines - 3) * verticalDistanceBetweenLines - \
(Math.abs(parseInt(mValue))) * verticalDistanceBetweenLines / 2 + shift +             \
return imageY - (6 - relativePosition) * verticalDistanceBetweenLines + shift  }
             }
         }
diff --git a/src/activities/piano_composition/melodies.js \
b/src/activities/piano_composition/melodies.js index 903ec6dd..76a1025d 100644
--- a/src/activities/piano_composition/melodies.js
+++ b/src/activities/piano_composition/melodies.js
@@ -26,205 +26,205 @@ function get() {
                  "title": "Twinkle Twinkle Little Star",
                  "_origin": qsTr("America: English Lullaby"),
                  "lyrics": "Twinkle, twinkle, little star, how I wonder what you \
are; Up above the world so high, like a diamond in the sky. Twinkle, twinkle, little \
                star, how I wonder what you are.",
-                 "melody": "treble C4 C4 G4 G4 A4 A4 G2 F4 F4 E4 E4 D4 D4 C2 G4 G4 \
F4 F4 E4 E4 D2 G4 G4 F4 F4 E4 E4 D2 C4 C4 G4 G4 A4 A4 G2 F4 F4 E4 E4 D4 D4 C1" +      \
"melody": "treble C4Quarter C4Quarter G4Quarter G4Quarter A4Quarter A4Quarter G4Half \
F4Quarter F4Quarter E4Quarter E4Quarter D4Quarter D4Quarter C4Half G4Quarter \
G4Quarter F4Quarter F4Quarter E4Quarter E4Quarter D4Half G4Quarter G4Quarter \
F4Quarter F4Quarter E4Quarter E4Quarter D4Half C4Quarter C4Quarter G4Quarter \
G4Quarter A4Quarter A4Quarter G4Half F4Quarter F4Quarter E4Quarter E4Quarter \
D4Quarter D4Quarter C4Whole"  },
              {
                  "title": "Yankee Doodle",
                  "_origin": qsTr("America: Patriotic"),
                  "lyrics": "Yankee Doodle went to town, Riding on a pony; He stuck a \
                feather in his hat, And called it macaroni",
-                 "melody": "treble G8 G8 A8 B8 G8 B8 A4 G8 G8 A8 B8 G4 F#4 G8 G8 A8 \
B8 2C8 B8 A8 G8 F#8 D8 E8 F#8 G4 G4" +                 "melody": "treble G4Eighth \
G4Eighth A4Eighth B4Eighth G4Eighth B4Eighth A4Quarter G4Eighth G4Eighth A4Eighth \
B4Eighth G4Quarter F#4Quarter G4Eighth G4Eighth A4Eighth B4Eighth C5Eighth B4Eighth \
A4Eighth G4Eighth F#4Eighth D4Eighth E4Eighth F#4Eighth G4Quarter G4Quarter"  },
              {
                  "title": "Simple Gifts",
                  "_origin": qsTr("America: Shaker Tune"),
                  "lyrics": "Tis the gift to be simple, 'tis the gift to be free, \
'tis the gift to come down where we ought to be. And when we find ourselves in the \
                place just right, 'Twill be in the valley of love and delight.",
-                 "melody": "treble C8 C8 F4 F8 G8 A8 F8 A8 Bb8 2C4 2C8 Bb8 A4 G8 F8 \
G4 C4 G4 F4 G8 A8 G8 E8 C4 C4 F8 E8 F8 G8 A4 G8 G8 A4 Bb4 2C4 A4 G4 G8 G8 A4 A8 G8 F4 \
F8 F8 F2" +                 "melody": "treble C4Eighth C4Eighth F4Quarter F4Eighth \
G4Eighth A4Eighth F4Eighth A4Eighth Bb4Eighth C5Quarter C5Eighth Bb4Eighth A4Quarter \
G4Eighth F4Eighth G4Quarter C4Quarter G4Quarter F4Quarter G4Eighth A4Eighth G4Eighth \
E4Eighth C4Quarter C4Quarter F4Eighth E4Eighth F4Eighth G4Eighth A4Quarter G4Eighth \
G4Eighth A4Quarter Bb4Quarter C5Quarter A4Quarter G4Quarter G4Eighth G4Eighth \
A4Quarter A4Eighth G4Eighth F4Quarter F4Eighth F4Eighth F4Half"  },
              {
                  "title": "Old MacDonald Had a Farm",
                  "_origin": qsTr("America: Nursery Rhyme"),
                  "lyrics": "Old MacDonald had a farm, EE-I-EE-I-O, And on that farm \
                he had a [animal name], EE-I-EE-I-O",
-                 "melody": "bass G4 G4 G4 D4 E4 E4 D2 B4 B4 A4 A4 G2 D2 G4 G4 G4 D4 \
E4 E4 D2 B4 B4 A4 A4 G1" +                 "melody": "bass G4Quarter G4Quarter \
G4Quarter D4Quarter E4Quarter E4Quarter D4Half B4Quarter B4Quarter A4Quarter \
A4Quarter G4Half D4Half G4Quarter G4Quarter G4Quarter D4Quarter E4Quarter E4Quarter \
D4Half B4Quarter B4Quarter A4Quarter A4Quarter G4Whole"  },
              {
                  "title": "Un elefante se balanceaba",
                  "_origin": qsTr("Mexico"),
                  "lyrics": "Un elefante se columpiaba sobre la tela de una araña. \
                Como veia que resistía fue a llamar a otro elefante",
-                 "melody": "treble g4 g8 g8 e4 e4 g4 g8 g8 e4 e4 g4 g8 g8 a8 g8 f8 \
e8 f2 d2 f4 f8 f8 d4 d4 f4 f8 f8 d4 d4 f4 f8 f8 g8 f8 e8 d8 e2 c2" +                 \
"melody": "treble G4Quarter G4Eighth G4Eighth E4Quarter E4Quarter G4Quarter G4Eighth \
G4Eighth E4Quarter E4Quarter G4Quarter G4Eighth G4Eighth A4Eighth G4Eighth F4Eighth \
E4Eighth F4Half D4Half F4Quarter F4Eighth F4Eighth D4Quarter D4Quarter F4Quarter \
F4Eighth F4Eighth D4Quarter D4Quarter F4Quarter F4Eighth F4Eighth G4Eighth F4Eighth \
E4Eighth D4Eighth E4Half C4Half"  },
              {
                  "title": "Piove, Piove",
                  "_origin": qsTr("Italy"),
                  "lyrics": "Piove, piove. La gatta non si muove. La fiamma traballa. \
La mucca è nella stalla. La mucca ha il vitello. La pecora ha l'agnello. [La \
chioccia ha il pulcino.] Ognuno ha il suo bambino. Ognuno ha la sua mamma. E tutti \
                fanno nanna!",
-                 "melody": "treble E8 G4 G8 A8 G4 G8 E8 G8 G8 G8 A8 G4 G8 E8 G8 G8 \
G8 A8 G4 G8 E8 G8 G8 G8 A8 G4 G8 E8 G2 E8 G2 E8 G8 A8 G8 E8 G2" +                 \
"melody": "treble E4Eighth G4Quarter G4Eighth A4Eighth G4Quarter G4Eighth E4Eighth \
G4Eighth G4Eighth G4Eighth A4Eighth G4Quarter G4Eighth E4Eighth G4Eighth G4Eighth \
G4Eighth A4Eighth G4Quarter G4Eighth E4Eighth G4Eighth G4Eighth G4Eighth A4Eighth \
G4Quarter G4Eighth E4Eighth G4Half E4Eighth G4Half E4Eighth G4Eighth A4Eighth \
G4Eighth E4Eighth G4Half"  },
              {
                  "title": "Que llueva, que llueva",
                  "_origin": qsTr("Spain"),
                  "lyrics": "Que llueva, que llueva. La Virgen de la Cueva. Los \
pajaritos cantan, Las nubes se levantan.  ¡Que sí, que no, que caiga un chaparrón! \
Que siga lloviendo, Los pájaros corriendo. Florezca la pradera. Al sol de la \
                primavera....",
-                 "melody": "treble E8 G4 G8 A8 G4 G8 E8 G8 G8 G8 A8 G4 G8 E8 G8 G8 \
G8 A8 G4 G8 E8 G8 G8 G8 A8 G4 G8 E8 G2 E8 G2 E8 G8 A8 G8 E8 G2" +                 \
"melody": "treble E4Eighth G4Quarter G4Eighth A4Eighth G4Quarter G4Eighth E4Eighth \
G4Eighth G4Eighth G4Eighth A4Eighth G4Quarter G4Eighth E4Eighth G4Eighth G4Eighth \
G4Eighth A4Eighth G4Quarter G4Eighth E4Eighth G4Eighth G4Eighth G4Eighth A4Eighth \
G4Quarter G4Eighth E4Eighth G4Half E4Eighth G4Half E4Eighth G4Eighth A4Eighth \
G4Eighth E4Eighth G4Half"  },
              {
                  "title": "Backe, backe Kuchen",
                  "_origin": qsTr("German Kid's Song"),
                  "lyrics": "Backe, backe, Kuchen Der Bäcker hat gerufen! Wer will \
guten Kuchen backen Der muß haben sieben Sachen: Eier und Schmalz Butter und Salz \
                Milch und Mehl/Safran macht den Kuchen gehl!Schieb, schieb in ´n Ofen \
                ´nein.",
-                 "melody": "treble A4 A4 B4 B4 A2 F#4 D4 A4 A4 B4 B4 A2 F#2 A4 A4 B4 \
B4 A4 A4 F#4 D4 A4 A4 B4 B4 A4 A4 F#4 F#4 A8 A8 A4 F#2 A8 A8 A4 F#2 A4 A4 F#2" +      \
"melody": "treble A4Quarter A4Quarter B4Quarter B4Quarter A4Half F#4Quarter D4Quarter \
A4Quarter A4Quarter B4Quarter B4Quarter A4Half F#4Half A4Quarter A4Quarter B4Quarter \
B4Quarter A4Quarter A4Quarter F#4Quarter D4Quarter A4Quarter A4Quarter B4Quarter \
B4Quarter A4Quarter A4Quarter F#4Quarter F#4Quarter A4Eighth A4Eighth A4Quarter \
F#4Half A4Eighth A4Eighth A4Quarter F#4Half A4Quarter A4Quarter F#4Half"  },
              {
                  "title": "Se essa rua fosse minha",
                  "_origin": qsTr("Children's Song from Brazil"),
                  "lyrics": "Se essa rua Se essa rua fosse minha Eu mandava Eu \
mandava ladrilhar Com pedrinhas Com pedrinhas de brilhante Só pra ver Só pra ver \
meu bem passar Nessa rua Nessa rua tem um bosque Que se chama Que se chama \
                solidão...",
-                 "melody": "treble E8 E8 A8 A8 E8 C8 A8 C8 F8 E8 E4 D4 E8 E8 B8 B8 \
F8 E8 G#8 E8 C8 B8 A2 A8 A8 Bb8 A8 E8 C#8 A8 G8 F8 E8 G8 F8 E8 D8 E4 B8 G#8 E8 D8 C8 \
B8 A2" +                 "melody": "treble E4Eighth E4Eighth A4Eighth A4Eighth \
E4Eighth C4Eighth A4Eighth C4Eighth F4Eighth E4Eighth E4Quarter D4Quarter E4Eighth \
E4Eighth B4Eighth B4Eighth F4Eighth E4Eighth G#4Eighth E4Eighth C4Eighth B4Eighth \
A4Half A4Eighth A4Eighth Bb4Eighth A4Eighth E4Eighth C#4Eighth A4Eighth G4Eighth \
F4Eighth E4Eighth G4Eighth F4Eighth E4Eighth D4Eighth E4Quarter B4Eighth G#4Eighth \
E4Eighth D4Eighth C4Eighth B4Eighth A4Half"  },
              {
                  "title": "Fuchs du hast die Gans gestohlen",
                  "_origin": qsTr("German"),
                  "lyrics": "Fuchs, du hast die Gans gestohlen, gib sie wieder her, \
gib sie wieder her! Sonst wird dich der Jäger holen, mit dem Schießgewehr! Sonst \
                wird dich der Jäger holen, mit dem Schießgewehr!",
-                 "melody": "treble D4 E4 F#4 G4 A4 A4 A4 A4 B4 G4 2D4 B4 A1 B4 G4 \
2D4 B4 A1 A4 G4 G4 G4 G4 F#4 F#4 F#4 F#4 E4 F#4 E4 D4 F#4 A2" +                 \
"melody": "treble D4Quarter E4Quarter F#4Quarter G4Quarter A4Quarter A4Quarter \
A4Quarter A4Quarter B4Quarter G4Quarter D5Quarter B4Quarter A4Whole B4Quarter \
G4Quarter D5Quarter B4Quarter A4Whole A4Quarter G4Quarter G4Quarter G4Quarter \
G4Quarter F#4Quarter F#4Quarter F#4Quarter F#4Quarter E4Quarter F#4Quarter E4Quarter \
D4Quarter F#4Quarter A4Half"  },
              {
                  "title": "Un éléphant qui se balançait",
                  "_origin": qsTr("France"),
                  "lyrics": "Un éléphant qui se balançait\nSur une toile toile \
toile\nToile d'araignée\nIl trouvait ça tellement amusant\nQu'il alla chercher \
                un\nDeuxième éléphant.",
-                 "melody": "treble g4 g8 g8 e4 e4 g4 g8 g8 e4 e4 g4 g8 g8 a8 g8 f8 \
e8 f2 d2 f4 f8 f8 d4 d4 f4 f8 f8 d4 d4 f4 f8 f8 g8 f8 e8 d8 e2 c2" +                 \
"melody": "treble G4Quarter G4Eighth G4Eighth E4Quarter E4Quarter G4Quarter G4Eighth \
G4Eighth E4Quarter E4Quarter G4Quarter G4Eighth G4Eighth A4Eighth G4Eighth F4Eighth \
E4Eighth F4Half D4Half F4Quarter F4Eighth F4Eighth D4Quarter D4Quarter F4Quarter \
F4Eighth F4Eighth D4Quarter D4Quarter F4Quarter F4Eighth F4Eighth G4Eighth F4Eighth \
E4Eighth D4Eighth E4Half C4Half"  },
              {
                  "title": "Alle Meine Entchen",
                  "_origin": qsTr("Germany"),
                  "lyrics": "Alle meine Entchen schwimmen auf dem See, schwimmen auf \
                dem See, Köpfchen in das Wasser, Schwänzchen in die Höh'.",
-                 "melody": "treble C8 D8 E8 F8 G4 G4 A8 A8 A8 A8 G2 A8 A8 A8 A8 G2 \
F8 F8 F8 F8 E4 E4 D8 D8 D8 G8 C2" +                 "melody": "treble C4Eighth \
D4Eighth E4Eighth F4Eighth G4Quarter G4Quarter A4Eighth A4Eighth A4Eighth A4Eighth \
G4Half A4Eighth A4Eighth A4Eighth A4Eighth G4Half F4Eighth F4Eighth F4Eighth F4Eighth \
E4Quarter E4Quarter D4Eighth D4Eighth D4Eighth G4Eighth C4Half"  },
              {
                  "title": "À la claire fontaine",
                  "_origin": qsTr("France"),
                  "lyrics": "À la claire fontaine\nM'en allant promener\nJ'ai \
trouvé l'eau si belle\nQue je m'y suis baigné\nIl y a longtemps que je \
                t'aime\nJamais je ne t'oublierai.",
-                 "melody": "treble G4 G8 B8 B8 A8 B8 B8 G4 G8 B8 B8 A8 B4 B4 B8 A8 \
G8 B8 2D8 B8 2D4 2D8 B8 G8 B8 A2 G2 G4 B4 B4 A8 G8 B4 G4 B2 B4 A8 G8 B4 A4 G1" +      \
"melody": "treble G4Quarter G4Eighth B4Eighth B4Eighth A4Eighth B4Eighth B4Eighth \
G4Quarter G4Eighth B4Eighth B4Eighth A4Eighth B4Quarter B4Quarter B4Eighth A4Eighth \
G4Eighth B4Eighth D5Eighth B4Eighth D5Quarter D5Eighth B4Eighth G4Eighth B4Eighth \
A4Half G4Half G4Quarter B4Quarter B4Quarter A4Eighth G4Eighth B4Quarter G4Quarter \
B4QuarterHalf B4Quarter A4Eighth G4Eighth B4Quarter A4Quarter G4Whole"  },
              {
                  "title": "O Cravo e a Rosa",
                  "_origin": qsTr("Brazil"),
                  "lyrics": "O Cravo brigou com a Rosa Debaixo de uma sacada O Cravo \
ficou ferido E a Rosa despedaçada O Cravo ficou doente A Rosa foi visitar O Cravo \
                teve um desmaio A Rosa pôs-se a chorar",
-                 "melody": "treble G4 G4 E4 2C8 B8 A8 G4 F2 A4 A4 F4 2C8 B8 A8 G4 G2 \
G4 2C4 2C4 2C8 2D8 2C8 B4 A2 A4 G4 B2 A8 F8 D8 C4" +                 "melody": \
"treble G4Quarter G4Quarter E4Quarter C5Eighth B4Eighth A4Eighth G4Quarter F4Half \
A4Quarter A4Quarter F4Quarter C5Eighth B4Eighth A4Eighth G4Quarter G4Half G4Quarter \
C5Quarter C5Quarter C5Eighth D5Eighth C5Eighth B4Quarter A4Half A4Quarter G4Quarter \
B4Half A4Eighth F4Eighth D4Eighth C4Quarter"  },
              {
                  "title": "Marcha Soldado",
                  "_origin": qsTr("Brazil"),
                  "lyrics": "Marcha soldado Cabeça de papel Se não marchar direito \
Vai preso pro quartel O quartel pegou fogo A polícia deu sinal Acode acode acode A \
                bandeira nacional",
-                 "melody": "treble G4 G8 E8 C4 C8 E8 G8 G8 G8 E8 D2 E8 F8 F8 F8 D8 \
G4 G8 A8 G8 F8 E8 D8 C2" +                 "melody": "treble G4Quarter G4Eighth \
E4Eighth C4Quarter C4Eighth E4Eighth G4Eighth G4Eighth G4Eighth E4Eighth D4Half \
E4Eighth F4Eighth F4Eighth F4Eighth D4Eighth G4Quarter G4Eighth A4Eighth G4Eighth \
F4Eighth E4Eighth D4Eighth C4Half"  },
              {
                  "title": "Frère jacques",
                  "_origin": qsTr("France"),
                  "lyrics": "Frère Jacques\nFrère Jacques\nDormez-vous \
?\nDormez-vous ?\nSonnez les matines\nSonnez les matines\nDing ding dong\nDing ding \
                dong",
-                 "melody": "treble F4 G4 A4 F4 F4 G4 A4 F4 A4 Bb4 2C2 A4 Bb4 2C2 2C8 \
2D8 2C8 Bb8 A4 F4 2C8 2D8 2C8 Bb8 A4 F4 F4 C4 F2 F4 C4 F2" +                 \
"melody": "treble F4Quarter G4Quarter A4Quarter F4Quarter F4Quarter G4Quarter \
A4Quarter F4Quarter A4Quarter Bb4Quarter C5Half A4Quarter Bb4Quarter C5Half C5Eighth \
D5Eighth C5Eighth Bb4Eighth A4Quarter F4Quarter C5Eighth D5Eighth C5Eighth Bb4Eighth \
A4Quarter F4Quarter F4Quarter C4Quarter F4Half F4Quarter C4Quarter F4Half"  },
              {
                  "title": "Au clair de la lune",
                  "_origin": qsTr("France"),
                  "lyrics": "Au clair de la lune\nMon ami Pierrot\nPrête-moi ta \
plume\nPour écrire un mot\nMa chandelle est morte\nJe n'ai plus de feu\nOuvre-moi ta \
                porte\nPour l'amour de Dieu.",
-                 "melody": "treble G4 G4 G4 A4 B2 A2 G4 B4 A4 A4 G1 G4 G4 G4 A4 B2 \
A2 G4 B4 A4 A4 G1 A4 A4 A4 A4 E2 E2 A4 G4 F#4 E4 D1 G4 G4 G4 A4 B2 A2 G4 B4 A4 A4 G1" \
+                 "melody": "treble G4Quarter G4Quarter G4Quarter A4Quarter B4Half \
A4Half G4Quarter B4Quarter A4Quarter A4Quarter G4Whole G4Quarter G4Quarter G4Quarter \
A4Quarter B4Half A4Half G4Quarter B4Quarter A4Quarter A4Quarter G4Whole A4Quarter \
A4Quarter A4Quarter A4Quarter E4Half E4Half A4Quarter G4Quarter F#4Quarter E4Quarter \
D4Whole G4Quarter G4Quarter G4Quarter A4Quarter B4Half A4Half G4Quarter B4Quarter \
A4Quarter A4Quarter G4Whole"  },
              {
                  "title": "Boci, boci tarka",
                  "_origin": qsTr("Hungary, Nursery Rhyme"),
                  "lyrics": "Boci, boci tarka, Se füle, se farka, Oda megyünk \
                lakni, Ahol tejet kapni.",
-                 "melody": "treble D8 F#8 D8 F#8 A4 A4 D8 F#8 D8 F#8 A4 A4 2D8 2C#8 \
B8 A8 G4 B4 A8 G8 F#8 E8 D4 D4" +                 "melody": "treble D4Eighth \
F#4Eighth D4Eighth F#4Eighth A4Quarter A4Quarter D4Eighth F#4Eighth D4Eighth \
F#4Eighth A4Quarter A4Quarter D5Eighth C#5Eighth B4Eighth A4Eighth G4Quarter \
B4Quarter A4Eighth G4Eighth F#4Eighth E4Eighth D4Quarter D4Quarter"  },
              {
                  "title": "Nyuszi ül a fűben",
                  "_origin": qsTr("Hungary, Nursery Rhyme"),
                  "lyrics": "Nyuszi ül a fűben, ülve szundikálva. Nyuszi talán \
beteg vagy, hogy már nem is ugorhatsz? Nyuszi hopp! Nyuszi hopp! Máris egyet \
                elkapott.",
-                 "melody": "treble A8 A8 A8 B8 A4 F#4 A8 A8 A8 B8 A8 G8 F#4 F#8 E8 \
F#8 E8 D8 D8 D4 A8 A8 2D4 A8 A8 2D4 F#8 E8 F#8 E8 D8 D8 D4" +                 \
"melody": "treble A4Eighth A4Eighth A4Eighth B4Eighth A4Quarter F#4Quarter A4Eighth \
A4Eighth A4Eighth B4Eighth A4Eighth G4Eighth F#4Quarter F#4Eighth E4Eighth F#4Eighth \
E4Eighth D4Eighth D4Eighth D4Quarter A4Eighth A4Eighth D5Quarter A4Eighth A4Eighth \
D5Quarter F#4Eighth E4Eighth F#4Eighth E4Eighth D4Eighth D4Eighth D4Quarter"  },
              {
                  "title": "Lánc, lánc, eszterlánc",
                  "_origin": qsTr("Hungary, Children's Song"),
                  "lyrics": "Lánc, lánc, eszterlánc,/ eszterlánci cérna,/ cérna \
volna, selyem volna,/ mégis kifordulna. / Pénz volna karika, karika,/ forduljon ki \
                Marika,/ Marikának lánca.",
-                 "melody": "treble A4 B4 A8 A8 F#4 A8 A8 A8 B8 A4 F#4 A8 A8 A8 B8 A8 \
G8 F#8 E8 F#8 E8 F#8 E8 D4 D4 A4 A8 A8 A8 2D8 A4 A8 G8 F#8 E8 D8 2D8 A4 A8 G8 F#8 E8 \
D4 D4" +                 "melody": "treble A4Quarter B4Quarter A4Eighth A4Eighth \
F#4Quarter A4Eighth A4Eighth A4Eighth B4Eighth A4Quarter F#4Quarter A4Eighth A4Eighth \
A4Eighth B4Eighth A4Eighth G4Eighth F#4Eighth E4Eighth F#4Eighth E4Eighth F#4Eighth \
E4Eighth D4Quarter D4Quarter A4Quarter A4Eighth A4Eighth A4Eighth D5Eighth A4Quarter \
A4Eighth G4Eighth F#4Eighth E4Eighth D4Eighth D5Eighth A4Quarter A4Eighth G4Eighth \
F#4Eighth E4Eighth D4Quarter D4Quarter"  },
              {
                  "title": "Tavaszi szél vizet áraszt",
                  "_origin": qsTr("Hungary, Children's Song"),
                  "lyrics": "Tavaszi szél vizet áraszt, virágom, virágom. / \
Minden madár társat választ virágom, virágom. / Hát én immár kit válasszak? \
                Virágom, virágom. / Te engemet, én tégedet, virágom, virágom.",
-                 "melody": "treble F4 G4 A4 A4 G4 G8 A8 F4 G4 A8 A4 G4 G8 A8 F2 C2 \
F4 G4 A8 A4 G4 G8 A8 F8 E8 D4 G8 G4 A8 F4 E4 D2 D2" +                 "melody": \
"treble F4Quarter G4Quarter A4Quarter A4Quarter G4Quarter G4Eighth A4Eighth F4Quarter \
G4Quarter A4Eighth A4Quarter G4Quarter G4Eighth A4Eighth F4Half C4Half F4Quarter \
G4Quarter A4Eighth A4Quarter G4Quarter G4Eighth A4Eighth F4Eighth E4Eighth D4Quarter \
G4Eighth G4Quarter A4Eighth F4Quarter E4Quarter D4Half D4Half"  },
              {
                  "title": "Zec kopa repu",
                  "_origin": qsTr("Serbia"),
                  "lyrics": "Zec kopa repu, a lisica cveklu / Vuk im se prikrade, \
zeca da ukrade / Zec spazi repu, a lisica cveklu / Vuka nije bilo, u snu im se \
                snilo",
-                 "melody": "treble A2 A4 F#4 G2 E2 D4 E4 E4 E4 E2 D2 F4 F4 E4 F4 G2 \
E2 F4 F4 E4 D4 E2 D2" +                 "melody": "treble A4Half A4Quarter F#4Quarter \
G4Half E4Half D4Quarter E4Quarter E4Quarter E4Quarter E4Half D4Half F4Quarter \
F4Quarter E4Quarter F4Quarter G4Half E4Half F4Quarter F4Quarter E4Quarter D4Quarter \
E4Half D4Half"  },
              {
                  "title": "Jack and Jill",
                  "_origin": qsTr("Britain"),
                  "lyrics": "Jack and Jill went up the hill / To fetch a pail of \
                water. / Jack fell down and broke his crown,/ And Jill came tumbling \
                after",
-                 "melody": "treble C4 C8 D4 D8 E4 E8 F4 F8 G4 G8 A4 A8 B2 2C2 2C4 \
2C8 B4 B8 A4 A8 G4 G8 F4 F8 E4 E8 D2 C2" +                 "melody": "treble \
C4Quarter C4Eighth D4Quarter D4Eighth E4Quarter E4Eighth F4Quarter F4Eighth G4Quarter \
G4Eighth A4Quarter A4Eighth B4Half C5Half C5Quarter C5Eighth B4Quarter B4Eighth \
A4Quarter A4Eighth G4Quarter G4Eighth F4Quarter F4Eighth E4Quarter E4Eighth D4Half \
C4Half"  },
              {
                  "title": "Wlazł kotek na płotek",
                  "_origin": qsTr("Poland"),
                  "lyrics": "WlazÅ‚ kotek na pÅ‚otek i mruga,/ Åadna to piosenka nie \
długa. / Nie długa, nie krótka, lecz w sam raz,/ Zaśpiewaj koteczku jeszcze \
                raz.",
-                 "melody": "treble G4 E4 E4 F4 D4 D4 C8 E8 G2 G4 E4 E4 F4 D4 D4 C8 \
E8 C2" +                 "melody": "treble G4Quarter E4Quarter E4Quarter F4Quarter \
D4Quarter D4Quarter C4Eighth E4Eighth G4Half G4Quarter E4Quarter E4Quarter F4Quarter \
D4Quarter D4Quarter C4Eighth E4Eighth C4Half"  },
              {
                  "title": "ΦεγγαÏάκι μου λαμπÏÏŒ",
                  "_origin": qsTr("Greece"),
                  "lyrics": "ΦεγγαÏάκι μου λαμπÏÏŒ,/ Φέγγε \
μου να πεÏπατώ,/ Îα πηγαίνω στο σχολειό / Îα \
μαθαίνω γÏάμματα,/ ΓÏάμματα σπουδάματα / Του \
                Î˜ÎµÎ¿Ï Ï„Î± Ï€Ïάματα.",
-                 "melody": "treble C4 C4 G4 G4 A4 A4 G2 F4 F4 E4 E4 D4 D4 C2 G4 G4 \
F4 F4 E4 E4 D2 G4 G4 F4 F4 E4 E4 D2 C4 C4 G4 G4 A4 A4 G2 F4 F4 E4 E4 D4 D4 C1" +      \
"melody": "treble C4Quarter C4Quarter G4Quarter G4Quarter A4Quarter A4Quarter G4Half \
F4Quarter F4Quarter E4Quarter E4Quarter D4Quarter D4Quarter C4Half G4Quarter \
G4Quarter F4Quarter F4Quarter E4Quarter E4Quarter D4Half G4Quarter G4Quarter \
F4Quarter F4Quarter E4Quarter E4Quarter D4Half C4Quarter C4Quarter G4Quarter \
G4Quarter A4Quarter A4Quarter G4Half F4Quarter F4Quarter E4Quarter E4Quarter \
D4Quarter D4Quarter C4Whole"  },
              {
                  "title": "Î’Ïέχει, χιονίζει",
                  "_origin": qsTr("Greece"),
                  "lyrics": "Î’Ïέχει, χιονίζει,/ Τα μάÏμαÏα \
ποτίζει,/ Κι' ο γέÏος πα στα ξÏλα / Κ' η γÏιά του \
μαγειÏεÏει / ΚουÏκοÏτι με το μέλι. / \"'Ελα γέÏο \
μου να φας / Î Î¿Ï Î½Î± φας την / κουτσουλιά,/ Και του \
                σκÏλλου την οÏιά.\"",
-                 "melody": "treble D8 G8 G8 G8 A8 A8 G8 G8 D8 G8 G8 G8 A8 A8 G8 G8 \
D8 G8 G8 G8 A8 A8 G8 G8 D8 G8 G8 G8 A8 A8 G8 G8" +                 "melody": "treble \
D4Eighth G4Eighth G4Eighth G4Eighth A4Eighth A4Eighth G4Eighth G4Eighth D4Eighth \
G4Eighth G4Eighth G4Eighth A4Eighth A4Eighth G4Eighth G4Eighth D4Eighth G4Eighth \
G4Eighth G4Eighth A4Eighth A4Eighth G4Eighth G4Eighth D4Eighth G4Eighth G4Eighth \
G4Eighth A4Eighth A4Eighth G4Eighth G4Eighth"  },
              {
                  "title": "Котику Ñіренький",
                  "_origin": qsTr("Ukraine"),
                  "lyrics": "Котику Ñіренький,/ Котику \
біленький,/ Котку волохатий,/ Ðе ходи по хаті! / \
Ðе ходи по хаті,/ Ðе буди дитÑти! / Ð”Ð¸Ñ‚Ñ Ð±ÑƒÐ´Ðµ \
Ñпати,/ Котик воркотати. / Ой на кота воркота,/ \
                Ðа дитину дрімота. / Ð-а, люлі!",
-                 "melody": "treble C4 F4 G4 Bb8 Ab8 G4 F4 C4 F4 G4 Bb8 Ab8 G2 F2 Bb4 \
Bb4 Bb4 Ab4 G2 F2 Bb4 Bb4 Bb4 Ab4 G2 F2 C4 F4 G4 Bb8 Ab8 G8 F8 G4 F2" +               \
"melody": "treble C4Quarter F4Quarter G4Quarter Bb4Eighth Ab4Eighth G4Quarter \
F4Quarter C4Quarter F4Quarter G4Quarter Bb4Eighth Ab4Eighth G4Half F4Half Bb4Quarter \
Bb4Quarter Bb4Quarter Ab4Quarter G4Half F4Half Bb4Quarter Bb4Quarter Bb4Quarter \
Ab4Quarter G4Half F4Half C4Quarter F4Quarter G4Quarter Bb4Eighth Ab4Eighth G4Eighth \
F4Eighth G4Quarter F4Half"  },
              {
                  "title": "Baa, Baa, Blacksheep",
                  "_origin": qsTr("Britain"),
                  "lyrics": "Baa, baa, black sheep, / Have you any wool? / Yes, sir, \
yes, sir, / Three bags full; / One for the master, / And one for the dame, / And one \
                for the little boy / Who lives down the lane",
-                 "melody": "treble G4 G4 2D4 2D4 2E8 2E8 2E8 2E8 2D2 2C4 2C4 B4 B4 \
A4 A4 G2 2D4 2D8 2D8 2C4 2C4 B4 B8 B8 A2 2D4 2D8 2D8 2C8 2C8 2C8 2C8 B4 B8 B8 A2" +   \
"melody": "treble G4Quarter G4Quarter D5Quarter D5Quarter E5Eighth E5Eighth E5Eighth \
E5Eighth 2D4Half C5Quarter C5Quarter B4Quarter B4Quarter A4Quarter A4Quarter G4Half \
D5Quarter D5Eighth D5Eighth C5Quarter C5Quarter B4Quarter B4Eighth B4Eighth A4Half \
D5Quarter D5Eighth D5Eighth C5Eighth C5Eighth C5Eighth C5Eighth B4Quarter B4Eighth \
B4Eighth A4Half"  },
              {
                  "title": "A la rueda de San Miguel",
                  "_origin": qsTr("Mexico"),
                  "lyrics": "A la rueda, a la rueda de San Miguel / Todos traen su \
caja de miel. / A lo maduro, a lo maduro / Que se voltee (nombre del niño) de \
                burro.",
-                 "melody": "treble G4 G4 2C4 G4 2C4 G8 G8 2C4 2D4 2E2 2C4 2D4 2E2 \
2C4 2C4 2D4 2D8 2D8 G4 G8 G8 2C2" +                 "melody": "treble G4Quarter \
G4Quarter C5Quarter G4Quarter C5Quarter G4Eighth G4Eighth C5Quarter D5Quarter E5Half \
C5Quarter D5Quarter E5Half C5Quarter C5Quarter D5Quarter D5Eighth D5Eighth G4Quarter \
G4Eighth G4Eighth C5Half"  },
              {
                  "title": "Arroz con leche",
                  "_origin": qsTr("Mexico"),
                  "lyrics": "Arroz con leche / me quiero casar / con una mexicana / \
                de la capital.",
-                 "melody": "treble C8 F2 A8 F4 F8 C8 F4 F8 A8 G2 A8 Bb8 A8 G8 F8 E4 \
E8 C8 D4 E8 E8 F4" +                 "melody": "treble C4Eighth F4Half A4Eighth \
F4Quarter F4Eighth C4Eighth F4Quarter F4Eighth A4Eighth G4Half A4Eighth Bb4Eighth \
A4Eighth G4Eighth F4Eighth E4Quarter E4Eighth C4Eighth D4Quarter E4Eighth E4Eighth \
F4Quarter"  },
              {
                  "title": "Los pollitos dicen",
                  "_origin": qsTr("Mexico"),
                  "lyrics": "Los pollitos dicen / pío pío pío / cuando tienen \
                hambre / cuando tienen frío",
-                 "melody": "treble A8 E8 A8 B8 2C#4 2C#4 B8 2D8 2C#8 B8 A4 A4 A8 G#8 \
F#8 E8 B4 B4 E8 E8 F#8 G#8 A4 A4" +                 "melody": "treble A4Eighth \
E4Eighth A4Eighth B4Eighth C#5Quarter C#5Quarter B4Eighth D5Eighth C#5Eighth B4Eighth \
A4Quarter A4Quarter A4Eighth G#4Eighth F#4Eighth E4Eighth B4Quarter B4Quarter \
E4Eighth E4Eighth F#4Eighth G#4Eighth A4Quarter A4Quarter"  },
              {
                  "title": "Dale dale dale",
                  "_origin": qsTr("Mexican song to break a piñata"),
                  "lyrics": "Dale dale dale / no pierdas el tino / porque si lo \
                pierdes / pierdes el camino",
-                 "melody": "treble G8 G8 G8 E8 A4 A4 B8 B8 B8 G8 2C4 2C4 G8 G8 G8 E8 \
A4 A4 B8 B8 B8 G8 2C2" +                 "melody": "treble G4Eighth G4Eighth G4Eighth \
E4Eighth A4Quarter A4Quarter B4Eighth B4Eighth B4Eighth G4Eighth C5Quarter C5Quarter \
G4Eighth G4Eighth G4Eighth E4Eighth A4Quarter A4Quarter B4Eighth B4Eighth B4Eighth \
G4Eighth C5Half"  },
              {
                  "title": "Kolme varista",
                  "_origin": qsTr("Finland"),
                  "lyrics": "Kolme varista istui aidalla. Silivati seilaa, silivati \
seilaa, yksi lensi pois. Kaksi varista istui aidalla. Silivati seilaa, silivati \
seilaa, yksi lensi pois. Yksi varis vain istui aidalla. Silivati seilaa, silivati \
                seilaa, sekin lensi pois.",
-                 "melody": "treble A4 Bb4 A8 F2 D1 A4 D4 2C4 Bb4 G1 A8 A8 A8 G8 E4 \
G4 A8 A8 A8 G8 E4 G4 A2 G8 F4 E4 D4" +                 "melody": "treble A4Quarter \
Bb4Quarter A4Eighth F4Half D4Whole A4Quarter D4Quarter C5Quarter Bb4Quarter G4Whole \
A4Eighth A4Eighth A4Eighth G4Eighth E4Quarter G4Quarter A4Eighth A4Eighth A4Eighth \
G4Eighth E4Quarter G4Quarter A4Half G4Eighth F4Quarter E4Quarter D4Quarter"  },
              {
                  "title": "Humpty Dumpty",
                  "_origin": qsTr("Britain"),
                  "lyrics": "Humpty Dumpty sat on a wall, / Humpty Dumpty had a great \
fall. / All the king's horses and all the king's men / Couldn't put Humpty together \
                again",
-                 "melody": "treble E4 G8 F4 A8 G8 A8 B8 2C2 E4 G8 F4 A8 G8 F8 E8 D2 \
E8 E8 G8 F8 F8 A8 G8 A8 B8 2C4 2C8 2E8 2E8 2C8 2F4 2E8 2D8 2C8 B8 2C2" +              \
"melody": "treble E4Quarter G4Eighth F4Quarter A4Eighth G4Eighth A4Eighth B4Eighth \
C5Half E4Quarter G4Eighth F4Quarter A4Eighth G4Eighth F4Eighth E4Eighth D4Half \
E4Eighth E4Eighth G4Eighth F4Eighth F4Eighth A4Eighth G4Eighth A4Eighth B4Eighth \
C5Quarter C5Eighth E5Eighth E5Eighth C5Eighth F5Quarter E5Eighth D5Eighth C5Eighth \
B4Eighth C5Half"  }
          ];
 }
diff --git a/src/activities/piano_composition/piano_composition.js \
b/src/activities/piano_composition/piano_composition.js index bdb7be2f..945d299c \
                100644
--- a/src/activities/piano_composition/piano_composition.js
+++ b/src/activities/piano_composition/piano_composition.js
@@ -23,10 +23,12 @@
 .import QtQuick 2.6 as Quick
 .import GCompris 1.0 as GCompris
 .import "qrc:/gcompris/src/core/core.js" as Core
+.import "qrc:/gcompris/src/activities/piano_composition/NoteNotations.js" as \
NoteNotations  
 var currentLevel = 0
 var numberOfLevel = 7
 var items
+var notesDetails = NoteNotations.get()
 var userDir = "file://" + GCompris.ApplicationInfo.getSharedWritablePath() + "/" + \
"piano_composition"  var userFile = userDir + "/melodies.json"
 var instructions = [{
@@ -86,6 +88,19 @@ function stop() {}
 
 function initLevel() {
     items.bar.level = currentLevel + 1
+    items.piano.currentOctaveNb = items.piano.defaultOctaveNb
+    items.multipleStaff.nbStaves = 2
+}
+
+function getNoteDetails(noteName) {
+    var clef = items.background.clefType === 'treble' ? "Treble" : "Bass"
+    var noteNotation = clef + noteName
+    console.log(noteNotation)
+    for(var i = 0; i < notesDetails.length; i++) {
+        if(noteNotation === notesDetails[i].noteName) {
+            return notesDetails[i]
+        }
+    }
 }
 
 function nextLevel() {
diff --git a/src/activities/piano_composition/resource/bassF4Eighth.svg \
b/src/activities/piano_composition/resource/bassF4Eighth.svg new file mode 100644
index 00000000..c4a96b9a
--- /dev/null
+++ b/src/activities/piano_composition/resource/bassF4Eighth.svg
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="bassF4Eighth.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
+    <linearGradient
+       x1="382.34"
+       y1="489.14"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-281.8)"
+       x2="490.53"
+       gradientUnits="userSpaceOnUse"
+       y2="333.89"
+       id="linearGradient3019-3">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:.82639"
+         id="stop3015-6" />
+      <stop
+         offset="1"
+         style="stop-color:#000000"
+         id="stop3017-7" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="369.23983"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title />
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12503.505)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     transform="matrix(26.463093,0,0,25.708755,-8651.9315,-12696.424)"
+     id="layer1"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-7">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.1939 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-5" /> +    </g>
+  </g>
+  <g
+     id="layer1-53"
+     transform="translate(3.3894944,1.9384639)">
+    <path
+       d="m 418.39,231.34 c 14.32,21.136 21.682,46.728 40.135,64.982 21.135,27.835 \
48.146,50.891 69.089,79.058 15.157,19.681 31.771,40.599 36.074,65.357 11.587,31.757 \
6.556,67.409 -5.8056,98.498 -13.947,16.765 -23.482,-4.9319 -19.589,-18.365 \
0.59324,-18.535 0.32293,-37.021 -6.7859,-54.528 -6.3047,-26.255 -17.834,-51.101 \
-37.136,-70.366 -16.772,-14.701 -35.813,-47.095 -61.382,-35.941 -16.885,10.637 \
-9.5289,32.139 -11.346,48.712 -1.0035,101.95 -1.0707,203.94 -2.7005,305.87 \
-1.2461,42.809 -38.247,71.529 -72.88,89.908 -30.854,18.567 -67.795,28.966 \
-103.61,20.691 -33.304,-3.4173 -67.756,-27.73 -68.454,-63.704 -2.2204,-41.711 \
27.904,-80.552 64.988,-97.024 36.404,-20.749 82.429,-25.246 121.63,-10.331 \
19.156,6.0549 24.483,-11.721 26.874,-28.819 2.2123,-129.77 3.9829,-259.54 \
4.4354,-389.33 0.36593,-12.973 21.496,-16.139 26.461,-4.6603 z" +       \
style="fill:url(#linearGradient3019-3);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/bassF4Half.svg \
b/src/activities/piano_composition/resource/bassF4Half.svg new file mode 100644
index 00000000..be8dba5f
--- /dev/null
+++ b/src/activities/piano_composition/resource/bassF4Half.svg
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="bassF4Half.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="369.23983"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title />
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12503.505)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     id="layer1-7"
+     transform="translate(3.3913244,201.92335)">
+    <path
+       d="m 407.69,23.853204 c -7.2475,0.33178 -15.544,4.8587 -15.75,12.156 \
-0.45246,129.789996 -2.2252,259.569996 -4.4375,389.339996 -2.3903,17.098 \
-7.7188,34.867 -26.875,28.812 -39.21,-14.91 -85.23,-10.4 -121.63,10.35 -37.084,16.471 \
-67.22,55.289 -65,97 0.69789,35.974 35.134,60.301 68.438,63.719 35.814,8.2749 \
72.771,-2.12 103.62,-20.688 34.633,-18.379 71.629,-47.097 72.875,-89.906 \
2.4559,-167.09 4.7446,-319.48 -0.5625,-483.279996 -0.073,-5.4712 -5.0506,-7.758 \
-10.688,-7.5 z M 308.41,459.8932 c 30.478,-0.002 56.713,13.001 67.312,36.562 \
16.152,35.904 -10.092,82.712 -58.594,104.53 -48.502,21.819 -100.91,10.404 \
-117.06,-25.5 -16.152,-35.904 10.092,-82.712 58.594,-104.53 16.672,-7.5002 \
33.785,-11.062 49.75,-11.062 z" +       \
style="fill:url(#linearGradient3019);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     transform="matrix(17.827787,0,0,25.70881,-5755.9884,-12696.452)"
+     id="layer1"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-7">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1230.7837,333.1939 -10.451,-0.0203 0,-0.47599 0,-0.47599 9.3398,0 c \
5.137,0 12.0715,0.0237 15.4102,0.0527 l 6.0706,0.0527 0,0.45897 0,0.45898 \
-4.9593,-0.0154 c -2.7277,-0.008 -9.6622,-0.0245 -15.4103,-0.0357 l 0,0 z" +         \
id="path3287-6-5" /> +    </g>
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/bassF4Quarter.svg \
b/src/activities/piano_composition/resource/bassF4Quarter.svg new file mode 100644
index 00000000..7fcb6457
--- /dev/null
+++ b/src/activities/piano_composition/resource/bassF4Quarter.svg
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="bassF4Quarter.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
+    <linearGradient
+       x1="382.34"
+       y1="489.14"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-281.8)"
+       x2="490.53"
+       gradientUnits="userSpaceOnUse"
+       y2="333.89"
+       id="linearGradient3019-3">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:.82639"
+         id="stop3015-6" />
+      <stop
+         offset="1"
+         style="stop-color:#000000"
+         id="stop3017-7" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="369.23983"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title />
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12503.505)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     transform="matrix(26.463093,0,0,25.708755,-8651.9315,-12696.424)"
+     id="layer1"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-7">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.1939 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-5" /> +    </g>
+  </g>
+  <g
+     id="layer1-53"
+     transform="translate(3.3891244,1.9454639)">
+    <path
+       d="m 418.39,231.34 c 5.3071,163.8 3.0093,316.18 0.55337,483.27 -1.2461,42.809 \
-38.247,71.529 -72.88,89.908 -30.854,18.567 -67.795,28.966 -103.61,20.691 \
-33.304,-3.4173 -67.756,-27.73 -68.454,-63.704 -2.2204,-41.711 27.904,-80.552 \
64.988,-97.024 36.404,-20.749 82.429,-25.246 121.63,-10.331 19.156,6.0549 \
24.483,-11.721 26.874,-28.819 2.2123,-129.77 3.9829,-259.54 4.4354,-389.33 \
0.36593,-12.973 26.294,-17.166 26.461,-4.6603 z" +       \
style="fill:url(#linearGradient3019-3);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3-5"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/bassF4Whole.svg \
b/src/activities/piano_composition/resource/bassF4Whole.svg new file mode 100644
index 00000000..345042d0
--- /dev/null
+++ b/src/activities/piano_composition/resource/bassF4Whole.svg
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="bassF4Whole.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-281.8)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective3348-35" />
+    <inkscape:perspective
+       id="perspective2844-62"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective3348-6-9" />
+    <inkscape:perspective
+       id="perspective2844-7-1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="691.72367"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <g
+     id="layer1"
+     transform="matrix(0.40259701,0,0,0.46650811,152.80238,414.36682)">
+    <path
+       id="path270"
+       style="fill:#000000"
+       d="m 339.03,493.9 c 166.28,1.498 323.57,64.413 335.55,203.73 8.98,101.9 \
-125.84,194.73 -292.11,194.73 C 214.69,890.86 58.9,829.45 45.42,690.18 36.433,586.73 \
172.66,493.9 339.03,493.9 Z m 40.352,364.01 c 71.903,0 118.34,-68.954 110.85,-124.33 \
C 473.754,624.23 436.304,535.8 337.442,535.8 c -71.903,0 -113.85,70.405 \
-104.86,125.83 16.571,109.4 48.029,196.28 146.8,196.28 z" +       \
inkscape:connector-curvature="0" /> +  </g>
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title />
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(17.60637,0,0,25.7128,-5684.031,-12208.261)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1.3142935,0,0,-0.99999857,1966.7754,845.46225)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,332.29995 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     transform="matrix(23.139938,0,0,25.709452,-7566.9375,-12311.029)"
+     id="layer1-7"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-5">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-3" /> +    </g>
+  </g>
+  <g
+     id="g3435"
+     transform="translate(128.72714,-1252.87)" />
+</svg>
diff --git a/src/activities/piano_composition/resource/bassG4Eighth.svg \
b/src/activities/piano_composition/resource/bassG4Eighth.svg new file mode 100644
index 00000000..3fcca9be
--- /dev/null
+++ b/src/activities/piano_composition/resource/bassG4Eighth.svg
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="bassG4Eighth.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
+    <inkscape:perspective
+       id="perspective3348-36"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-75" />
+    <linearGradient
+       x1="382.34"
+       y1="489.14"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-281.8)"
+       x2="490.53"
+       gradientUnits="userSpaceOnUse"
+       y2="333.89"
+       id="linearGradient3019-3">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:.82639"
+         id="stop3015-6" />
+      <stop
+         offset="1"
+         style="stop-color:#000000"
+         id="stop3017-7" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="369.23983"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title />
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12409.258)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     transform="matrix(26.463093,0,0,25.708755,-8651.9315,-12776.139)"
+     id="layer1"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-7">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.1939 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-5" /> +    </g>
+  </g>
+  <g
+     transform="matrix(26.463093,0,0,25.709358,-8651.9314,-12589.499)"
+     id="layer1-3"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-5">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-6" /> +    </g>
+  </g>
+  <g
+     id="layer1-53"
+     transform="translate(3.3894944,1.9384639)">
+    <path
+       d="m 418.39,231.34 c 14.32,21.136 21.682,46.728 40.135,64.982 21.135,27.835 \
48.146,50.891 69.089,79.058 15.157,19.681 31.771,40.599 36.074,65.357 11.587,31.757 \
6.556,67.409 -5.8056,98.498 -13.947,16.765 -23.482,-4.9319 -19.589,-18.365 \
0.59324,-18.535 0.32293,-37.021 -6.7859,-54.528 -6.3047,-26.255 -17.834,-51.101 \
-37.136,-70.366 -16.772,-14.701 -35.813,-47.095 -61.382,-35.941 -16.885,10.637 \
-9.5289,32.139 -11.346,48.712 -1.0035,101.95 -1.0707,203.94 -2.7005,305.87 \
-1.2461,42.809 -38.247,71.529 -72.88,89.908 -30.854,18.567 -67.795,28.966 \
-103.61,20.691 -33.304,-3.4173 -67.756,-27.73 -68.454,-63.704 -2.2204,-41.711 \
27.904,-80.552 64.988,-97.024 36.404,-20.749 82.429,-25.246 121.63,-10.331 \
19.156,6.0549 24.483,-11.721 26.874,-28.819 2.2123,-129.77 3.9829,-259.54 \
4.4354,-389.33 0.36593,-12.973 21.496,-16.139 26.461,-4.6603 z" +       \
style="fill:url(#linearGradient3019-3);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/bassG4Half.svg \
b/src/activities/piano_composition/resource/bassG4Half.svg new file mode 100644
index 00000000..6e311f7d
--- /dev/null
+++ b/src/activities/piano_composition/resource/bassG4Half.svg
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="bassG4Half.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
+    <inkscape:perspective
+       id="perspective3348-36"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-75" />
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="369.23983"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title />
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12409.258)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     id="layer1-7"
+     transform="translate(3.3913244,201.92335)">
+    <path
+       d="m 407.69,23.853204 c -7.2475,0.33178 -15.544,4.8587 -15.75,12.156 \
-0.45246,129.789996 -2.2252,259.569996 -4.4375,389.339996 -2.3903,17.098 \
-7.7188,34.867 -26.875,28.812 -39.21,-14.91 -85.23,-10.4 -121.63,10.35 -37.084,16.471 \
-67.22,55.289 -65,97 0.69789,35.974 35.134,60.301 68.438,63.719 35.814,8.2749 \
72.771,-2.12 103.62,-20.688 34.633,-18.379 71.629,-47.097 72.875,-89.906 \
2.4559,-167.09 4.7446,-319.48 -0.5625,-483.279996 -0.073,-5.4712 -5.0506,-7.758 \
-10.688,-7.5 z M 308.41,459.8932 c 30.478,-0.002 56.713,13.001 67.312,36.562 \
16.152,35.904 -10.092,82.712 -58.594,104.53 -48.502,21.819 -100.91,10.404 \
-117.06,-25.5 -16.152,-35.904 10.092,-82.712 58.594,-104.53 16.672,-7.5002 \
33.785,-11.062 49.75,-11.062 z" +       \
style="fill:url(#linearGradient3019);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     transform="matrix(26.463093,0,0,25.708755,-8651.9315,-12596.139)"
+     id="layer1"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-7">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.1939 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-5" /> +    </g>
+  </g>
+  <g
+     transform="matrix(26.463093,0,0,25.709358,-8651.9314,-12769.499)"
+     id="layer1-3"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-5">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-6" /> +    </g>
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/bassG4Quarter.svg \
b/src/activities/piano_composition/resource/bassG4Quarter.svg new file mode 100644
index 00000000..80d4a8e3
--- /dev/null
+++ b/src/activities/piano_composition/resource/bassG4Quarter.svg
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="bassG4Quarter.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
+    <inkscape:perspective
+       id="perspective3348-36"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-75" />
+    <linearGradient
+       x1="382.34"
+       y1="489.14"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-281.8)"
+       x2="490.53"
+       gradientUnits="userSpaceOnUse"
+       y2="333.89"
+       id="linearGradient3019-3">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:.82639"
+         id="stop3015-6" />
+      <stop
+         offset="1"
+         style="stop-color:#000000"
+         id="stop3017-7" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="369.23983"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title />
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12409.258)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     transform="matrix(26.463093,0,0,25.708755,-8651.9315,-12596.139)"
+     id="layer1"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-7">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.1939 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-5" /> +    </g>
+  </g>
+  <g
+     transform="matrix(26.463093,0,0,25.709358,-8651.9314,-12769.499)"
+     id="layer1-3"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-5">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-6" /> +    </g>
+  </g>
+  <g
+     id="layer1-53"
+     transform="translate(3.3891244,1.9454639)">
+    <path
+       d="m 418.39,231.34 c 5.3071,163.8 3.0093,316.18 0.55337,483.27 -1.2461,42.809 \
-38.247,71.529 -72.88,89.908 -30.854,18.567 -67.795,28.966 -103.61,20.691 \
-33.304,-3.4173 -67.756,-27.73 -68.454,-63.704 -2.2204,-41.711 27.904,-80.552 \
64.988,-97.024 36.404,-20.749 82.429,-25.246 121.63,-10.331 19.156,6.0549 \
24.483,-11.721 26.874,-28.819 2.2123,-129.77 3.9829,-259.54 4.4354,-389.33 \
0.36593,-12.973 26.294,-17.166 26.461,-4.6603 z" +       \
style="fill:url(#linearGradient3019-3);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/bassG4Whole.svg \
b/src/activities/piano_composition/resource/bassG4Whole.svg new file mode 100644
index 00000000..bebab0cc
--- /dev/null
+++ b/src/activities/piano_composition/resource/bassG4Whole.svg
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="bassG4Whole.svg"
+   width="744"
+   height="1052">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-281.8)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="0.50006349 : 0.33344809 : 1"
+       inkscape:vp_z="1.000127 : 0.50017214 : 1"
+       inkscape:vp_y="0 : 0.95057034 : 0"
+       inkscape:vp_x="0 : 0.50017214 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.00047528517 : 1"
+       inkscape:vp_y="0 : 0.95057034 : 0"
+       inkscape:vp_z="0.001344086 : 0.00047528517 : 1"
+       inkscape:persp3d-origin="0.00067204301 : 0.00031685678 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="0.50006349 : 0.33344809 : 1"
+       inkscape:vp_z="1.000127 : 0.50017214 : 1"
+       inkscape:vp_y="0 : 0.95057034 : 0"
+       inkscape:vp_x="0 : 0.50017214 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.00047528517 : 1"
+       inkscape:vp_y="0 : 0.95057034 : 0"
+       inkscape:vp_z="0.001344086 : 0.00047528517 : 1"
+       inkscape:persp3d-origin="0.00067204301 : 0.00031685678 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="0.50006349 : 0.33344809 : 1"
+       inkscape:vp_z="1.000127 : 0.50017214 : 1"
+       inkscape:vp_y="0 : 0.95057034 : 0"
+       inkscape:vp_x="0 : 0.50017214 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.00047528517 : 1"
+       inkscape:vp_y="0 : 0.95057034 : 0"
+       inkscape:vp_z="0.001344086 : 0.00047528517 : 1"
+       inkscape:persp3d-origin="0.00067204301 : 0.00031685678 : 1"
+       id="perspective2844-6" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.50017214 : 1"
+       inkscape:vp_y="0 : 0.95057034 : 0"
+       inkscape:vp_z="1.000127 : 0.50017214 : 1"
+       inkscape:persp3d-origin="0.50006349 : 0.33344809 : 1"
+       id="perspective3348-35" />
+    <inkscape:perspective
+       id="perspective2844-62"
+       inkscape:persp3d-origin="0.00067204301 : 0.00031685678 : 1"
+       inkscape:vp_z="0.001344086 : 0.00047528517 : 1"
+       inkscape:vp_y="0 : 0.95057034 : 0"
+       inkscape:vp_x="0 : 0.00047528517 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.50017214 : 1"
+       inkscape:vp_y="0 : 0.95057034 : 0"
+       inkscape:vp_z="1.000127 : 0.50017214 : 1"
+       inkscape:persp3d-origin="0.50006349 : 0.33344809 : 1"
+       id="perspective3348-6-9" />
+    <inkscape:perspective
+       id="perspective2844-7-1"
+       inkscape:persp3d-origin="0.00067204301 : 0.00031685678 : 1"
+       inkscape:vp_z="0.001344086 : 0.00047528517 : 1"
+       inkscape:vp_y="0 : 0.95057034 : 0"
+       inkscape:vp_x="0 : 0.00047528517 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="691.72367"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <g
+     id="layer1"
+     transform="matrix(0.40259701,0,0,0.46650811,152.80238,414.36682)">
+    <path
+       id="path270"
+       style="fill:#000000"
+       d="m 339.03,493.9 c 166.28,1.498 323.57,64.413 335.55,203.73 8.98,101.9 \
-125.84,194.73 -292.11,194.73 C 214.69,890.86 58.9,829.45 45.42,690.18 36.433,586.73 \
172.66,493.9 339.03,493.9 Z m 40.352,364.01 c 71.903,0 118.34,-68.954 110.85,-124.33 \
C 473.754,624.23 436.304,535.8 337.442,535.8 c -71.903,0 -113.85,70.405 \
-104.86,125.83 16.571,109.4 48.029,196.28 146.8,196.28 z" +       \
inkscape:connector-curvature="0" /> +  </g>
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(23.139938,0,0,25.712763,-7569.9593,-12142.402)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.9516,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,332.29995 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     transform="matrix(23.139938,0,0,25.709452,-7566.9373,-12220.873)"
+     id="layer1-7"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-5">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-3" /> +    </g>
+  </g>
+  <g
+     id="g3435"
+     transform="matrix(1.3142935,0,0,0.99999857,71.418593,-1252.8671)">
+    <g
+       inkscape:label="Layer 1"
+       id="layer1-5-6"
+       transform="matrix(17.60637,0,0,25.7128,-5811.758,-11140.404)">
+      <g
+         id="g3336-0"
+         transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+         style="fill:#000000">
+        <path
+           id="path3287-6-6"
+           d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +           \
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round; \
stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" +   \
inkscape:connector-curvature="0" /> +      </g>
+    </g>
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/bass_pitches/1/-1.wav \
b/src/activities/piano_composition/resource/bass_pitches/1/-1.wav deleted file mode \
100644 index cb2450ec..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/1/-1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/1/-2.wav \
b/src/activities/piano_composition/resource/bass_pitches/1/-2.wav deleted file mode \
100644 index 93c9bfad..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/1/-2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/1/-3.wav \
b/src/activities/piano_composition/resource/bass_pitches/1/-3.wav deleted file mode \
100644 index 3246ca4b..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/1/-3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/1/-4.wav \
b/src/activities/piano_composition/resource/bass_pitches/1/-4.wav deleted file mode \
100644 index 07279890..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/1/-4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/1/-5.wav \
b/src/activities/piano_composition/resource/bass_pitches/1/-5.wav deleted file mode \
100644 index ee623136..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/1/-5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/1/1.wav \
b/src/activities/piano_composition/resource/bass_pitches/1/1.wav deleted file mode \
100644 index 955af218..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/1/1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/1/2.wav \
b/src/activities/piano_composition/resource/bass_pitches/1/2.wav deleted file mode \
100644 index ed00ce76..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/1/2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/1/3.wav \
b/src/activities/piano_composition/resource/bass_pitches/1/3.wav deleted file mode \
100644 index 7f93e2a4..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/1/3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/1/4.wav \
b/src/activities/piano_composition/resource/bass_pitches/1/4.wav deleted file mode \
100644 index 0155bce5..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/1/4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/1/5.wav \
b/src/activities/piano_composition/resource/bass_pitches/1/5.wav deleted file mode \
100644 index 6a8387f4..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/1/5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/1/6.wav \
b/src/activities/piano_composition/resource/bass_pitches/1/6.wav deleted file mode \
100644 index 42ac5211..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/1/6.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/1/7.wav \
b/src/activities/piano_composition/resource/bass_pitches/1/7.wav deleted file mode \
100644 index 4b139314..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/1/7.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/1/8.wav \
b/src/activities/piano_composition/resource/bass_pitches/1/8.wav deleted file mode \
100644 index 852cb80a..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/1/8.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/2/-1.wav \
b/src/activities/piano_composition/resource/bass_pitches/2/-1.wav deleted file mode \
100644 index 3b140a4c..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/2/-1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/2/-2.wav \
b/src/activities/piano_composition/resource/bass_pitches/2/-2.wav deleted file mode \
100644 index 44fc8cbd..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/2/-2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/2/-3.wav \
b/src/activities/piano_composition/resource/bass_pitches/2/-3.wav deleted file mode \
100644 index 31010b28..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/2/-3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/2/-4.wav \
b/src/activities/piano_composition/resource/bass_pitches/2/-4.wav deleted file mode \
100644 index f0b47bbe..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/2/-4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/2/-5.wav \
b/src/activities/piano_composition/resource/bass_pitches/2/-5.wav deleted file mode \
100644 index e2a17ccb..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/2/-5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/2/1.wav \
b/src/activities/piano_composition/resource/bass_pitches/2/1.wav deleted file mode \
100644 index 31c7af7e..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/2/1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/2/2.wav \
b/src/activities/piano_composition/resource/bass_pitches/2/2.wav deleted file mode \
100644 index 7cef3a6d..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/2/2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/2/3.wav \
b/src/activities/piano_composition/resource/bass_pitches/2/3.wav deleted file mode \
100644 index 687e1c72..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/2/3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/2/4.wav \
b/src/activities/piano_composition/resource/bass_pitches/2/4.wav deleted file mode \
100644 index bfc085c0..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/2/4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/2/5.wav \
b/src/activities/piano_composition/resource/bass_pitches/2/5.wav deleted file mode \
100644 index 4c76fe9c..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/2/5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/2/6.wav \
b/src/activities/piano_composition/resource/bass_pitches/2/6.wav deleted file mode \
100644 index 0643c711..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/2/6.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/2/7.wav \
b/src/activities/piano_composition/resource/bass_pitches/2/7.wav deleted file mode \
100644 index 24f787b0..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/2/7.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/2/8.wav \
b/src/activities/piano_composition/resource/bass_pitches/2/8.wav deleted file mode \
100644 index 60e91365..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/2/8.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/4/-1.wav \
b/src/activities/piano_composition/resource/bass_pitches/4/-1.wav deleted file mode \
100644 index ea818874..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/4/-1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/4/-2.wav \
b/src/activities/piano_composition/resource/bass_pitches/4/-2.wav deleted file mode \
100644 index 1056850b..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/4/-2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/4/-3.wav \
b/src/activities/piano_composition/resource/bass_pitches/4/-3.wav deleted file mode \
100644 index e89f1756..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/4/-3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/4/-4.wav \
b/src/activities/piano_composition/resource/bass_pitches/4/-4.wav deleted file mode \
100644 index 314c31ab..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/4/-4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/4/-5.wav \
b/src/activities/piano_composition/resource/bass_pitches/4/-5.wav deleted file mode \
100644 index 3fd24755..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/4/-5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/4/1.wav \
b/src/activities/piano_composition/resource/bass_pitches/4/1.wav deleted file mode \
100644 index b34f465e..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/4/1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/4/2.wav \
b/src/activities/piano_composition/resource/bass_pitches/4/2.wav deleted file mode \
100644 index b696303f..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/4/2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/4/3.wav \
b/src/activities/piano_composition/resource/bass_pitches/4/3.wav deleted file mode \
100644 index 56163011..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/4/3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/4/4.wav \
b/src/activities/piano_composition/resource/bass_pitches/4/4.wav deleted file mode \
100644 index ee74166b..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/4/4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/4/5.wav \
b/src/activities/piano_composition/resource/bass_pitches/4/5.wav deleted file mode \
100644 index 35397437..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/4/5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/4/6.wav \
b/src/activities/piano_composition/resource/bass_pitches/4/6.wav deleted file mode \
100644 index ec9d512e..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/4/6.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/4/7.wav \
b/src/activities/piano_composition/resource/bass_pitches/4/7.wav deleted file mode \
100644 index cc8d2c6d..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/4/7.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/4/8.wav \
b/src/activities/piano_composition/resource/bass_pitches/4/8.wav deleted file mode \
100644 index a5ea9889..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/4/8.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/8/-1.wav \
b/src/activities/piano_composition/resource/bass_pitches/8/-1.wav deleted file mode \
100644 index a2c8def0..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/8/-1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/8/-2.wav \
b/src/activities/piano_composition/resource/bass_pitches/8/-2.wav deleted file mode \
100644 index 982019da..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/8/-2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/8/-3.wav \
b/src/activities/piano_composition/resource/bass_pitches/8/-3.wav deleted file mode \
100644 index 27560106..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/8/-3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/8/-4.wav \
b/src/activities/piano_composition/resource/bass_pitches/8/-4.wav deleted file mode \
100644 index 4f58bdd4..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/8/-4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/8/-5.wav \
b/src/activities/piano_composition/resource/bass_pitches/8/-5.wav deleted file mode \
100644 index a678e722..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/8/-5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/8/1.wav \
b/src/activities/piano_composition/resource/bass_pitches/8/1.wav deleted file mode \
100644 index 40bd9809..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/8/1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/8/2.wav \
b/src/activities/piano_composition/resource/bass_pitches/8/2.wav deleted file mode \
100644 index 97ce0718..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/8/2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/8/3.wav \
b/src/activities/piano_composition/resource/bass_pitches/8/3.wav deleted file mode \
100644 index d02df276..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/8/3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/8/4.wav \
b/src/activities/piano_composition/resource/bass_pitches/8/4.wav deleted file mode \
100644 index a1afc724..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/8/4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/8/5.wav \
b/src/activities/piano_composition/resource/bass_pitches/8/5.wav deleted file mode \
100644 index 2d7b5180..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/8/5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/8/6.wav \
b/src/activities/piano_composition/resource/bass_pitches/8/6.wav deleted file mode \
100644 index acb8efcb..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/8/6.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/8/7.wav \
b/src/activities/piano_composition/resource/bass_pitches/8/7.wav deleted file mode \
100644 index 00cdd4a3..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/8/7.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/bass_pitches/8/8.wav \
b/src/activities/piano_composition/resource/bass_pitches/8/8.wav deleted file mode \
100644 index 8067fdad..00000000
Binary files a/src/activities/piano_composition/resource/bass_pitches/8/8.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/eighth-note.svg \
b/src/activities/piano_composition/resource/genericNoteEighth.svg similarity index \
100% rename from src/activities/piano_composition/resource/eighth-note.svg
rename to src/activities/piano_composition/resource/genericNoteEighth.svg
diff --git a/src/activities/piano_composition/resource/half-note.svg \
b/src/activities/piano_composition/resource/genericNoteHalf.svg similarity index 100%
rename from src/activities/piano_composition/resource/half-note.svg
rename to src/activities/piano_composition/resource/genericNoteHalf.svg
diff --git a/src/activities/piano_composition/resource/quarter-note.svg \
b/src/activities/piano_composition/resource/genericNoteQuarter.svg similarity index \
100% rename from src/activities/piano_composition/resource/quarter-note.svg
rename to src/activities/piano_composition/resource/genericNoteQuarter.svg
diff --git a/src/activities/piano_composition/resource/whole-note.svg \
b/src/activities/piano_composition/resource/genericNoteWhole.svg similarity index \
100% copy from src/activities/piano_composition/resource/whole-note.svg
copy to src/activities/piano_composition/resource/genericNoteWhole.svg
diff --git a/src/activities/piano_composition/resource/trebleA3Eighth.svg \
b/src/activities/piano_composition/resource/trebleA3Eighth.svg new file mode 100644
index 00000000..282a0468
--- /dev/null
+++ b/src/activities/piano_composition/resource/trebleA3Eighth.svg
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="trebleA3Eighth.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
+    <linearGradient
+       x1="382.34"
+       y1="489.14"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-281.8)"
+       x2="490.53"
+       gradientUnits="userSpaceOnUse"
+       y2="333.89"
+       id="linearGradient3019-3">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:.82639"
+         id="stop3015-6" />
+      <stop
+         offset="1"
+         style="stop-color:#000000"
+         id="stop3017-7" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="369.23983"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title />
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12409.258)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     transform="matrix(26.463093,0,0,25.708755,-8651.9315,-12612.842)"
+     id="layer1"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-7">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.1939 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-5" /> +    </g>
+  </g>
+  <g
+     id="layer1-53"
+     transform="translate(3.3894944,1.9384639)">
+    <path
+       d="m 418.39,231.34 c 14.32,21.136 21.682,46.728 40.135,64.982 21.135,27.835 \
48.146,50.891 69.089,79.058 15.157,19.681 31.771,40.599 36.074,65.357 11.587,31.757 \
6.556,67.409 -5.8056,98.498 -13.947,16.765 -23.482,-4.9319 -19.589,-18.365 \
0.59324,-18.535 0.32293,-37.021 -6.7859,-54.528 -6.3047,-26.255 -17.834,-51.101 \
-37.136,-70.366 -16.772,-14.701 -35.813,-47.095 -61.382,-35.941 -16.885,10.637 \
-9.5289,32.139 -11.346,48.712 -1.0035,101.95 -1.0707,203.94 -2.7005,305.87 \
-1.2461,42.809 -38.247,71.529 -72.88,89.908 -30.854,18.567 -67.795,28.966 \
-103.61,20.691 -33.304,-3.4173 -67.756,-27.73 -68.454,-63.704 -2.2204,-41.711 \
27.904,-80.552 64.988,-97.024 36.404,-20.749 82.429,-25.246 121.63,-10.331 \
19.156,6.0549 24.483,-11.721 26.874,-28.819 2.2123,-129.77 3.9829,-259.54 \
4.4354,-389.33 0.36593,-12.973 21.496,-16.139 26.461,-4.6603 z" +       \
style="fill:url(#linearGradient3019-3);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3-5"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/trebleA3Half.svg \
b/src/activities/piano_composition/resource/trebleA3Half.svg new file mode 100644
index 00000000..9ebb03c9
--- /dev/null
+++ b/src/activities/piano_composition/resource/trebleA3Half.svg
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="trebleA3Half.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="369.23983"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title />
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12409.258)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     id="layer1-7"
+     transform="translate(3.3913244,201.92335)">
+    <path
+       d="m 407.69,23.853204 c -7.2475,0.33178 -15.544,4.8587 -15.75,12.156 \
-0.45246,129.789996 -2.2252,259.569996 -4.4375,389.339996 -2.3903,17.098 \
-7.7188,34.867 -26.875,28.812 -39.21,-14.91 -85.23,-10.4 -121.63,10.35 -37.084,16.471 \
-67.22,55.289 -65,97 0.69789,35.974 35.134,60.301 68.438,63.719 35.814,8.2749 \
72.771,-2.12 103.62,-20.688 34.633,-18.379 71.629,-47.097 72.875,-89.906 \
2.4559,-167.09 4.7446,-319.48 -0.5625,-483.279996 -0.073,-5.4712 -5.0506,-7.758 \
-10.688,-7.5 z M 308.41,459.8932 c 30.478,-0.002 56.713,13.001 67.312,36.562 \
16.152,35.904 -10.092,82.712 -58.594,104.53 -48.502,21.819 -100.91,10.404 \
-117.06,-25.5 -16.152,-35.904 10.092,-82.712 58.594,-104.53 16.672,-7.5002 \
33.785,-11.062 49.75,-11.062 z" +       \
style="fill:url(#linearGradient3019);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     transform="matrix(26.463093,0,0,25.708755,-8651.9315,-12606.139)"
+     id="layer1"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-7">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.1939 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-5" /> +    </g>
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/trebleA3Quarter.svg \
b/src/activities/piano_composition/resource/trebleA3Quarter.svg new file mode 100644
index 00000000..5c08824c
--- /dev/null
+++ b/src/activities/piano_composition/resource/trebleA3Quarter.svg
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="trebleA3Quarter.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
+    <linearGradient
+       x1="382.34"
+       y1="489.14"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-281.8)"
+       x2="490.53"
+       gradientUnits="userSpaceOnUse"
+       y2="333.89"
+       id="linearGradient3019-3">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:.82639"
+         id="stop3015-6" />
+      <stop
+         offset="1"
+         style="stop-color:#000000"
+         id="stop3017-7" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="369.23983"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title />
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12409.258)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     transform="matrix(26.463093,0,0,25.708755,-8651.9315,-12606.139)"
+     id="layer1"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-7">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.1939 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-5" /> +    </g>
+  </g>
+  <g
+     id="layer1-53"
+     transform="translate(3.3891244,1.9454639)">
+    <path
+       d="m 418.39,231.34 c 5.3071,163.8 3.0093,316.18 0.55337,483.27 -1.2461,42.809 \
-38.247,71.529 -72.88,89.908 -30.854,18.567 -67.795,28.966 -103.61,20.691 \
-33.304,-3.4173 -67.756,-27.73 -68.454,-63.704 -2.2204,-41.711 27.904,-80.552 \
64.988,-97.024 36.404,-20.749 82.429,-25.246 121.63,-10.331 19.156,6.0549 \
24.483,-11.721 26.874,-28.819 2.2123,-129.77 3.9829,-259.54 4.4354,-389.33 \
0.36593,-12.973 26.294,-17.166 26.461,-4.6603 z" +       \
style="fill:url(#linearGradient3019-3);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/whole-note.svg \
b/src/activities/piano_composition/resource/trebleA3Whole.svg similarity index 50%
copy from src/activities/piano_composition/resource/whole-note.svg
copy to src/activities/piano_composition/resource/trebleA3Whole.svg
index 22edd5b6..f15f70bf 100644
--- a/src/activities/piano_composition/resource/whole-note.svg
+++ b/src/activities/piano_composition/resource/trebleA3Whole.svg
@@ -13,7 +13,7 @@
    viewBox="0 0 744 1052"
    version="1.1"
    inkscape:version="0.91 r13725"
-   sodipodi:docname="whole-note.svg">
+   sodipodi:docname="trebleA3Whole.svg">
   <defs
      id="defs9">
     <linearGradient
@@ -33,6 +33,48 @@
          style="stop-color:#000000"
          offset="1" />
     </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
   </defs>
   <sodipodi:namedview
      pagecolor="#ffffff"
@@ -43,16 +85,16 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="800"
-     inkscape:window-height="630"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
      id="namedview7"
      showgrid="false"
-     inkscape:zoom="0.21751436"
-     inkscape:cx="462.7609"
-     inkscape:cy="371.73958"
-     inkscape:window-x="737"
-     inkscape:window-y="169"
-     inkscape:window-maximized="0"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="691.72367"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
      inkscape:current-layer="svg2" />
   <g
      id="layer1"
@@ -78,7 +120,7 @@
             <dc:title>Openclipart</dc:title>
           </cc:Agent>
         </dc:publisher>
-        <dc:title>whole note</dc:title>
+        <dc:title />
         <dc:date>2011-05-27T21:51:50</dc:date>
         <dc:description>There didn't seem to be a whole note on openclipart already. \
                Here is a big one!</dc:description>
         <dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source>
 @@ -107,4 +149,34 @@
       </cc:License>
     </rdf:RDF>
   </metadata>
+  <g
+     transform="matrix(23.139938,0,0,25.712763,-7569.9595,-12248.242)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.9516,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     transform="matrix(23.139938,0,0,25.709452,-7566.9375,-12405.276)"
+     id="layer1-7"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336-5">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6-3" /> +    </g>
+  </g>
 </svg>
diff --git a/src/activities/piano_composition/resource/trebleB3Eighth.svg \
b/src/activities/piano_composition/resource/trebleB3Eighth.svg new file mode 100644
index 00000000..8b60af22
--- /dev/null
+++ b/src/activities/piano_composition/resource/trebleB3Eighth.svg
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="eighth-note2.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
+    <linearGradient
+       x1="382.34"
+       y1="489.14"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-281.8)"
+       x2="490.53"
+       gradientUnits="userSpaceOnUse"
+       y2="333.89"
+       id="linearGradient3019-3">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:.82639"
+         id="stop3015-6" />
+      <stop
+         offset="1"
+         style="stop-color:#000000"
+         id="stop3017-7" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="369.23983"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12503.505)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     id="layer1-53"
+     transform="translate(3.3894944,1.9384639)">
+    <path
+       d="m 418.39,231.34 c 14.32,21.136 21.682,46.728 40.135,64.982 21.135,27.835 \
48.146,50.891 69.089,79.058 15.157,19.681 31.771,40.599 36.074,65.357 11.587,31.757 \
6.556,67.409 -5.8056,98.498 -13.947,16.765 -23.482,-4.9319 -19.589,-18.365 \
0.59324,-18.535 0.32293,-37.021 -6.7859,-54.528 -6.3047,-26.255 -17.834,-51.101 \
-37.136,-70.366 -16.772,-14.701 -35.813,-47.095 -61.382,-35.941 -16.885,10.637 \
-9.5289,32.139 -11.346,48.712 -1.0035,101.95 -1.0707,203.94 -2.7005,305.87 \
-1.2461,42.809 -38.247,71.529 -72.88,89.908 -30.854,18.567 -67.795,28.966 \
-103.61,20.691 -33.304,-3.4173 -67.756,-27.73 -68.454,-63.704 -2.2204,-41.711 \
27.904,-80.552 64.988,-97.024 36.404,-20.749 82.429,-25.246 121.63,-10.331 \
19.156,6.0549 24.483,-11.721 26.874,-28.819 2.2123,-129.77 3.9829,-259.54 \
4.4354,-389.33 0.36593,-12.973 21.496,-16.139 26.461,-4.6603 z" +       \
style="fill:url(#linearGradient3019-3);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/trebleB3Half.svg \
b/src/activities/piano_composition/resource/trebleB3Half.svg new file mode 100644
index 00000000..a8eba5bc
--- /dev/null
+++ b/src/activities/piano_composition/resource/trebleB3Half.svg
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="half-note2.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="369.23983"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12503.505)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     id="layer1-7"
+     transform="translate(3.3913244,201.92335)">
+    <path
+       d="m 407.69,23.853204 c -7.2475,0.33178 -15.544,4.8587 -15.75,12.156 \
-0.45246,129.789996 -2.2252,259.569996 -4.4375,389.339996 -2.3903,17.098 \
-7.7188,34.867 -26.875,28.812 -39.21,-14.91 -85.23,-10.4 -121.63,10.35 -37.084,16.471 \
-67.22,55.289 -65,97 0.69789,35.974 35.134,60.301 68.438,63.719 35.814,8.2749 \
72.771,-2.12 103.62,-20.688 34.633,-18.379 71.629,-47.097 72.875,-89.906 \
2.4559,-167.09 4.7446,-319.48 -0.5625,-483.279996 -0.073,-5.4712 -5.0506,-7.758 \
-10.688,-7.5 z M 308.41,459.8932 c 30.478,-0.002 56.713,13.001 67.312,36.562 \
16.152,35.904 -10.092,82.712 -58.594,104.53 -48.502,21.819 -100.91,10.404 \
-117.06,-25.5 -16.152,-35.904 10.092,-82.712 58.594,-104.53 16.672,-7.5002 \
33.785,-11.062 49.75,-11.062 z" +       \
style="fill:url(#linearGradient3019);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/trebleB3Quarter.svg \
b/src/activities/piano_composition/resource/trebleB3Quarter.svg new file mode 100644
index 00000000..9b2a18a6
--- /dev/null
+++ b/src/activities/piano_composition/resource/trebleB3Quarter.svg
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="quarter-note2.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <inkscape:perspective
+       id="perspective3348-3"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-6" />
+    <linearGradient
+       x1="382.34"
+       y1="489.14"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-281.8)"
+       x2="490.53"
+       gradientUnits="userSpaceOnUse"
+       y2="333.89"
+       id="linearGradient3019-3">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:.82639"
+         id="stop3015-6" />
+      <stop
+         offset="1"
+         style="stop-color:#000000"
+         id="stop3017-7" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="369.23983"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12503.505)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     id="layer1-53"
+     transform="translate(3.3891244,1.9454639)">
+    <path
+       d="m 418.39,231.34 c 5.3071,163.8 3.0093,316.18 0.55337,483.27 -1.2461,42.809 \
-38.247,71.529 -72.88,89.908 -30.854,18.567 -67.795,28.966 -103.61,20.691 \
-33.304,-3.4173 -67.756,-27.73 -68.454,-63.704 -2.2204,-41.711 27.904,-80.552 \
64.988,-97.024 36.404,-20.749 82.429,-25.246 121.63,-10.331 19.156,6.0549 \
24.483,-11.721 26.874,-28.819 2.2123,-129.77 3.9829,-259.54 4.4354,-389.33 \
0.36593,-12.973 26.294,-17.166 26.461,-4.6603 z" +       \
style="fill:url(#linearGradient3019-3);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3-5"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/whole-note.svg \
b/src/activities/piano_composition/resource/trebleB3Whole.svg similarity index 62%
copy from src/activities/piano_composition/resource/whole-note.svg
copy to src/activities/piano_composition/resource/trebleB3Whole.svg
index 22edd5b6..5dde5ae4 100644
--- a/src/activities/piano_composition/resource/whole-note.svg
+++ b/src/activities/piano_composition/resource/trebleB3Whole.svg
@@ -13,7 +13,7 @@
    viewBox="0 0 744 1052"
    version="1.1"
    inkscape:version="0.91 r13725"
-   sodipodi:docname="whole-note.svg">
+   sodipodi:docname="whole-note2.svg">
   <defs
      id="defs9">
     <linearGradient
@@ -33,6 +33,34 @@
          style="stop-color:#000000"
          offset="1" />
     </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
   </defs>
   <sodipodi:namedview
      pagecolor="#ffffff"
@@ -43,16 +71,16 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="800"
-     inkscape:window-height="630"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
      id="namedview7"
      showgrid="false"
-     inkscape:zoom="0.21751436"
-     inkscape:cx="462.7609"
-     inkscape:cy="371.73958"
-     inkscape:window-x="737"
-     inkscape:window-y="169"
-     inkscape:window-maximized="0"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="323.93186"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
      inkscape:current-layer="svg2" />
   <g
      id="layer1"
@@ -78,7 +106,7 @@
             <dc:title>Openclipart</dc:title>
           </cc:Agent>
         </dc:publisher>
-        <dc:title>whole note</dc:title>
+        <dc:title />
         <dc:date>2011-05-27T21:51:50</dc:date>
         <dc:description>There didn't seem to be a whole note on openclipart already. \
                Here is a big one!</dc:description>
         <dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source>
 @@ -107,4 +135,19 @@
       </cc:License>
     </rdf:RDF>
   </metadata>
+  <g
+     transform="matrix(23.139938,0,0,25.712763,-7566.9374,-12315.021)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
 </svg>
diff --git a/src/activities/piano_composition/resource/trebleC4Eighth.svg \
b/src/activities/piano_composition/resource/trebleC4Eighth.svg new file mode 100644
index 00000000..d39bfdef
--- /dev/null
+++ b/src/activities/piano_composition/resource/trebleC4Eighth.svg
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="eighth-note.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <linearGradient
+       x1="382.34"
+       y1="489.14"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-281.8)"
+       x2="490.53"
+       gradientUnits="userSpaceOnUse"
+       y2="333.89"
+       id="linearGradient3019-3">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:.82639"
+         id="stop3015-6" />
+      <stop
+         offset="1"
+         style="stop-color:#000000"
+         id="stop3017-7" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="323.93186"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title />
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463103,0,0,25.712753,-8651.9346,-12409.262)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     id="layer1"
+     transform="translate(3.3894944,1.9384639)">
+    <path
+       d="m 418.39,231.34 c 14.32,21.136 21.682,46.728 40.135,64.982 21.135,27.835 \
48.146,50.891 69.089,79.058 15.157,19.681 31.771,40.599 36.074,65.357 11.587,31.757 \
6.556,67.409 -5.8056,98.498 -13.947,16.765 -23.482,-4.9319 -19.589,-18.365 \
0.59324,-18.535 0.32293,-37.021 -6.7859,-54.528 -6.3047,-26.255 -17.834,-51.101 \
-37.136,-70.366 -16.772,-14.701 -35.813,-47.095 -61.382,-35.941 -16.885,10.637 \
-9.5289,32.139 -11.346,48.712 -1.0035,101.95 -1.0707,203.94 -2.7005,305.87 \
-1.2461,42.809 -38.247,71.529 -72.88,89.908 -30.854,18.567 -67.795,28.966 \
-103.61,20.691 -33.304,-3.4173 -67.756,-27.73 -68.454,-63.704 -2.2204,-41.711 \
27.904,-80.552 64.988,-97.024 36.404,-20.749 82.429,-25.246 121.63,-10.331 \
19.156,6.0549 24.483,-11.721 26.874,-28.819 2.2123,-129.77 3.9829,-259.54 \
4.4354,-389.33 0.36593,-12.973 21.496,-16.139 26.461,-4.6603 z" +       \
style="fill:url(#linearGradient3019-3);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/trebleC4Half.svg \
b/src/activities/piano_composition/resource/trebleC4Half.svg new file mode 100644
index 00000000..a9514240
--- /dev/null
+++ b/src/activities/piano_composition/resource/trebleC4Half.svg
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="half-note.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="323.93186"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title />
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12409.258)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     id="layer1-7"
+     transform="translate(3.3913244,201.92335)">
+    <path
+       d="m 407.69,23.853204 c -7.2475,0.33178 -15.544,4.8587 -15.75,12.156 \
-0.45246,129.789996 -2.2252,259.569996 -4.4375,389.339996 -2.3903,17.098 \
-7.7188,34.867 -26.875,28.812 -39.21,-14.91 -85.23,-10.4 -121.63,10.35 -37.084,16.471 \
-67.22,55.289 -65,97 0.69789,35.974 35.134,60.301 68.438,63.719 35.814,8.2749 \
72.771,-2.12 103.62,-20.688 34.633,-18.379 71.629,-47.097 72.875,-89.906 \
2.4559,-167.09 4.7446,-319.48 -0.5625,-483.279996 -0.073,-5.4712 -5.0506,-7.758 \
-10.688,-7.5 z M 308.41,459.8932 c 30.478,-0.002 56.713,13.001 67.312,36.562 \
16.152,35.904 -10.092,82.712 -58.594,104.53 -48.502,21.819 -100.91,10.404 \
-117.06,-25.5 -16.152,-35.904 10.092,-82.712 58.594,-104.53 16.672,-7.5002 \
33.785,-11.062 49.75,-11.062 z" +       \
style="fill:url(#linearGradient3019);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/trebleC4Quarter.svg \
b/src/activities/piano_composition/resource/trebleC4Quarter.svg new file mode 100644
index 00000000..63033e7d
--- /dev/null
+++ b/src/activities/piano_composition/resource/trebleC4Quarter.svg
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   viewBox="0 0 744 1052"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="quarter-note.svg">
+  <defs
+     id="defs9">
+    <linearGradient
+       id="linearGradient3019"
+       y2="333.89001"
+       gradientUnits="userSpaceOnUse"
+       x2="490.53"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-481.7868)"
+       y1="489.14001"
+       x1="382.34">
+      <stop
+         id="stop3015"
+         style="stop-color:#000000;stop-opacity:.82639"
+         offset="0" />
+      <stop
+         id="stop3017"
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
+    <linearGradient
+       x1="382.34"
+       y1="489.14"
+       gradientTransform="matrix(2.0779,0,0,2.0779,-518.08,-281.8)"
+       x2="490.53"
+       gradientUnits="userSpaceOnUse"
+       y2="333.89"
+       id="linearGradient3019-3">
+      <stop
+         offset="0"
+         style="stop-color:#000000;stop-opacity:.82639"
+         id="stop3015-6" />
+      <stop
+         offset="1"
+         style="stop-color:#000000"
+         id="stop3017-7" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="323.93186"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title />
+        <dc:date>2011-05-27T21:51:50</dc:date>
+        <dc:description>There didn't seem to be a whole note on openclipart already. \
Here is a big one!</dc:description> +        \
<dc:source>https://openclipart.org/detail/140893/whole-note-by-10binary</dc:source> + \
<dc:creator> +          <cc:Agent>
+            <dc:title>10binary</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>music</rdf:li>
+            <rdf:li>notation</rdf:li>
+            <rdf:li>note</rdf:li>
+            <rdf:li>whole</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(26.463093,0,0,25.712743,-8651.9315,-12409.258)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
+  <g
+     id="layer1"
+     transform="translate(3.3891244,1.9454639)">
+    <path
+       d="m 418.39,231.34 c 5.3071,163.8 3.0093,316.18 0.55337,483.27 -1.2461,42.809 \
-38.247,71.529 -72.88,89.908 -30.854,18.567 -67.795,28.966 -103.61,20.691 \
-33.304,-3.4173 -67.756,-27.73 -68.454,-63.704 -2.2204,-41.711 27.904,-80.552 \
64.988,-97.024 36.404,-20.749 82.429,-25.246 121.63,-10.331 19.156,6.0549 \
24.483,-11.721 26.874,-28.819 2.2123,-129.77 3.9829,-259.54 4.4354,-389.33 \
0.36593,-12.973 26.294,-17.166 26.461,-4.6603 z" +       \
style="fill:url(#linearGradient3019-3);fill-rule:evenodd;stroke:#000000;stroke-width:5.92409992;stroke-linecap:round;stroke-linejoin:round"
 +       id="path3-5"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/activities/piano_composition/resource/whole-note.svg \
b/src/activities/piano_composition/resource/trebleC4Whole.svg similarity index 63%
rename from src/activities/piano_composition/resource/whole-note.svg
rename to src/activities/piano_composition/resource/trebleC4Whole.svg
index 22edd5b6..8a1ca626 100644
--- a/src/activities/piano_composition/resource/whole-note.svg
+++ b/src/activities/piano_composition/resource/trebleC4Whole.svg
@@ -33,6 +33,34 @@
          style="stop-color:#000000"
          offset="1" />
     </linearGradient>
+    <inkscape:perspective
+       id="perspective3348"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844" />
+    <inkscape:perspective
+       id="perspective3348-6"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       id="perspective2844-7" />
   </defs>
   <sodipodi:namedview
      pagecolor="#ffffff"
@@ -43,16 +71,16 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="800"
-     inkscape:window-height="630"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
      id="namedview7"
      showgrid="false"
-     inkscape:zoom="0.21751436"
-     inkscape:cx="462.7609"
-     inkscape:cy="371.73958"
-     inkscape:window-x="737"
-     inkscape:window-y="169"
-     inkscape:window-maximized="0"
+     inkscape:zoom="0.43502872"
+     inkscape:cx="1006.4324"
+     inkscape:cy="323.93186"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
      inkscape:current-layer="svg2" />
   <g
      id="layer1"
@@ -107,4 +135,19 @@
       </cc:License>
     </rdf:RDF>
   </metadata>
+  <g
+     transform="matrix(23.139937,0,0,25.712759,-7566.9367,-12409.267)"
+     id="layer1-5"
+     inkscape:label="Layer 1">
+    <g
+       style="fill:#000000"
+       transform="matrix(-1,0,0,-1,1577.821,844.41268)"
+       id="g3336">
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-line \
cap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +         d="m 1234.5939,333.46214 -7.0407,-0.0203 0,-0.47599 0,-0.47599 6.2921,0 c \
3.4607,0 8.1324,0.0237 10.3816,0.0527 l 4.0897,0.0527 0,0.45897 0,0.45898 \
-3.341,-0.0154 c -1.8376,-0.008 -6.5093,-0.0245 -10.3817,-0.0357 l 0,0 z" +         \
id="path3287-6" /> +    </g>
+  </g>
 </svg>
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/-1.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/-1.wav deleted file mode \
100644 index 86f4885b..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/-1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/-2.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/-2.wav deleted file mode \
100644 index 3dc0ec57..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/-2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/-3.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/-3.wav deleted file mode \
100644 index f5e42b13..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/-3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/-4.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/-4.wav deleted file mode \
100644 index 63744def..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/-4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/-5.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/-5.wav deleted file mode \
100644 index 73189a7f..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/-5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/1.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/1.wav deleted file mode \
100644 index f5550b7b..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/10.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/10.wav deleted file mode \
100644 index e414770c..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/10.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/11.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/11.wav deleted file mode \
100644 index 44cc2db6..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/11.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/2.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/2.wav deleted file mode \
100644 index 5fd17503..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/3.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/3.wav deleted file mode \
100644 index 3c0fa721..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/4.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/4.wav deleted file mode \
100644 index 93efe1a8..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/5.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/5.wav deleted file mode \
100644 index 7ae8865e..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/6.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/6.wav deleted file mode \
100644 index 7aacdc3e..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/6.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/7.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/7.wav deleted file mode \
100644 index d63c2a02..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/7.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/8.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/8.wav deleted file mode \
100644 index 9fa8ffc9..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/8.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/1/9.wav \
b/src/activities/piano_composition/resource/treble_pitches/1/9.wav deleted file mode \
100644 index bc807188..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/1/9.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/-1.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/-1.wav deleted file mode \
100644 index be6234b0..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/-1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/-2.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/-2.wav deleted file mode \
100644 index a76f6697..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/-2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/-3.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/-3.wav deleted file mode \
100644 index 4cdc0346..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/-3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/-4.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/-4.wav deleted file mode \
100644 index 572004b9..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/-4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/-5.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/-5.wav deleted file mode \
100644 index 8be540b2..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/-5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/1.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/1.wav deleted file mode \
100644 index fb01f985..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/10.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/10.wav deleted file mode \
100644 index af366ff9..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/10.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/11.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/11.wav deleted file mode \
100644 index d916b058..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/11.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/2.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/2.wav deleted file mode \
100644 index fe48c87a..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/3.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/3.wav deleted file mode \
100644 index 15225eff..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/4.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/4.wav deleted file mode \
100644 index e8cf252a..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/5.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/5.wav deleted file mode \
100644 index 239d9037..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/6.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/6.wav deleted file mode \
100644 index e6e423d1..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/6.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/7.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/7.wav deleted file mode \
100644 index 366598ea..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/7.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/8.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/8.wav deleted file mode \
100644 index 7e8540b7..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/8.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/2/9.wav \
b/src/activities/piano_composition/resource/treble_pitches/2/9.wav deleted file mode \
100644 index c966c6a1..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/2/9.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/-1.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/-1.wav deleted file mode \
100644 index 15e2eca3..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/-1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/-2.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/-2.wav deleted file mode \
100644 index acf1a855..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/-2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/-3.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/-3.wav deleted file mode \
100644 index f78fb312..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/-3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/-4.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/-4.wav deleted file mode \
100644 index 6d2949f7..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/-4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/-5.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/-5.wav deleted file mode \
100644 index 3bea68f2..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/-5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/-6.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/-6.wav deleted file mode \
100644 index 47ad97d0..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/-6.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/1.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/1.wav deleted file mode \
100644 index b2e99dd8..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/10.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/10.wav deleted file mode \
100644 index 534c6be3..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/10.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/11.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/11.wav deleted file mode \
100644 index 157448c5..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/11.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/2.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/2.wav deleted file mode \
100644 index 785a0fac..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/3.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/3.wav deleted file mode \
100644 index e2f3e1e8..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/4.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/4.wav deleted file mode \
100644 index 6c1a9ebe..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/5.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/5.wav deleted file mode \
100644 index 23374509..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/6.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/6.wav deleted file mode \
100644 index c4f80db6..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/6.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/7.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/7.wav deleted file mode \
100644 index 6ae2a452..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/7.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/8.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/8.wav deleted file mode \
100644 index 23133451..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/8.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/4/9.wav \
b/src/activities/piano_composition/resource/treble_pitches/4/9.wav deleted file mode \
100644 index 5ba3d563..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/4/9.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/-1.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/-1.wav deleted file mode \
100644 index 5c7d88c6..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/-1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/-2.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/-2.wav deleted file mode \
100644 index d7525dce..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/-2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/-3.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/-3.wav deleted file mode \
100644 index 8aca0df6..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/-3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/-4.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/-4.wav deleted file mode \
100644 index b4dbee5a..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/-4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/-5.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/-5.wav deleted file mode \
100644 index 3bad5580..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/-5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/-6.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/-6.wav deleted file mode \
100644 index 252ae334..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/-6.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/1.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/1.wav deleted file mode \
100644 index 513d8668..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/1.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/10.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/10.wav deleted file mode \
100644 index 8fc5a89e..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/10.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/11.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/11.wav deleted file mode \
100644 index 7a30cfbd..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/11.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/2.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/2.wav deleted file mode \
100644 index 8f9dc381..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/2.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/3.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/3.wav deleted file mode \
100644 index 124dbf5c..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/3.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/4.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/4.wav deleted file mode \
100644 index 69227161..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/4.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/5.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/5.wav deleted file mode \
100644 index 4766d923..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/5.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/6.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/6.wav deleted file mode \
100644 index 4e0fc8b0..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/6.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/7.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/7.wav deleted file mode \
100644 index 80839163..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/7.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/8.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/8.wav deleted file mode \
100644 index 9f3090bd..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/8.wav and \
                /dev/null differ
diff --git a/src/activities/piano_composition/resource/treble_pitches/8/9.wav \
b/src/activities/piano_composition/resource/treble_pitches/8/9.wav deleted file mode \
100644 index 31f156a2..00000000
Binary files a/src/activities/piano_composition/resource/treble_pitches/8/9.wav and \
/dev/null differ


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic