All 9 entries tagged Weekly-Project-Report
No other Warwick Blogs use the tag Weekly-Project-Report on entries | View entries tagged Weekly-Project-Report at Technorati | There are no images tagged Weekly-Project-Report on this blog
February 19, 2008
19/02/2008 - Term 2, Week 7 (start of)
- The Staff object, allowing any five-line staff (with associated clef, time signature and key signature) to be drawn to the browser in accordance with MusicXML attributes.
- The Note object, which takes MusicXML attributes and positions and draws any single note to a given staff.
- The Chord object, which takes an array of notes and positions them around each other so as to form a valid chord on a given part. This is the area which took longer than expected as keeping to the musical notation standards (cf. this previous entry) was complex. The current implementation simplifies chord layout slightly by viewing each chord as two distinct sub-chords by the stem direction of the composite notes (i.e. 'up' or 'down'), and placing them side by side This approach should be sufficient for the purposes of the editor as it should still be clear what is going on to the user.
Also, last week I contacted the creators of the Virginia Tech Online Music Dictionary who have since granted me permission to use symbols found on that website in the first version of the system. The codes of the symbols I have used so far from this website are: 08-10,12-15,23-28,43-48,50-51,57-58 (see Supported Symbols for explaination of symbol codes).
It has been necessary, due to oversights in the original design, to add a further 19 symbols to the system for: time signatures, vertically flipped versions of the stem flags (for down-stems) and ledger-lines. Out of a new total of 87 required symbols, I have now acquired 65 of them.
User Interface Design
The design of the user interface for the editor system, which until now has been sketchy in some places, has been further developed. The current aim is for the webpage to have three main columns: left-sidebar, main and right-sidebar. The main section will display the score, and the left-sidebar will display the general options and links around the rest of the site (e.g. 'Save work'). The right-side bar will be the score editing tool bar and will contain a panel for editting the attributes of the selected symbol (e.g. change the no. accidentals associated with the selected note) and a 'playground' stave where the user can mess around with new notes/chords before dragging them onto the score or drag existing notes/chords back onto to significantly re-shuffle things. The user will also be able to change the attributes of selected notes as they sit within the score and will be able to drag notes around to change their pitch / location in the score.
This design will evolve as I move closer to its implementation.
Work to do
Following is the coding work required to bring me to where I originally specified the first version of this project should get to:
- Implement the Part, Measure and Score objects in the client-side system, allowing full pieces of music to be displayed in the browser.
- Implement a MusicXML parser function that will process a MusicXML file and generate the data required to display it.
- Implement the user interface for interactively modifying the score in the browser
- Implement a function that will save the data back to MusicXML format (and back to the server)
- Complete implementation of the simple server-side system that will allow users an account where they may access their saved scores and edit a few details
- Implement the auto-saving feature, so that each change in the browser is sent to the server asynchronously (Ajax), as and when the user makes them.
In week eight or nine I will be required to give a presentation to my assessors summarising what I have achieved with this project and demonstrating its current capabilities. It is my hope that I will be able to get everything listed above done in time. However, if I am not able to do so, note that the above tasks are listed in order of priority. A natural cut-off point would be after point 4, not completing the aspects of the server-side system in time for the demonstration.
Whatever I get done in the next fortnight, it is my intention that I finish implementing the originally specified version of the system over the next few months.
Watch This Space
There will be regular updates on this blog marking out my progress for the next few weeks
January 15, 2008
15/01/2008 - Term 2, Week 2 (start of)
(Merry Christmas, Happy new year)
Current Progress State
As intended, no formal progress has been made over the Christmas break, so there is little to add to the previous entry. The system has essentially been designed, and now needs to be implemented.
The overall timeline for the remainder of the project (as in the progress report) may be found here:
These weekly progress reports will continue, and will summarise how far the implementation has come as the term continues. As part of this process, if I find that I need to clarify or redesign a portion of the system, details will be given in full at the time.
December 06, 2007
06/12/2007 - Term 1, Week 10 (end of)
See the Progress Report document (published in the entry previous) for details of term 1 progress.
I do not have much time available over the Christmas vacation to spend developing Notate , as I have other commitments through this time (and some unrelated course deadlines at the start of Term 2). As such, nothing has been formally scheduled until the beginning of the next university term.
However, I do intend to continue informally with progress, in the following areas:
- RoR system design
- Obtain musical symbols
This is the last report of the first term of development. Regular progress updates will recommence at the start of Term 2 (Monday 7th January). However, as I intend to get some design work completed over Christmas, the blog may be updated a couple of times.
November 23, 2007
23/11/2007 - Term 1, Week 8 (end of)
Change from timetable
In the timetable provided for this term's work, the progress report is scheduled to be submitted to the university on Monday of week 10. This was a mistake (caused by an error on the module website at that time). The progress report is, in fact, due in Monday of week 9 (at the time of writing - three days to go).
Work has been done on designing the system and finalising design documentation in preparation for the progress report due in next week.
Currently, all my time is being spent on catching up with design documentation and writing a progress report that is due in for midday on Monday (26th November 2007). This progress report will mark the end of the design phase of development.
This report will detail where progress has differed from what was predicted over the last term and will present a revised timetable for the remainder of development time.
Week 8 Tasks
Complete and submit progress report.
November 12, 2007
12/11/2007 - Term 1, Week 7 (Start of)
- Continued work on system design
- Continued work on prototype development
I am on track to have the full design of the system completed by the end of term 1, which is as intended.
Current Project State
The system itself is in the process of being designed at the same time as a prototype is being developed. This is appropriate as it gives me an oppotunity to learn what practically works on in the browser, especially when taking into account the plethora of compatibility issues. This design will need to have been finalised by week 10, when the design phase needs to have finished and a progress report written.
Week 7 Tasks
- Continue designing the system
- Look into the source of graphics for the system.
November 06, 2007
05/11/07 - Term 1, Week 6 (Start of)
- Work has begun on a more functional prototype
- Some research has been done into how the music symbols might be obtained. It may be possible to find freely distributed music notation fonts on the internet (e.g. list of music fonts,here)
Current Project State
I would describe the current project state as being a cross between design activities and implementation activities. The project development has become more agile than the specification originally implied to allow for the design of the system to change as prototypes are developed.
Week 6 Tasks
- Complete design of the data structures used in the system
- Continue research into music-symbol graphics
October 30, 2007
29/10/2007 - Term 1, Week 5 (Start of)
Following is the work done over the last week:
- A decision has been made regarding the proposed change to the specification. It was decided that the aim and scope of the project would remain unchanged.
- Some research has been done (and concluded) concerning the data storage requirements of the system. It has been decided that MusicXML will be a used throughout the system. It has yet to be decided exactly how the system will use this to display the score to the user at the browser.
Significantly fewer goals have been acheived than expected. It had been the intention that, by the end of this week, all research and requirement-elicitation type tasks would have been completed. However, I remain in the throes of data structure and development tool research.
Given that the essential requirements of the system are now well established in my mind, the formality of producing a list of requirements is not hindering the design of the system. However it would still be useful to have this documentation.
Current Project State
As anticipated in last weeks report, the Analysis phase is going to have to continue through the next week, despite the original intention to have begun design work by now. The project timetable will be updated.
All outstanding Analysis-style tasks need to be completed by the end of this week.
Week 5 Tasks
- Finalise choice developments tools
- Finalise choice of data storage systems
- Consider graphics requirements
- Continue the development of prototypes of futher sophistication
- Produce a set list of requirements
Week 5 Schedule
My general weekly schedule may be found here.
October 22, 2007
22/10/2007 - Term 1, Week 4 (Start of)
In relation to the proposed tasks of week 3, the following work has been completed:
- An SVN repository has been set up (Task 1), this may be found at http://svn.draknek.org/notate
- Time has been spent researching possible structures for storing and transferring musical scores. Specifically, a previously developed format called MusicXML is being researched.
- A webserver has been set up that is compatible with Ruby on Rails. This will be used to host the final website and may be useful in terms of beta versions or prototypes that may be user-tested. It may be found at http://notate.draknek.org
- I have also been dedicating some thought towards changing the general aim of the system. At the moment the aim is:
To develop a web-application to allow musicians to easily and intuitively create and edit their own sheet-music online.
However, it may be more effective to instead, aim the system towards being a community in which people can share their musical scores with each other, perhaps rating each other's score and offering advice to one another. The essential requriements of the system would remain unchanged (An online sheet-music editor would still be included for users) but it would almost certainly mean more work in terms of the rest of the website. The situation remains undecided.
- Further requirements analysis of the system has yet to have begun (Task 2).
Time - The time spent working was mostly in-line with the proposed schedule for the week, with the exception of a few hours where other commitments had to take priority. In future, taking these sort of potential commitments into account should lead to a more realistic schedule. Overall, I spent about the same number of hours working as I intended.
Current Project State
Beginning of the second week of the two weeks allocated for system analysis (as laid out in the specification). All tasks previously associated with this phase need to have been completed by the end of the week.
Some time also needs to be spent considering what data structures will be useful for the storage and transfer of music scores.
Week 4 Tasks
- Finalise decision on how the aim of the project should be changed (if at all). Justify the choice.
- Decide on and complete appropriate analysis: Requirements Analysis and/or Use-Case Analysis.
- Finalise the decision on what tools will be used. Justify the choice.
- Research potential data structures for use within the system.
- Consider how the graphics in the system (musical symbols) will be obtained.
Week 4 Working Schedule
Total no. hours: 18.5
- The emphasis of this week is on the completion of the Analysis phase of development. After this milestone it should be possible to start the Design and Implementation of the system. It is important that documentation is produced this week that justifies and finalises the aim of the system, the requirements of the system and the tools that will be used throughout the rest of the development of the system.
- If it becomes clear that the full completion of the Analysis phase of development is too ambitious, I will complete as many of the tasks as I can this week and the project timeline will be re-designed next Monday to factor in a further week of Analysis. At some point in the week it may transpire that more analysis-tasks need to be completed than originally specified here anyway.
October 15, 2007
15/10/2007 - Term 1, Week 3 (Start of)
Current Project State
Following the completion of the specification, I now begin the Analysis phase of the project. According to the specification this will involve the following tasks:
- Clarification of what the system should do by carrying-out a requirements analysis or a use-case analysis.
- Research possible development tools, decide on what to use and then familiarise myself with them in preparation for the design and implementation of the system.
- Give some thought to how the graphics that will be needed for the system (especially musical symbols) will be obtained. Look into possible solutions (e.g. creating them from scratch, paying for an existing set, paying someone else to create them)
It has also been suggested by my supervisor that putting some work into creating early prototypes would be a good idea.
First of all, however, I will need to set up the SVN system that will be used throughout the course of the whole project. It will be necessary to complete this first so all documentation and code resulting from the next two weeks may be stored in this repository.
According to the current schedule I have 2 weeks to complete this phase of development.
Week 3 Tasks
- Set up SVN repository
- Decide on and begin appropriate analysis: Requirements Analysis and/or Use-Case Analysis
Week 3 Working Schedule
Total number of working hours planned: 14 hours
- The working schedule above overestimates how long each task will take to be completed and probably overestimates how many hours I will realistically be able to give. I have scheduled things this way out of uncertainty in my own time estimation abilities and to make sure that the work I have set out to do will be completed. As the weeks progress my hope is that I will become better experienced in estimating how long I will take to complete tasks. This should make my own work schedules easier to follow.
- Monday is not included in this schedule, as it was the day on which I set up this development blog and planned my work for the rest of the week. In general Monday will be the day on which I evaluate the work completed over the previous week and set out what work I intend to do over the next week. In the future it should not take so much time to complete these progress reports.