|
|
ImplementationThis page does not desribe the current implementation. It was a draft used for discussion. Parts of it has been implemented. Uuid crashMight theoretically happen for generated uuids. More likely to happen if people forget to generate a new uuid when they make copies of lesson files to modify them. Not a big problem because Solfege will notice this the first time they run Solfege and offer to fix it. Why not generate unique identifiers based on some sort of hash (md5?) of lesson module and its parameters? Or just use url as an unique identified? It's not like uuid is always the ultimate solution (kfoltman)
I don't want a hash of the lesson file, because then the learning tree will break if we update the file. lesson_id="http://solfege.org/lessonid/321"? Then we can say in the docs that only lesson files part of an official Solfege release can use the solfege.org domain.Lesson files for the 'pure python exercises'Example lesson file:
# GNU Solfege
# Copyright (C) 2005 Tom Cato Amundsen
header {
module = harmonicinterval
intervals = 2, 4, 7
disable_unused_intervals = yes
title = "Major second, major third and pure fifth"
theory = "theory-intervals.html"
lesson_id = "5274234f-7521-462c-9806-8bd46980242b"
}
'Normal' lesson filesExample lesson file:
# GNU Solfege
# Copyright (C) 2005 Tom Cato Amundsen
header {
module = chord
title = "Minor and major triads"
theory = "theory-chords.html"
lesson_id = "816253ad-48e4-4567-a3b8-a0306c856f15"
test = "4x"
test_requirements = "90%"
}
question { name="major" music=chord("c' e' g'") }
question { name="minor" music=chord("c' es' g'") }
Changes with header block and includesThe handling for the Lesson file changesChanges to the header block:
content = id-by-name in solfege 2.4.0, you should write module = idbyname in solfege 3.0. Also the As described in SITS.00079?, there are a few new variables that can be put in header files. Learning treeThe learning tree is a text file with the output of The LearningTree has two data structures.
This "Practise" menu has submenus for different topics like "Intervals", "Beginner chords", "Diffiult Chords" etc, and that the lesson files will have entries on these submenus. There is not additional levels of submenus. Not implemented yetIt should be possible to set the "visibility", so that only exercises matching the users skills are displayed. GuiWe will build the menu structure or the topic index from the file described above and the lesson files. |