GSoC/2018/StatusReports/AmanKumarGupta: Difference between revisions
No edit summary |
No edit summary |
||
Line 18: | Line 18: | ||
==Work Report== | ==Work Report== | ||
===Piano Composition=== | ===1. Piano Composition=== | ||
===='''Introduction:'''==== | ===='''Introduction:'''==== | ||
Line 72: | Line 72: | ||
---- | ---- | ||
===Play piano=== | ===2. Play piano=== | ||
===='''Introduction:'''==== | ===='''Introduction:'''==== | ||
Line 112: | Line 112: | ||
''Configuration window for the two modes'' | ''Configuration window for the two modes'' | ||
--- | ---- | ||
===Note Names=== | ===3. Note Names=== | ||
===='''Introduction:'''==== | ===='''Introduction:'''==== | ||
Line 136: | Line 136: | ||
7. Implemented dual octave keyboard. | 7. Implemented dual octave keyboard. | ||
8. Code refactorization. | |||
===='''Status:'''==== | ===='''Status:'''==== | ||
Line 149: | Line 149: | ||
[[File:Game.png]] | [[File:Game.png]] | ||
''Learning mode'' | ''Learning mode'' | ||
---- | |||
===4. Play Rhythm=== | |||
===='''Introduction:'''==== | |||
This activity aims to let the user practice the accuracy of his rhythm by playing the presented rhythm at correct times by following the red Pulse marker line and estimating the time through the dynamic metronome. | |||
===='''Implementation:'''==== | |||
1. Laid down UI of the activity. | |||
2. Added levels dataset. | |||
3. Added pulse marker and its animation. | |||
4. Implemented dynamic metronome. | |||
5. Implemented working logic of the activity. | |||
6. Added an element AdvancedTimer with the feature to enable pause/resume which lacks in the QtQuick's Timer element. | |||
===='''Status:'''==== | |||
The activity is complete and is currently under review. | |||
===='''Screenshots:'''==== | |||
[[File:PulseMarker.png]] | |||
''A level with Pulse marker'' | |||
[[File:Metronome.png]] | |||
''A level with metronome'' | |||
==Branch where I'm working== | ==Branch where I'm working== | ||
Line 154: | Line 188: | ||
The following is the link to all my work and commits: | The following is the link to all my work and commits: | ||
* [https://cgit.kde.org/gcompris.git/log/?h=gsoc_aman_piano_activities Piano activities] | * [https://cgit.kde.org/gcompris.git/log/?h=gsoc_aman_piano_activities Piano activities branch] | ||
==Blog post links== | ==Blog post links== |
Revision as of 16:56, 8 August 2018
GCompris: Port all GTK+ piano activities to Qt and get one step closer to version 1.0
GCompris is an educational software suite comprising of numerous activities for children aged 2 to 10. Originally written in Gtk+ its development team started to rewrite it from scratch in Qt Quick. My aim is to port all the piano-based musical activities which are one of the most important activities that we are missing to have a complete 1.0.
Mentors: Divyam Madaan and Emmanuel Charruau
Project Goals
- Finish the port of Piano composition activity and add more features.
- Porting of GTK+ Play piano activity from scratch to QtQuick.
- Re-design and implement Note names activity.
- Porting of GTK+ Play rhythm activity from scratch to Qt.
Project Status
The project is complete and is under testing phase.
Work Report
1. Piano Composition
Introduction:
This activity teaches the users how to compose melodies with piano by offering them certain components like notes, rests and many features like erase, replace, undo etc.
Implementation:
1. Improved melody loader window UI.
2. Made multiple staff view flickable and add more staffs when needed.
3. Reworked the code base according to IPN Notation.
4. Added contexts for translators.
5. Added rests.
6. Added replace and erase features.
7. Added undo feature.
8. Separated Note data from the Staff view.
9. Added feature to display lyrics and other details of the music loaded.
10. Made note-type options toggable.
11. Added more octaves for treble (E3 to F6) and bass clefs (C3 to F4).
12. Created new SVG images with ledger lines.
13. Made a common API for all the types of elements on the staff.
14. Added feature to add multiple clefs on the same staff.
15. Implemented BPM meter which would default to 60 BPM and the user can increase/decrease the rhythm of the song.
16. Did code cleanup and refactorizations.
Status:
The activity is complete and is currently under testing and review.
Screenshots:
2. Play piano
Introduction:
This activity aims to let the user understand how the piano keyboard can play rhythm as written on the musical staff by replicating the ones that are presented.
Implementation:
1. Added resources from the Gtk+ version.
2. Laid down UI of the activity.
3. Added levels dataset.
4. Implemented working logic of the activity.
5. Added configuration for two modes: colored notes and colorless notes.
6. Added undo feature to revert the attempt.
7. Code refactorization.
Status:
The activity is complete and is currently under review.
Screenshots:
Screen for the user to begin practice
Configuration window for the two modes
3. Note Names
Introduction:
This activity aims to teach the user about the notes in music and their position on the staff by presenting several notes one-by-one with animation from the right of the staff sliding to the left of the staff. The user will get the combination of all the notes he has learned previously and the current targetted notes from the dataset. Only the reference notes are colored as red and the user is made to learn the notes around it. One has to correct enough notes to get a 100% and advance to next stage.
Implementation:
1. Laid down UI of the activity.
2. Added levels dataset.
3. Added animation for the notes.
4. Added tutorial mode for the activity.
5. Implemented working logic of the activity.
6. Added feature that only certain notes and keys can be colored.
7. Implemented dual octave keyboard.
8. Code refactorization.
Status:
The activity is complete and is currently under review.
Screenshots:
4. Play Rhythm
Introduction:
This activity aims to let the user practice the accuracy of his rhythm by playing the presented rhythm at correct times by following the red Pulse marker line and estimating the time through the dynamic metronome.
Implementation:
1. Laid down UI of the activity.
2. Added levels dataset.
3. Added pulse marker and its animation.
4. Implemented dynamic metronome.
5. Implemented working logic of the activity.
6. Added an element AdvancedTimer with the feature to enable pause/resume which lacks in the QtQuick's Timer element.
Status:
The activity is complete and is currently under review.
Screenshots:
Branch where I'm working
The following is the link to all my work and commits:
Blog post links
- GSoC 2018: Weeks 8, 9 and 10
- GSoC 2018: Week 6 and 7
- GSoC 2018: Week 4 and 5
- GSoC 2018: Week 2 and 3
- GSoC 2018: Week 1
- GSoC 2018 with KDE - Community bonding period
- Google Summer of Code 2018 with KDE
Contact
Email: [email protected]
IRC: gupta2140[m] on Freenode
Channels: #gsoc, #kde-soc, #kde-in, #gcompris
Github: gupta2140