[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

AU2014202852B2 - Electronic system, methods and apparatus for teaching and examining music and other subjects - Google Patents

Electronic system, methods and apparatus for teaching and examining music and other subjects Download PDF

Info

Publication number
AU2014202852B2
AU2014202852B2 AU2014202852A AU2014202852A AU2014202852B2 AU 2014202852 B2 AU2014202852 B2 AU 2014202852B2 AU 2014202852 A AU2014202852 A AU 2014202852A AU 2014202852 A AU2014202852 A AU 2014202852A AU 2014202852 B2 AU2014202852 B2 AU 2014202852B2
Authority
AU
Australia
Prior art keywords
sprite
user
tasks
loch
subject
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
AU2014202852A
Other versions
AU2014202852A1 (en
Inventor
Jonathan Adams
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Web ED Development Pty Ltd
Original Assignee
Web ED Development Pty Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2012202820A external-priority patent/AU2012202820B2/en
Application filed by Web ED Development Pty Ltd filed Critical Web ED Development Pty Ltd
Priority to AU2014202852A priority Critical patent/AU2014202852B2/en
Publication of AU2014202852A1 publication Critical patent/AU2014202852A1/en
Application granted granted Critical
Publication of AU2014202852B2 publication Critical patent/AU2014202852B2/en
Ceased legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Electrically Operated Instructional Devices (AREA)

Abstract

ELECTRONIC SYSTEM, METHODS AND APPARATUS FOR TEACHING AND EXAMINING MUSIC AND OTHER SUBJECTS 5 An electronic method and apparatus for teaching and examining a subject are provided. A store of components related to the subject is used to generate a lesson for the subject. The lesson comprises one or more tasks which each comprise a plurality of the components. One or more of the tasks are presented to a user. Selection of a selectable icon, from a menu with one or more 10 selectable icons, submits one or more responses of the user to the one or more of the tasks. One or more text strings that comprise details of the one or more submitted responses are sent to a storage facility. The one or more text strings enable the one or more submitted responses to be recreated graphically.

Description

1 TITLE ELECTRONIC SYSTEM, METHODS AND APPARATUS FOR TEACHING AND EXAMINING MUSIC AND OTHER SUBJECTS 5 FIELD OF THE INVENTION The present invention relates to an electronic system, methods and apparatus for teaching and examining in the field of music and in other subjects, such as, but not limited to, mathematics, languages and humanities, such as geography. 10 BACKGROUND TO THE INVENTION Music theory is the study of the elements of music including rhythm, harmony, melody, structure and texture and students learn how to read, write and analyse music and all its components. For centuries, the process of 15 teaching and learning music theory and the process of examining students and their level of proficiency has remained unchanged. Even today, conventional books are still used to teach students how to read, write and analyse music and examinations in music theory are still undertaken and marked manually. Disadvantages associated with such a process include the time and cost in 20 printing the books and marking the examination papers, the minimal feedback that is provided to students in relation to their examinations and the delay in providing the results of the examinations and feedback to the students. Modern technology has provided some advancement in the field of writing, teaching, printing and publishing music. For example, numerous 25 software packages are available that enable composers to electronically write music via a computer. One example of such software is Sibelius 4 available from Sibelius Software, which comprises a plurality of toolbars and menus from which a composer can select the desired notes and other musical notation to compose a score. The software can automatically update instrumental parts 30 when the full score is updated and the software also plays the composed score allowing composers to listen to their composition. A further enhancement includes video for which music can be written via the software. Teaching aspects of the software include lesson plans and explanations of musical concepts.
2 However, such software applications do not educate students how to correctly form the notes and other musical notation, how to correctly position them or other aspects of writing music. Such software applications also fail to address the aforementioned drawbacks associated with examining students and 5 marking students' examination papers. Software applications for teaching other subjects, such as mathematics, languages and humanities, such as geography, are also available, but such applications also suffer from one or more drawbacks related to the particular subject similar to the music-specific drawbacks identified above. 10 In this specification, the terms "comprises", "comprising" or similar terms are intended to mean a non-exclusive inclusion, such that a method, system or apparatus that comprises a list of elements does not include those elements solely, but may well include other elements not listed. 15 OBJECT OF THE INVENTION It is an object of the present invention to address or at least ameliorate one or more of the aforementioned problems of the prior art or provide a useful commercial alternative. 20 SUMMARY OF THE INVENTION In one form, although it need not be the only or indeed the broadest form, the invention resides in a method of teaching and examining a subject, the method comprising: generating a lesson for the subject from a store of components 25 related to the subject, the lesson comprising one or more tasks each comprising a plurality of the components related to the subject; presenting the user with one or more of the tasks; providing a menu with one or more selectable icons, selection of one of the selectable icons submitting one or more responses of the user 30 to the one or more of the tasks; sending one or more text strings to a storage facility, the one or more text strings comprising details of the one or more submitted responses which enable the one or more submitted responses to be 3 recreated graphically. Preferably, the method further comprises recording one or more user inputs, for example, mouse clicks, touchscreen inputs and/or keystrokes, of the user while the user is completing the one or more of the tasks. 5 Preferably, the one or more text strings comprise details of the one or more recorded user inputs. Suitably, each user input is sequentially recorded and stored into the one or more text strings. Preferably, an assessor can retrieve the one or more user inputs of the 10 user from the storage facility. Preferably, the method further comprises generating, using the one or more text strings, an animation of the user completing the one or more of the tasks. Suitably, the method further comprises presenting the animation to the 15 user or an assessor in real time, slow motion or fast motion. Suitably, the method further comprises providing the user or an assessor with control buttons to navigate through the animation. Suitably, the method further comprises providing functionality for an assessor or another user to edit the animation. 20 Suitably, the method further comprises sending one or more second text strings to the storage facility, the one or more second text strings comprising details of the edited animation. Suitably, the method further comprises sending a notification to an assessor when a user completes one of the tasks. 25 Suitably, the method further comprises providing a help button to the user, wherein pressing of the help button sends a request for help to an assessor or another user. Suitably, the request for help includes a recording of the one or more user inputs of the user thus far or a pointer thereto. 30 Suitably, the method further comprises providing a comments section to the user in which the user can provide details of a problem with which they need help, the details in the comments section being sent with the request for help. Suitably, where a request for help is sent to another user, the method 4 further comprises: recording of one or more user inputs of the other user; and sending one or more third text strings to the storage facility, the one or more third text strings comprising details of the one or more recorded 5 user inputs of the other user. In another form, the invention resides in an apparatus for teaching and examining a subject, the apparatus comprising computer readable program code components configured to cause: generating a lesson for the subject from a store of components 10 related to the subject, the lesson comprising one or more tasks each comprising a plurality of the components related to the subject; presenting the user with one or more of the tasks; providing a menu with one or more selectable icons, selection of one of the selectable icons submitting one or more responses of the user 15 to the one or more of the tasks; and sending one or more text strings to a storage facility, the one or more text strings comprising details of the one or more submitted responses which enable the one or more submitted responses to be recreated graphically. 20 In a further form, although it need not be the only or indeed the broadest form, the invention resides in a method of teaching and examining in the field of music, said method including: presenting a user with one or more musical tasks; providing a menu with one or more selectable icons, selection of one of 25 said icons activating functionality to enable the user to form an element of musical notation; and generating a mark based on the result of comparing one or more characteristics of the element of musical notation with one or more predetermined thresholds. 30 Suitably, comparing one or more characteristics of the element of musical notation and generating a mark is in response to a user request. Elements of musical notation can include, but are not limited to, notes, or parts of notes, such as note stems, note heads, note beams, quaver tails, 5 symbols, or parts of symbols, such as flats, sharps, naturals, crotchet rests, bass clefs, treble clefs, barlines, slurs, lines, curves, hooks, leger lines, staff lines, time signatures, accidentals, articulations, dynamics. Characteristics of the elements of musical notation can include, but are 5 not limited to, a position on a musical staff, a spacing between an adjacent element, angle, length, alignment, points of intersection, start points, end points, ratios, relative size, name, quantity. In another form, although again not necessarily the broadest form, the invention resides in a system for teaching and examining in the field of music, 10 said system comprising: a display to present a user with one or more musical tasks and a menu with one or more selectable icons; an input device to allow the user to select the one or more selectable icons; and 15 a processor coupled to be in communication with the display and the input device to: a) activate functionality to enable the user to form an element of musical notation with the input device in response to selection of one of said icons; b) compare one or more characteristics of the element of musical notation 20 with one or more predetermined thresholds; and c) generate a mark based on the result of comparing the one or more characteristics of the element of musical notation with one or more predetermined thresholds. Suitably, comparing the one or more characteristics of the element of 25 musical notation and generating a mark is in response to a user request. The system may further comprise a storage facility, such as a database coupled to be in communication with the processor to store the marks and/or the answers to the one or more musical tasks. In a further form, although it need not be the only or indeed the broadest 30 form, the invention resides in a method of examining in the field of music, said method including: presenting a user with one or more musical tasks; recording music performed by the user in response to the one or more 6 musical tasks; generating a mark based on the result of comparing the recorded music with one or more predetermined thresholds. Suitably, the method includes presenting musical notation to the user to 5 perform. Suitably, the method includes presenting a tempo to the user at which the music must be performed, for example, via an audible periodic sound, such as metronome clicks. Suitably, the method includes playing a backing track along to which the 10 user is requested to play. Suitably, the method includes re-presenting the user with at least part of the one or more musical tasks previously presented, but at a reduced tempo, where the user commits one or more errors in performing the one or more musical tasks. 15 Suitably, the method includes re-presenting the user with at least part of the one or more musical tasks previously presented, but at a tempo increased from the reduced tempo, where the user performs the one or more musical tasks correctly at the reduced tempo. In yet another form, although it need not be the only or indeed the 20 broadest form, the invention resides in a method of teaching and examining a subject, said method including: generating a lesson for the subject from a store of components related to the subject; presenting a user with the lesson comprising one or more tasks related to 25 the subject; providing a menu with one or more selectable icons, selection of one of said icons activating functionality to enable the user to submit one or more responses to the one or more tasks; and generating a mark based on the result of comparing the one or more 30 responses with one or more predetermined thresholds. Preferably, the method includes presenting the user with a modified lesson comprising one or more tasks related to the subject previously answered incorrectly by the user.
7 Suitably, the modified lesson includes the same task previously answered incorrectly by the user. Suitably, the modified lesson includes the same type of task previously answered incorrectly by the user. 5 The method may include presenting the user with a lesson comprising one or more tasks related to the next level of learning for the subject only after the user has answered a threshold number of tasks in the modified lesson correctly. Suitably, all tasks in the modified lesson must be answered correctly 10 before the user progresses to the next level of learning for the subject. Suitably, the method includes directing the user to learning resources related to the one or more tasks answered incorrectly by the user. For example, the method may include presenting the user with one or more selectable icons, the activation of one of said icons causing a webpage to be displayed comprising 15 learning resources related to the one or more tasks answered incorrectly by the user. The method may include alerting an educator to one or more tasks answered incorrectly by the user a threshold number of times. Suitably, the method includes generating a lesson for duration of a 20 learning period, such as for each week of an educational term or year. Suitably, the tasks can be selected from the following: inputting a word in response to the word being audibly presented; inputting the result of an equation; inputting the name of a country in response to the display of a silhouette of a country; identifying an incorrect answer, such as a misspelt word 25 or incorrect result and inputting the word or result correctly. In a further form, although it need not be the only or indeed the broadest form, the invention resides in an apparatus for teaching and examining a subject, said apparatus comprising computer readable program code components configured to cause: 30 generating a lesson for the subject from a store of components related to the subject; presenting a user with the lesson comprising one or more tasks related to the subject; 8 providing a menu with one or more selectable icons, selection of one of said icons activating functionality to enable the user to submit one or more responses to the one or more tasks; and generating a mark based on the result of comparing the one or more 5 responses with one or more predetermined thresholds. Further forms and features of the present invention will become apparent from the following detailed description. BRIEF DESCRIPTION OF THE DRAWINGS 10 By way of example only, preferred embodiments of the invention will be described more fully hereinafter with reference to the accompanying drawings, wherein: FIG 1 is a schematic representation of a system for teaching and examining in the field of music in accordance with an embodiment of the present 15 invention; FIG 2 is a screenshot showing part of a lesson in accordance with an embodiment of the present invention; FIGS 3-5 are screenshots demonstrating the teaching and marking of drawing a crotchet rest; 20 FIG 6 is a screenshot illustrating examining a user on the naming of a note; FIG 7 is a screenshot illustrating examining a user on the playing of the note in FIG 6 visually and aurally; FIGS 8 and 9 are screenshots illustrating examining and marking a user 25 on musical tasks requiring the drawing of multiple musical notation elements; FIGS 10-12 are screenshots illustrating examining and marking a user on the drawing of a sharp sign; FIGS 13-21 are further screenshots showing examining and marking musical tasks to be completed by users as exercises and/or examination 30 questions; FIG 22 is a screenshot showing the display when a user has completed a lesson, exercise or practice examination; 9 FIG 23 is a general flow diagram showing a method according to embodiments of the present invention; FIGS 24-27 are screenshots showing examining and marking a user on the playing of a piece of music according to other embodiments of the present 5 invention; FIG 28 is a general flow diagram showing a method according to another embodiment of the present invention; and FIG 29 is a schematic diagram illustrating teaching and examining other subjects according to other embodiments of the present invention. 10 DETAILED DESCRIPTION OF THE INVENTION Like features in the drawings are referred to by like reference numerals. Referring to FIG 1, there is provided a system 100 for teaching and examining in the field of music and other subjects in accordance with 15 embodiments of the present invention. The system 100 comprises a display 110 and an input device 120, both of which are coupled to be in communication with a processor 130. Processor 130 is also coupled to be in communication with a memory 140. Display 110, input device 120, processor 130 and memory 140 can be embodied in an apparatus 105 in the form of a conventional computing 20 device, such as a desktop, laptop or notebook computer, personal digital assistant (PDA) or other mobile computing device. In accordance with embodiments of the present invention, display 110 is provided to present a user with one or more musical tasks and to present a menu with one or more selectable icons. Display 110 can be in the form of an 25 integral screen or a separate monitor or the like and can be in the form of a touch sensitive screen. Input device 120, such as a keyboard, mouse, or a stylus that can be used in conjunction with a touch sensitive screen, is provided to allow the user to select the one or more selectable icons from the menu and generally navigate through the musical tasks. The processor 130 is provided to 30 activate functionality stored in the memory 140 in the form of computer readable program code components 145 to enable the user to form elements of musical notation with the input device 120 in response to selection of one of the icons. The processor 130 is also provided to compare one or more characteristics of 10 the element of musical notation with one or more predetermined thresholds in response to a user request, such as requesting marking of the task by selecting a suitable icon. The processor 130 generates a mark based on the result of comparing the one or more characteristics of the element of musical notation 5 with one or more predetermined thresholds and the mark can be displayed to the user via display 110 to promptly provide feedback to the user. Another form of input device can be in the form of a microphone 170 for capturing sound, which can be stored in memory 140 after processing by processor 130 and optionally by a dedicated audio processor (not shown). For 10 example, for the teaching and examining of music, microphone 170 captures music performed by the user in response to one or more musical tasks presented to the user. For the teaching and examining of other subjects, such as languages, microphone 170 captures language spoken by the user, for example to measure the user's linguistic competency. Microphone 170 can be integral to 15 or separate from the apparatus 105. These embodiments will be described in more detail hereinafter. According to some embodiments, the system 100 can further comprise a storage facility 150, such as a database, optionally associated with a server, coupled to be in communication with the processor 130 via conventional 20 communications hardware and software to store the marks of the lessons/examinations for each user. The storage facility 150 can be coupled to the processor 130 locally or via a communications network 160, for example, a local area network (LAN), a wide area network (WAN) or combination thereof, or a global communication network, such as the Internet. Communication between 25 the processor 130 and the storage facility 150 can be wired or wireless or a combination thereof. With reference to the general flow diagram shown in FIG 23, a method 200 for teaching and examining music includes at 210 presenting a user with one or more musical tasks, such as, but not limited to drawing a musical scale, 30 identifying notes or completing a melody. At 220, the method includes, providing a menu with one or more selectable icons, selection of one of said icons activating functionality to enable the user to form an element of musical notation. The method includes at 230 comparing one or more characteristics of the 11 element of musical notation with one or more predetermined thresholds to verify whether the user has completed the musical task correctly. At 240, generating a mark based on the result of comparing the one or more characteristics of the element of musical notation with one or more predetermined thresholds. 5 Examples of teaching and examining in the field of music in accordance with embodiments of the present invention will now be described with reference to the screenshots in FIGS 2-22. Referring to FIG 2, the screenshot shows part of a lesson comparable with how the lesson would be conveyed to a user or student by the prior art in 10 that a chord is displayed with a description of its composition. However, in contrast to the prior art, one of the benefits of the present invention is that it includes animation and can visually demonstrate formation of the chord from the individual notes. Another benefit of the present invention is that the individual notes and the chord can be played and heard by the user, thus providing a major 15 advantage over the conventional paper methods of teaching music. Referring to FIGS 3-5, the screenshots shows embodiments of the present invention teaching and examining the drawing of musical notation in the form of a crotchet rest by a user and the marking of the user's work. The user is presented with a musical task, which in this example is to "Draw a crotchet rest". 20 The user selects the "draw line" icon 300 from the drop down menu 310 on the screen and draws three individual lines 320 with the input device 120, such as a mouse, on the staff 330 provided on the screen. FIG 3 shows two of the lines 320 that have been drawn. The user then selects the "add hook" icon 340 from the drop down menu 310 and uses a drag and drop method to add the hook 400 25 shown in FIG 4 to the end of the third line 320C to produce the crotchet rest. The user can adjust the beginning or start points, end points and the shape of the hook with the input device 120. Pressing the marking button 350 informs the user as to whether the crotchet rest has been drawn correctly, which it has been in the example shown 30 in FIG 4. The software checks characteristics of the elements of musical notation including the angles, beginning and end points of each line 320, the intersection points of each line and the beginning and end positions of the hook 400 by comparing the characteristics of the elements of musical notation with 12 corresponding predetermined thresholds. The software checks the beginning point of the top line 320A of the crotchet rest and the direction of the top line. An example of suitable program code components for performing this function follow: 5 on checklinel --sprite (4).top - sprite (81).top+20 < 9 top point first line correctly placed if abs(sprite(4).top - sprite(81).top+24.5) < 9 and sprite (81) .member.linedirection = 0 then append (answerList, "a") 10 end The software checks the beginning point of the second line 320B where it joins to the end of the first line 320A of the crotchet rest and the direction of the 15 second line 320B. An example of suitable program code components for performing this function follow: on checkline2 -- 2nd joint in right spot 20 if abs(sprite(4).top - sprite(82).top+61.25) < 9 and sprite (82) .member.linedirection = 1 then append (answerList, "b") end 25 The software checks the beginning point of the third line 320C where it joins to the end of the second line 320B of the crotchet rest and the direction of the third line. An example of suitable program code components for performing this function follow: 30 on checkline3 --3rd joint in right spot if abs(sprite(4).top - sprite(83).top+85.75) < 9 and sprite (83) .member.linedirection = 0 then append (answerList, "c") 35 end The software checks the beginning point of the hook 400 where it joins the third line 320C of the crotchet rest and the direction of the hook. An example 40 of suitable program code components for performing this function follow: on checkline4 --4th joint in right spot if abs(sprite(4).top - sprite(83).bottom+134.75) < 9 and 45 sprite (83) .member.linedirection = 0 then append (answerList, "d") end 13 The software checks the end point of the hook 400 where it finishes at the bottom of the staff 300 on the screen. An example of suitable program code 5 components for performing this function follow: on checkhook if sprite(112).puppet = false then exit if sprite(83) .member.linedirection = 0 then a = 3 10 if sprite(83) .member.linedirection = 1 then a = 4 dx= sprite(112).loch - sprite(83).quad[a].loch dy = sprite(112).locv - sprite(83).quad[a].locv ans = sqrt (power(dx,2) + power(dy,2) 15 dxl= sprite(113).loch - sprite (83).quad[a].loch dyl = sprite(113).locv - sprite(83).quad[a].locv ans1 = sqrt (power(dxl,2) + power(dyl,2) 20 if ansi > ans then b = 113 if ansi < ans then b = 112 if abs(sprite(4).top - sprite(b).locv +171.5) < 9 then append (answerList, If ") 25 end The software checks the length of each line 320A, 320B, 320C, the vertical alignment of the beginning point of the first line 320A and the end point of second line 320B, the vertical alignment of the beginning point of the second 30 line 320B and the end point of the third line 320C, the vertical alignment of the beginning point of the hook and the end point of hook 400. The software also checks the angle of each line. If the angle of each line is correct, a tick appears on the screen, as shown in FIG 4. Conversely, if the angle of between the lines are incorrect, the comment " line too wide." or " line too narrow." 35 appears on the screen. An example of suitable program code components for performing these functions is as follows: on checkangleline3 if sprite(83) .member.linedirection = 0 then 40 dx= sprite(83).quad[1].loch - sprite(83).quad[3].loch dy = sprite(83).quad[1].locv - sprite(83).quad[3].locv a= atan ( float(dy) /float (dx)) * 180 /pi put a 45 end if if sprite(83) .member.linedirection = 1 then dx= sprite(83).quad[2].loch - sprite(83).quad[4].loch dy = sprite(83).quad[2].locv - sprite(83).quad[4].locv 50 a= atan ( float(dy) /float (dx)) * 180 /pi put a 14 end if if sprite(83).member.linedirection = 0 and abs (a -45) < 10 then append (answerList, "k") if sprite(83).member.linedirection = 0 and a -45 < -10 then 5 member("commentI") .text = member("commentI") .text &&"Bottom line too wide." if sprite(83) .member.linedirection = 0 and a -45 > 10 then member("commentI") .text =member("commentI").text && "Bottom line too narrow." end 10 As shown in FIG 5, elements of the crotchet rest that have been drawn incorrectly by the user are highlighted after marking has been requested to provide immediate feedback to the user thus enabling the user to learn from their mistakes. In the example in FIG 5, the user is informed that the beginning of the 15 first line 320A should be near the centre in the 4 th space of the staff 330 and the second join between the second and third lines 320B, 320C should be in the bottom section of the third space. FIGS 6 and 7 relate to a two-stage musical task where the user must name the note displayed in stage 1 and select appropriate keys, valves, buttons 20 etc. of an instrument in stage 2. Upon the user requesting marking by selecting the question mark icon 350, the user is informed whether their answer is correct or incorrect. According to one embodiment, if the user is correct they receive a point and move to stage 2. If the user is incorrect they loose a point and repeat the question until they are correct. 25 With reference to FIG 7, an image of an instrument chosen by the user appears on screen in stage 2. The user has to click on all the correct keys, e.g. for a piano, or valves 700 for the trumpet shown in FIG 7, for the note from stage 1, to be played on that instrument. For every incorrect key, valve or button chosen, the user looses a point. When the user selects the correct keys, valves 30 etc., they move to stage 3. In stage 3, an animation of the instrument playing the note, visually and aurally, is displayed and played to the user. The user then selects the next button and an instrumental music flash program randomly selects a note and the process is repeated again. According to some embodiments, when all the notes 35 have been selected, the user's results are transmitted to the database 150 where the user's progress can be monitored, for example, by a tutor. Monitoring can occur in real time as the user conducts the lesson or examination or at a later stage. Instrumental music flash can be used for all musical instruments and 15 is used to correlate the recognition of the name of the note, fingers used to play the note and the pitch of the note. With reference to FIGS 8 and 9, multiple elements of musical notation will be used in, for example, scales, transpositions, interval, melody writing, writing 5 harmony, and in any musical exercise where more than one musical symbol needs to be checked. In this example, the musical task requires the user to create an ascending F major scale using semibreves. The user selects the appropriate clef from the clef popup menu within the drop down menu 800 and places it on the staff 330 displayed on the screen 10 using the drop and drag method. The user then selects the appropriate "draw line" and/or "draw curve" icons from the clef menu using the drop and drag method followed by the note heads. The user then selects the "draw curve line" icon from the articulation popup menu within the drop down menu to draw a slur and uses the input device 120 to draw the slur in the appropriate place. The 15 user selects the "draw stem" icon from the drop down menu and draws the stems in the appropriate place using the input device 120. The user selects the "end bar line" icon from the drop down menu and uses the drop and drag method to place the end bar line in the appropriate place. These elements of musical notation can be selected in any order and when complete, the user selects the 20 'marking' button 350 to effect marking of the task and check if the question has been answered correctly. The screenshot in FIG 8 shows the treble clef 810, a flat symbol 820 and three note heads 830 already drawn. To mark the user's answer, the software sorts the note heads 830 in order from left to right as they appear in the staff 330 on the screen. This prepares the 25 notes to be checked to verify whether the correct notes have been used. In other embodiments, the notes could be sorted in order from right to left. Suitable program code components for performing this function follow: on sorthorizontal 30 notesH=[] notesV=[] memberlist =[] repeat with sp in barnote 35 if sprite(sp).puppet = 1 then append ( notesH, sprite(sp).locH) if sprite(sp).puppet = 1 then append (notesV, sprite(sp).locv) if sprite(sp) .puppet = 1 then append (memberlist, sprite(sp) .member) end repeat 16 repeat with sp in barnote if sprite(sp).puppet = 1 then sprite(sp).locH = min (notesH) if sprite(sp).puppet = 1 then sprite(sp).locv = getat (notesV, getpos (notesH,min (notesH))) 5 if sprite(sp) .puppet = 1 then sprite(sp) .member = getat (memberlist, getpos (notesH,min (notesH))) if sprite(sp).puppet = 1 then a = getpos (notesH,min (notesH)) if sprite(sp).puppet = 1 then deleteat (notesH, a) if sprite(sp).puppet = 1 then deleteat (notesV, a) 10 if sprite(sp).puppet = 1 then deleteat (memberlist, a) end repeat updatestage end 15 The software then finds all the stems used with, for example, the follow code: on makestemlist stemsprite = [] 20 repeat with sp = 131 to 140 if sprite sp intersects 41 then append (stemsprite, sp) end repeat end 25 The software sorts the stems in order from left to right as they appear in the staff 330 on the screen. This prepares the stems to be associated with the equivalent note head, so each note can be marked as correct or incorrect. Suitable program code components for performing this function follow: 30 on sorthorizontalstems linesH=[] linesV=[] sizeline = [] memberlist =[] 35 repeat with sp in stemsprite if sprite(sp).puppet <> 0 then append ( linesH, sprite(sp).locH) if sprite(sp).puppet <> 0 then append (linesV, sprite(sp).rect) if sprite(sp).puppet <> 0 then append (sizeline, sprite(sp).linesize) 40 if sprite(sp).puppet <> 0 then append (memberlist, sprite(sp).member) end repeat repeat with sp in stemsprite if sprite(sp).puppet <> 0 then sprite(sp).locH = min (linesH) 45 if sprite(sp).puppet <> 0 then sprite(sp).rect = getat (linesV, getpos (linesH,min (linesH))) if sprite(sp).puppet <> 0 then sprite(sp).linesize = getat (sizeline, getpos (linesH,min (linesH))) if sprite(sp).puppet <> 0 then sprite(sp).member = getat (memberlist, 50 getpos (linesH,min (linesH))) if sprite(sp).puppet <> 0 then a = getpos (linesH,min (linesH)) if sprite(sp).puppet <> 0 then deleteat (linesH, a) if sprite(sp).puppet <> 0 then deleteat (linesV, a) if sprite(sp).puppet <> 0 then deleteat (sizeline, a) 55 if sprite(sp) .puppet <> 0 then deleteat (memberlist, a) end repeat updatestage end 17 The software checks whether the notes are in the correct position and whether the correct spacing between the notes has been used by comparing these characteristics with predetermined thresholds for the respective 5 characteristics of the elements of musical notation. Suitable program code components for performing this function follow: on checkbassnotes SpriteStaffNo = 2 10 notesinlistLtoR = [] repeat with k = 0 to span n = startsprite + k if sprite(n).loch > sprite(SpriteStaffNo).left and sprite(n).loch < 15 sprite(SpriteStaffNo).right and abs(sprite(SpriteStaffNo).rect[4] sprite(n).locv - 36 ) <2 then notesinlistLtoR.append("g3") if sprite(n).loch > sprite(SpriteStaffNo).left and sprite(n).loch < sprite(SpriteStaffNo).right and abs(sprite(SpriteStaffNo).rect[4] 20 sprite(n).iocv - 30 ) <2 then notesinlistLtoR.append("f3") if sprite(n).loch > sprite(SpriteStaffNo).left and sprite(n).loch < sprite(SpriteStaffNo).right and abs(sprite(SpriteStaffNo).rect[4] sprite(n).locv- 24 ) < 2 then notesinlistLtoR.append("e3") 25 if sprite(n).loch > sprite(SpriteStaffNo).left and sprite(n).loch < sprite(SpriteStaffNo).right and abs(sprite(SpriteStaffNo).rect[4] sprite(n) .locv - 18 ) < 2 then notesinlistLtoR.append("d3") 30 if sprite(n).loch > sprite(SpriteStaffNo).left and sprite(n).loch < sprite(SpriteStaffNo).right and abs(sprite(SpriteStaffNo).rect[4] sprite(n).locv -12 ) < 2 then notesinlistLtoR.append("c3") if sprite(n).loch > sprite(SpriteStaffNo).left and sprite(n).loch < 35 sprite(SpriteStaffNo).right and abs(sprite(SpriteStaffNo).rect[4] sprite(n).locv - 6 ) < 2 then notesinlistLtoR.append("b2") if sprite(n).loch > sprite(SpriteStaffNo).left and sprite(n).loch < sprite(SpriteStaffNo) .right and sprite(n) .member <> member 10 of castLib 1 and 40 abs(sprite(SpriteStaffNo).rect[4] - sprite(n).locv ) < 2 then notesinlistLtoR. append ("a2") if sprite(n).loch > sprite(SpriteStaffNo).left and sprite(n).loch < sprite(SpriteStaffNo).right and abs(sprite(SpriteStaffNo).rect[4] 45 sprite(n) .locv +6 ) < 2 then notesinlistLtoR.append("g2") if sprite(n).loch > sprite(SpriteStaffNo).left and sprite(n).loch < sprite(SpriteStaffNo).right and abs(sprite(SpriteStaffNo).rect[4] sprite(n).locv +12 ) < 2 then notesinlistLtoR.append("f2") 50 end repeat end The software checks for any accidental used as stated in drawing sharps, flats and naturals elsewhere in this document. The software checks for any 55 other variables in a multi symbol question. All the above checks must be deemed correct within the thresholds of the software for the question using 18 multiple symbols to be correct. Marks are added to the running total for each element of musical notation or characteristic thereof that the software checks and which is within the thresholds to be marked correct. In FIG 9, all the tasks were correctly completed by the user. 5 FIGS 10-12 are screenshots illustrating teaching and marking the drawing of a sharp sign. FIG 10 shows the menu 1000 used to draw the sharp sign 1010, which is partially drawn in FIG 10. FIG 11 shows the completed task in which all the measured characteristics of the elements of musical notation have been drawn and positioned correctly. Each of the assessed characteristics is 10 shown, which include verifying that the accidental is aligned to the note, the correct accidental has been used and drawn correctly and the note and the accidental have been named correctly. FIG 12 shows the measured characteristics of the elements of musical notation that have been drawn correctly and incorrectly. Whilst the accidental is aligned to the note and the 15 note has been named correctly, the accidentals are not drawn correctly. Hints can also be provided to educate the user where they made mistakes. Hence, feedback to the student is immediate and they can improve on their earlier performance. FIGS 13-21 show further screenshots illustrating embodiments of the 20 present invention teaching and examining musical tasks to be completed by users as exercises and/or examination questions. For example, FIG 13 shows a musical task in which the user must name the notes as part of a pitch exercise, whereas in FIG 14, the user must draw the notes using crotchets. An example of program code components that enable the user to draw the elements of 25 musical notation for these examples follows: --notehead 121 to 129 --stems 131 to 159 --leger 171 to 179 --flat curve 189 + 3 (189+2, 189+4 are dots) 30 global gNumberCorrect on checkino incorrect 35 sprite(101).puppet = true sprite (101).ink = 39 sprite (101) .member = member "tinycrossred" sprite (101).locv = sprite(31).top -10 sprite(101).loch = sprite(31).loch +sprite(31).width 40 end 19 on checklyes correct sprite(101).puppet = true sprite (101).ink = 39 5 sprite (101).member = member "ticki" sprite (101).locv = sprite(31).top -10 sprite(101).loch =sprite (31).loch +sprite(31).width end 10 on check2no incorrect sprite (102).puppet = true sprite (102).ink = 39 sprite (102).member = member "tinycrossred" 15 sprite (102).iocv = sprite(32).top -10 sprite(102).loch = sprite(32).loch +sprite(32).width end on check2yes 20 correct sprite (102).puppet = true sprite (102).ink = 39 sprite (102).member = member "tickl" sprite (102).locv = sprite(32).top -10 25 sprite(102).loch =sprite (32).loch +sprite(32).width end on check3no incorrect 30 sprite(103).puppet = true sprite (103).ink = 39 sprite (103).member = member "tinycrossred" sprite (103).locv = sprite(33).top -10 sprite(103).loch = sprite(33).loch +sprite(33).width 35 end on check3yes correct sprite(103).puppet = true 40 sprite (103).ink = 39 sprite (103).member = member "tickl" sprite (103).locv = sprite(33).top -10 sprite(103).loch =sprite (33).loch +sprite(33).width end 45 on check4no incorrect sprite(104).puppet = true sprite (104).ink = 39 50 sprite (104).member = member "tinycrossred" sprite (104).locv = sprite(34).top -10 sprite(104).loch = sprite(34).loch +sprite(34).width end 55 on check4yes correct sprite(104).puppet = true sprite (104).ink = 39 sprite (104).member = member "tickl" 60 sprite (104) .iocv = sprite(34).top -10 sprite(104).loch =sprite (34).loch +sprite(34).width end on check5no 65 incorrect sprite(105).puppet = true sprite (105).ink = 39 20 sprite (105).member = member "tinycrossred" sprite (105).locv = sprite(35).top -10 sprite(105).loch = sprite(35).loch +sprite(35).width end 5 on check5yes correct sprite(105).puppet = true sprite (105).ink = 39 10 sprite(105).member = member "ticki" sprite (105).locv = sprite(35).top -10 sprite(105).loch =sprite (35).loch +sprite(35).width end 15 on checks barnote = [] -- check only one notehead repeat with r = 120 to 129 20 if sprite r intersects 41 then append (barnote, r) end repeat if barnote.count <> 1 then checkino exit 25 end if --check that the notehead is filled if sprite(barnote[1]).member <> member("filled") then checkino exit 30 end if --check it is in f4 position if abs(sprite(2).top - sprite(barnote[l]).top - 6 )>3 then checkino exit 35 end if --check no leger legersprite = [] repeat with r = 171 to 179 if sprite r intersects barnote[1] then append (legersprite, r) 40 end repeat if legersprite.count<>0 then checkino exit end if 45 --find all lines linesprites = [] repeat with r = 131 to 149 if sprite r intersects 41 then append (linesprites, r) end repeat 50 put linesprites &&"linesprites" --find stem, delete from list, test connection to notehead stemsprite = [] repeat with r in linesprites if sprite r intersects 46 then append (stemsprite, r) 55 end repeat put stemsprite if stemsprite<>[] then repeat with r = 1 to stemsprite.count deleteone (linesprites , getat(stemsprite, r)) 60 end repeat end if put linesprites &&"linesprites" if stemsprite.count<>1 then checkino 65 exit end if --check stem is straight 21 if sprite(stemsprite[1]).width > 7 then checkino exit end if 5 --check length of stem if abs(sprite(stemsprite[1]).height - 43 ) > 10 then checkino exit end if 10 --check connection of stem to notehead if sprite(stemsprite[1]).member.linedirection = 0 and (abs(sprite(stemsprite[1]).quad[1].loch - sprite(barnote[1]).quad[4].loch) > 5 or abs(sprite(stemsprite[1]).quad[1].locv - sprite(barnote[1]).quad[4].locv) > 9 ) then 15 checkino exit end if if sprite(stemsprite[1]).member.linedirection = 1 and 20 (abs(sprite(stemsprite[1]).quad[2].loch - sprite(barnote[1]).quad[4].loch) > 5 or abs(sprite(stemsprite[1]).quad[2].locv - sprite(barnote[1]).quad[4].locv) > 9 ) then checkino exit 25 end if --find horizontals in sharp horizontals = [] repeat with r in linesprites if sprite (r).width >= 7 then append horizontalss, r) 30 end repeat put horizontals && horizontalss" --find verticals in sharp verticals = [] repeat with r in linesprites 35 if sprite (r).width < 7 then append (verticals, r) end repeat put verticals && "verticals" if verticals.count<>2 then checkino 40 exit end if if horizontals.count<>2 then checkino exit 45 end if --horizontals are horizontal if (sprite(horizontals[1]).member.linedirection = 0 and sprite(horizontals[1]).height > 4) or 50 (sprite(horizontals[2]).member.linedirection = 0 and sprite (horizontals[2]).height > 4) then markcross exit end if 55 if (sprite(horizontals[1]).member.linedirection = 1 and sprite(horizontals[1]).height > 10) or (sprite(horizontals[2]).member.linedirection = 1 and sprite (horizontals[2]).height > 10) then markcross 60 exit end if --verticals are vertical 65 if sprite(verticals[1]).width > 5 or sprite(verticals[2]).width > 5 then checkino exit 22 end if --horizontals not too wide or too narrow if sprite(horizontals[1]).width < 15 or sprite(horizontals[1]).width > 36 or sprite (horizontals[2]).width < 15 or sprite(horizontals[2]).width > 36 then 5 checkino exit end if --verticals not too short or too long if sprite(verticals[1]).height < 15 or sprite(verticals[1]).height > 50 or 10 sprite(verticals[2]).height < 15 or sprite(verticals[2]).height > 50 then checkino exit end if --space between verticals 15 if abs(sprite(verticals[1]).right - sprite(verticals[2]).right) < 5 or abs(sprite (verticals[1]).right - sprite(verticals[2]).right) > 13 then checkino exit end if 20 --space between horizontals if abs(sprite(horizontals[1]).top - sprite(horizontals[2]).top) < 7 or abs(sprite (horizontals[1]).top - sprite(horizontals[2]).top) > 20 then checkino exit 25 end if --set up values for testing overlaps -- find top line / bottom line if sprite(horizontals[1]).top > sprite(horizontals[2]).top then topline = horizontals[2] 30 bottomline = horizontals[1] else topline = horizontals[1] bottomline = horizontals[2] end if 35 put topline &&"top" put bottomline &&"bottom" -- find left line / right line if sprite(verticals[1]).right > sprite(verticals[2]).right then rightline = verticals[1] 40 leftline = verticals[2] else rightline = verticals[2] leftline = verticals[1] end if 45 put rightline &&"right" put leftline &&"left" --overlaps if sprite horizontals[1] intersects verticals[1] =false or sprite horizontals[2] intersects verticals[1] =false or sprite horizontals[1] 50 intersects verticals[2] =false or sprite horizontals[2] intersects verticals[2] =false then checkino exit end if 55 put "overlaps" --check near F space, allowable distance top line from bottom staff and likewise for bottom line --could change this to an abs topline to top of notehead and abs bottomline 60 to bottom of notehead -- if sprite(barnote[1]).bottom - sprite(bottomline).top < -1 or sprite(barnote[1]).bottom - sprite(bottomline).bottom < -12 or sprite(barnote[1]).bottom - sprite(topline).top > 24 or sprite (barnote[1]).bottom - sprite (topline).bottom > 13 then 65 -- checkino -- exit -- end if 23 if sprite(2).bottom - sprite(bottomline).bottom < 37 or sprite(2).bottom sprite(topline).top >64 then markcross exit 5 end if put "F line" --spacing from note, not too close --may want to add more to the value to this 10 --i.e. sprite(barnote~l]).left - 3 < sprite(rightline).right if sprite(barnote[l]).left - 1 < sprite(rightline).right then checkino exit end if 15 put "not too close" --spacing from note, not too far away if sprite(barnote[1]).left - sprite(leftline).left > 35 then checkino exit 20 end if put "not too far" -- --this doesn't work well in scale, maybe because of smaller staff -- -- checkHeightLengthRatio, since it is small, the percentage has been omitted from the original equation in qul2. 25 -- if sprite(horizontals[1]).width > sprite(verticals[1]).height or sprite (horizontals[2]).width > sprite (verticals[2]).height then --checkino -- exit --end if 30 --put "ratio good" -- check top horizontal not too high if sprite(barnote[1]).top - 7 > sprite(topline).top then checkino 35 exit end if put "top horizontal not too high" -- check bottom horizontal not too low if sprite(barnote[1]).bottom+ 7 < sprite(bottomline).bottom then 40 checkino exit end if put "bottom horizontal not too low" ------------------------- this must be last, if it passes everything, it gets 45 a tick. checklyes end 50 on check2 acclist = [] repeat with r = 151 to 159 if sprite r intersects 42 then append (acclist, r) end repeat 55 if acclist.count<> 0 then check2no exit end if 60 barnote = [] -- check only one notehead repeat with r = 120 to 129 65 if sprite r intersects 42 then append (barnote, r) end repeat if barnote.count <> 1 then 24 check2no exit end if 5 --check that the notehead is filled if sprite(barnote[1]).member <> member("filled") then check2no exit end if 10 --check it is in g3 position if abs(sprite(2).bottom - sprite(barnote[l]).locv +36)>3 then check2no exit end if 15 --check for stems in bar 2 stemsprite = [] repeat with r = 131 to 159 if sprite r intersects 42 then append (stemsprite, r) 20 end repeat --check which leger bisects note head legersprite = [] repeat with r = 171 to 179 25 if sprite r intersects stemsprite[1] then append (legersprite, r) end repeat --check two leger put legersprite if legersprite.count<>2 then 30 check2no exit end if --check position of leger 35 if sprite(legerspritel]).iocv > sprite(legersprite[2]).locv then legertop = legersprite[2] if sprite(legersprite[l]).locv > sprite(legersprite[2]).locv then legerbottom = legersprite[1] if sprite(legersprite[l]).locv < sprite(legersprite[2]).locv then legertop = 40 legersprite[l] if sprite(legersprite[l]).locv < sprite(legersprite[2]).locv then legerbottom = legersprite[2] if abs(sprite(legerbottom).bottom - sprite(barnote[l]).top )>3 or 45 abs(sprite(legerbottom).loch - sprite(barnote[l]).loch )>4 or abs(sprite(legerbottom).loch - sprite(legertop).loch )>4 or abs(sprite(legertop).bottom - sprite(legerbottom).bottom +12 ) > 3 then check2no exit 50 end if --check only one stem if stemsprite.count<>1 then check2no 55 exit end if --check stem is straight if sprite(stemsprite[l]).width > 7 then 60 check2no exit end if --check length of stem if abs(sprite(stemsprite[l]).height - 43 ) > 10 then 65 check2no exit end if 25 --check connection of stem to notehead, stemup if sprite(stemsprite[1]).member.linedirection = 0 and (abs(sprite(stemsprite[1]).quad[3].loch - sprite(barnote[1]).quad[2].loch) > 5 or abs(sprite(stemsprite[1]).quad[3].locv - sprite(barnote[1]).quad[2].locv) > 5 9 ) then check2no exit end if 10 if sprite(stemsprite[l]).member.linedirection = 1 and (abs(sprite(stemsprite[1]).quad[4].loch - sprite(barnote[1]).quad[2].loch) > 5 or abs(sprite(stemsprite[1]).quad[4].locv - sprite(barnote[1]).quad[2].locv) > 9 ) then check2no 15 exit end if check2yes end 20
---
on check3 acclist = [] repeat with r = 151 to 159 if sprite r intersects 43 then append (acclist, r) 25 end repeat if acclist.count<> 0 then check3no exit 30 end if barnote = [] -- check only one notehead repeat with r = 120 to 129 35 if sprite r intersects 43 then append (barnote, r) end repeat if barnote.count <> 1 then check3no exit 40 end if --check that the notehead is filled if sprite(barnote[1]).member <> member("filled") then check3no exit 45 end if --check it is in b2 position if abs(sprite(2).bottom - sprite(barnote[1]).locv-6 )>3 then check3no 50 exit end if --check no leger legersprite = [] repeat with r = 171 to 179 55 if sprite r intersects barnote[1] then append (legersprite, r) end repeat if legersprite.count<>0 then check3no exit 60 end if --check for stems in bar 1 stemsprite = [] repeat with r = 131 to 159 if sprite r intersects 43 then append (stemsprite, r) 65 end repeat --check only one stem if stemsprite.count<>1 then 26 check3no exit end if 5 --check stem is straight if sprite(stemsprite[1]).width > 7 then check3no exit end if 10 --check length of stem if abs(sprite(stemsprite[1]).height - 43 ) > 10 then check3no exit end if 15 --check connection of stem to notehead if sprite(stemsprite[1]).member.linedirection = 0 and (abs(sprite(stemsprite[1]).quad[3].loch - sprite(barnote[1]).quad[2].loch) > 5 or abs(sprite(stemsprite[1]).quad[3].locv - sprite(barnote[1]).quad[2].locv) > 20 9 ) then check3no exit end if 25 if sprite(stemsprite[l]).member.linedirection = 1 and (abs(sprite(stemsprite[1]).quad[4].loch - sprite(barnote[1]).quad[2].loch) > 5 or abs(sprite(stemsprite[1]).quad[4].locv - sprite(barnote[1]).quad[2].locv) > 9 ) then check3no 30 exit end if check3yes end 35 on check4 acclist = [] repeat with r = 151 to 159 if sprite r intersects 44 then append (acclist, r) 40 end repeat if acclist.count<> 0 then check4no exit 45 end if barnote = [] -- check only one notehead repeat with r = 120 to 129 50 if sprite r intersects 44 then append (barnote, r) end repeat if barnote.count <> 1 then check4no exit 55 end if --check that the notehead is filled if sprite(barnote[1] ) .member <> member("filled") then check4no 60 exit end if --check it is in b3 position if abs(sprite(2).bottom - sprite(barnote[1]).locv -48)>3 then check4no 65 exit end if 27 --check for stems in bar 1 stemsprite = [] repeat with r = 131 to 159 if sprite r intersects 44 then append (stemsprite, r) 5 end repeat --check which leger bisects note head legersprite = [] repeat with r = 171 to 179 10 if sprite r intersects stemsprite[1] then append (legersprite, r) end repeat --check no leger put legersprite if legersprite.count<>0 then 15 check4no exit end if 20 --check only one stem if stemsprite.count<>1 then check4no exit end if 25 --check stem is straight if sprite(stemsprite[1]).width > 7 then check4no exit 30 end if --check length of stem if abs(sprite(stemsprite[1]).height - 43 ) > 10 then check4no exit 35 end if --check connection of stem to notehead, stemdown if sprite(stemsprite[1]).member.linedirection = 0 and (abs(sprite(stemsprite[1]).quad[1].loch - sprite(barnote[1]).quad[4].loch) > 5 or abs(sprite(stemsprite[1]).quad[1].locv - sprite(barnote[1]).quad[4].locv) > 40 9 ) then check4no exit end if 45 if sprite(stemsprite[l]).member.linedirection = 1 and (abs(sprite(stemsprite[1]).quad[2].loch - sprite(barnote[1]).quad[4].loch) > 5 or abs(sprite(stemsprite[1]).quad[2].locv - sprite(barnote[1]).quad[4].locv) > 9 ) then check4no 50 exit end if check4yes end 55 on check acclist = [] repeat with r = 151 to 159 if sprite r intersects 45 then append (acclist, r) end repeat 60 if acclist.count<> 0 then check5no exit end if 65 barnote = [] -- check only one notehead 28 repeat with r = 120 to 129 if sprite r intersects 45 then append (barnote, r) end repeat if barnote.count <> 1 then 5 check5no exit end if --check that the notehead is filled if sprite(barnote[1]).member <> member("filled") then 10 check5no exit end if --check it is in g3 position if abs(sprite(2).bottom - sprite(barnote[l]).locv+30 )>3 then 15 check5no exit end if --check 2 leger 20 legersprite = [] repeat with r = 171 to 179 if sprite r intersects 45 then append (legersprite, r) end repeat 25 if legersprite.count<>2 then check5no exit end if 30 --check position of leger if sprite(legersprite[1]) .locv < sprite(legersprite[2]) .locv then legertop = legersprite[1] if sprite(legersprite[l]).locv < sprite(legersprite[2]).locv then legerbottom = legersprite[2] 35 if sprite(legerspritel]).iocv > sprite(legersprite[2]).locv then legertop = legersprite[2] if sprite(legersprite[l]).locv > sprite(legersprite[2]).locv then legerbottom = legersprite[1] 40 if abs(sprite(legerbottom).bottom - sprite(barnotel]).top - 6 )>3 or abs(sprite(legerbottom).loch - sprite(barnote[l]).loch )>4 or abs(sprite(legerbottom).loch - sprite(legertop).loch )>4 or abs(sprite(legertop).bottom - sprite(legerbottom).bottom +12 ) > 3 then check5no 45 exit end if --check for stems in bar 1 stemsprite = [] 50 repeat with r = 131 to 159 if sprite r intersects 45 then append (stemsprite, r) end repeat -- check only one stem if stemsprite.count<>1 then 55 check5no exit end if -- check stem is straight 60 if sprite(stemsprite[l]).width > 7 then check5no exit end if -- check length of stem 65 if abs(sprite(stemsprite[l]).height - 43 ) > 10 then check5no exit 29 end if --check connection of stem to notehead if sprite(stemsprite[l]).member.linedirection = 0 and (abs(sprite(stemsprite[l]).quad[3].loch - sprite(barnote[l]).quad[2].loch) > 5 5 or abs(sprite(stemsprite l]).quad[3].iocv - sprite(barnotel]).quad[2].iocv) > 9 ) then check5no exit end if 10 if sprite(stemsprite[l]).member.linedirection = 1 and (abs(sprite(stemsprite[l]).quad[4].loch - sprite(barnote[l]).quad[2].loch) > 5 or abs(sprite(stemsprite[l]).quad[4].locv - sprite(barnote[l]).quad[2].locv) > 9 ) then 15 check5no exit end if check5yes end 20 on mouseup cor = gnumbercorrect checks check2 25 check3 check4 check corqu = gNumberCorrect - cor incorqu = 5 30 member("thisquscore").text = corqu &&"/"&&incorqu if sprite(101) .member = member ("tickl") and sprite (102) .member = member ("tickl") and sprite (103) .member = member ("tickl") and sprite(104) .member = member ("tickl") and sprite(105) .member = member ("tickl") then go to frame 35 "qu2yes" else go to frame "qu2no" end FIGS 15 and 16 illustrate a keys and scales task in which the scale of G Major must be drawn according to the instructions 1500 displayed. The menu 40 1510 is shown in FIG 15 providing all the icons necessary to complete the musical task and the result of marking is shown in FIG 16. In this example, the user did not complete the scale with a double bar line and their mark is 9/10. Time and rhythm tasks are shown in FIGS 17 and 18 and in the task shown in FIG 19 a folk song memorised by the user must be written according to the 45 instructions. A transposition task is shown in FIG 20 and signs and terms are tested in FIG 21. For each task, the appropriate menu is displayed, with sub menus where required, to enable the user to draw the musical notation using elements thereof or to enable the user to insert the required musical notation depending on the aspect of music theory being taught and/or examined. 50 Embodiments of the present invention also enable users to draw flat signs 820, an example of which is shown in FIG 8. The user draws a line with the 30 input device 120 onto the music staff 330 provided on the screen by selecting the 'draw line' icon from the drop down menu. The user draws a curved line with the input device 120 onto the music staff attaching it to the straight line already drawn by selecting the 'draw curve line' from the drop down menu on the screen. 5 When complete, the user selects the 'marking' button 350 to see if the flat has been assembled correctly. The software checks the angle, position and size of the flat sign 820 in relation to the staff 330 and the note on the staff, by comparison with predetermined thresholds. The horizontal position of the flat sign is determined 10 by its left-right relation to the staff. If its position is incorrect, an on-screen message appears, alerting the user to the error. The software checks that only one line has been drawn, suitable program code components for which are as follows: 15 --check for stems in bar 1 stemsprite = [] repeat with r = 131 to 159 if sprite r intersects 41 then append (stemsprite, r) end repeat 20 --check only one line for flat if stemsprite.count<>1 then markcross 25 exit end if The software checks the angle of the line that has been drawn. If the line of the flat is at the correct angle, a tick appears on the screen. Conversely, if the 30 line of the flat is at an incorrect angle, the comment "flat stem is straight" appears on the screen, suitable program code components for which are as follows: if sprite(flatlinesp).width > 7 then 35 markcross exit end if The software checks the length of the flat line that has been drawn. If the 40 line of the flat is the correct length, a tick appears on the screen. Conversely, if the line of the flat is not the correct length, the comment "flat stem length is incorrect length" appears on the screen effected by the following suitable program code components: 31 if abs(sprite(flatlinesp).height - 31 ) > 6 then markcross exit 5 end if put "flat stem is incorrect length" The software then finds the end points of the flat curve and checks where 10 they intersect the straight line of the flat. If the curve line intersects the straight line, a tick appears on the screen. Conversely, if one or both points of the curved line of the flat do not intersect the straight line, a cross appears on the screen effected by the following suitable program code components: 15 --find endpoints of curve flatpoints = [] repeat with r in [191,193,194,196] if sprite r intersects 41 then append (flatpoints, r) end repeat 20 if flatpoints.count <> 2 then markcross exit end if put "2 points" 25 if sprite(flatpoints [l]).iocv > sprite (flatpoints[2]).locv then topcurvept = flatpoints[2] bottomcurvept =flatpoints[1] else topcurvept = flatpoints[1] 30 bottomcurvept =flatpoints[2] end if --check bottom end of flat stem = 18 if abs(sprite(flatlinesp).bottom - sprite (2).bottom +14) > 4 then 35 markeross exit end if put "bottom correct" --top of flat curve lines up with 32 40 if abs(sprite(topcurvept).top - sprite(2).bottom +32) > 4 then markcross exit end if put "top correct" 45 --bottom flat curve to bottom flat stem if sprite(flatlinesp) .member.linedirection = 0 then if abs(sprite(flatlinesp).quad[3].locv - sprite(bottomcurvept).locv) > 4 or abs(sprite(flatlinesp).quad[3].loch - sprite(bottomcurvept).loch) > 4 then markcross 50 exit end if end if if sprite(flatlinesp) .member.linedirection = 1 then 55 if abs(sprite(flatlinesp).quad[4].iocv - sprite(bottomcurvept).iocv) > 4 or abs(sprite(flatlinesp).quad[4].loch - sprite(bottomcurvept).loch) > 4 then markcross exit end if 60 end if --top of curve meets stem of flat 32 if abs(sprite(flatlinesp).right - sprite(topcurvept).loch) > 4 then markcross exit end if 5 The software then checks the spacing from the note to the closest horizontal line. If the space between the horizontal lines and the note are correct, a tick and associated comment appear on the screen. Conversely, if the 10 space between the horizontal lines and the note is incorrect, the comment "Accidental is too close to note" or "Accidental is too far from note" appears on the screen. All the above checks must be deemed correct within the predetermined thresholds of the software for the drawing of the flat sign 820 to be correct. Marks are added to the score for each element the software checks. 15 The present invention also enables users to draw natural signs. The user draws four individual lines with the input device 120 onto the music staff 330 provided on the screen. The user selects the 'draw line' icon from the drop down menu on the screen and draws four lines with the input device 120, two horizontal lines and two vertical lines. These lines can be drawn in any order 20 and when complete, the user selects the 'marking' button 350 to see if the natural sign has been drawn correctly. The software checks the angle, horizontal and vertical position of the natural sign in relation to the staff and the note on the staff, using predetermined parameters. The horizontal position of the natural sign is determined by its left-right relation to the staff. If its position is 25 incorrect, an on-screen message appears, alerting the user to the error. This can be effected by the following suitable program code components: on spacingfromnote -- check space between note & both vertical lines, check if either line is 30 too close the note if sprite(6).loch - (sprite(verticals[l]).loch or sprite(verticals[2]).loch) < 26 then member("comment").text = member("comment").text & " Accidental is too close to note" if (sprite(verticals[l]).loch or sprite(verticals[2]).loch) - sprite(6).loch 35 > 65 then member("comment") .text = member("comment") .text & " Accidental is too far from note" end 40 The software differentiates lines by recognising their horizontal and vertical location on the staff 330. The software checks that the correct four lines have been drawn. If the correct number of lines have been drawn, a tick and the comment "correct number of lines" appears on the screen. Conversely, if the 33 number of lines drawn is incorrect, the comment "Note wrong number of lines" appears on the screen. This can be effected by the following suitable program code components: 5 on checknumberoflines listall = [] repeat with n = 1 to 10 if sprite(100+n).puppet <> 0 then append(listall, n) end repeat 10 if listall.count <> 4 then totallywrong if listall.count <> 4 then member("comment").text = "Used wrong number of lines. " if listall.count <> 4 then pass end 15 The software differentiates lines by horizontal and vertical location on the staff 330. It first determines the vertical lines by virtue of the following exemplary program code components: 20 on findverticals verticals = [] note = 100 repeat with t = 1 to 4 if sprite(note + t).right - sprite(note + t).left <20 then append 25 (verticals, note+t) end repeat put verticals & "vertical list" end 30 It then determines the horizontal lines by virtue of the following exemplary program code components: 35 on findhorizontals horizontals = [] note = 100 repeat with u = 1 to 4 if sprite(note + u).right - sprite(note + u).left >20 then append 40 horizontalss, note+u) end repeat put horizontals & horizontalss list" end 45 The software checks the vertical placement of the natural sign. It determines whether the natural sign is too low or too high on the staff 330 relative to the placement of the note on the staff on the screen. If the natural sign is drawn in the correct vertical position on the staff, a tick and a comment appears on the screen. Conversely, if the natural sign is not drawn in the correct 50 vertical position on the staff, the comment "natural is not vertically aligned with 34 note" appears on the screen by virtue of the following exemplary program code components: on checkrelativitynatural 5 -- check box one answer -- check that the natural is not too high or too low if abs(((sprite(101).locv + sprite (102).locv + sprite (103).locv + sprite(104).locv) /4) - (sprite(6).locv - 7))<15 then member("comment") .text = member("comment") .text & 10 checklright else member("comment") .text = member("comment") .text & natural is not vertically aligned with note, checklwrong 15 end if end The software then determines the spacing between the vertical lines. If 20 the space between the vertical lines are correct, a tick and the comment "vertical lines correctly spaced" appears on the screen. Conversely, if the space between the vertical lines is incorrect, the comment "Vertical lines of natural are too far apart." or " Vertical lines of natural are too close together." appears on the screen by virtue of the following exemplary program code components: 25 on spacingofverticals if abs (sprite(verticals[l]).loch - sprite(verticals[2]).loch ) > 30 then member("comment").text = member("comment").text & " Vertical lines of natural are too far apart." 30 if abs (sprite(verticals[l]).loch - sprite(verticals[2]).loch ) < 8 then member("comment").text = member("comment").text & " Vertical lines of natural are too far apart." end 35 The software then determines the spacing between the horizontal lines. If the space between the horizontal lines are correct, a tick and the comment "horizontal lines correctly spaced" appears on the screen. Conversely, if the space between the horizontal lines is incorrect, the comment "Horizontal lines of natural are too far apart." or "Horizontal lines of natural are too close together." 40 appears on the screen by virtue of the following exemplary program code components: on spacingofhorizontals if abs (sprite(horizontals[l]).locv - sprite(horizontals[2]).locv ) > 28 then 45 member("comment").text = member("comment") .text & " Horizontal lines of natural are too far apart." if abs (sprite(horizontals[l]).locv - sprite(horizontals[2]).locv ) <10 then member("comment") .text = member("comment") .text & " Horizontal lines of natural are too close together." 50 end 35 The software then checks the spacing from the note to the closest horizontal line. If the space between the horizontal lines and the note are correct, a tick and a suitable comment appears on the screen. Conversely, if the 5 space between the horizontal lines and the note is incorrect, the comment "Accidental is too close to note" or "Accidental is too far from note" appears on the screen by virtue of the following exemplary program code components: 10 on spacingfromnote if sprite(6).loch - (sprite(verticals[l]).loch or sprite(verticals[2]).loch) < 28 then member("comment") .text = member("comment") .text & " Accidental is too close to note" if (sprite(verticals[l]).loch or sprite(verticals[2]).loch) - sprite(6).loch 15 > 65 then member("comment") .text = member("comment") .text & " Accidental is too far from note" end The software then checks the angle of the horizontal lines. If the 20 horizontal lines and the note are at an acceptable angle, i.e. within a predetermined threshold a tick and a suitable comment appears on the screen. Conversely, if the angle between the horizontal lines and the note is incorrect, the comment "One or more of the horizontals lines are drawn down and not drawn angled up." appears on the screen by virtue of the following exemplary 25 program code components: on checkhorizontalangleup put sprite(horizontals[1]).quad[2].locv put sprite(horizontals[1]).quad[4].locv 30 if (sprite(horizontals[1]).quad[2].locv > sprite(horizontals[1]).quad[4].locv) or (sprite(horizontals[2]).quad[2].locv > sprite(horizontals [2]) .quad[4] .locv) then member("comment") .text = member("comment").text & " One or more of the horizontals lines are drawn down and not drawn angled up." 35 end The software then determines the length of the vertical lines. If the length of the vertical lines is correct, a tick and a suitable comment appears on the screen. Conversely, if the length of the vertical lines is incorrect, the comment 40 "One or both of the vertical lines is too long." or "One or both of the vertical lines is too short." appears on the screen by virtue of the following exemplary program code components: on checklengthverticals 45 if sprite(verticals[1]).height >70 or sprite(verticals[2]).height >70 then member("comment") .text = member("comment") .text & " One or both of the vertical 36 lines is too long." if sprite(verticals[l]).height < 31 or sprite(verticals[2]).height< 31 then member("comment") .text = member("comment") .text & " One or both of the vertical lines is too short." 5 end The software then determines the length of the horizontal lines. If the length of the horizontal lines is correct, a tick and a suitable comment appears on the screen. Conversely, if the length of the horizontal lines is incorrect, the 10 comment "One or both of the horizontal lines is too long." or "One or both of the horizontal lines is too short." appears on the screen by virtue of the following exemplary program code components: on checklengthhorizontals 15 if sprite(horizontals[1]).width >64 or sprite(horizontals[2]).width >64 then member("comment") .text = member("comment") .text & " One or both of the horizontal lines is too long." if sprite(horizontals[1]).width <20 or sprite(horizontals[2]).width <20 then member("comment") .text = member("comment") .text & " One or both of the 20 horizontal lines is too short." end The software then determines the correct angle of the first horizontal line. If the angle of the first horizontal line is correct, a tick and a suitable comment 25 appears on the screen. Conversely, if the angle of the first horizontal line is incorrect, the comment "First line is drawn wrong." appears on the screen by virtue of the following exemplary program code components: on checkfirstline 30 -- start and finish of left line --must start note.bottom and finish note.top + note.height if sprite(verticals[1]).loch < sprite(verticals[2]).loch then a = verticals [1] 35 if sprite(verticals[1]).loch > sprite(verticals[2]).loch then a = verticals [2] put a &&"a" if abs (sprite(a).bottom - sprite(6).bottom ) < 6 then nothing -- and abs 40 (sprite(6).top -sprite(a).top - sprite(6).height ) < 20 else member("comment") .text = member("comment") .text & " Seccond line is drawn wrong." end 45 The software then determines the correct angle of the second horizontal line. If the angle of the second horizontal line is correct, a tick and a suitable comment appears on the screen. Conversely, if the length of the horizontal lines is incorrect, the comment "Second line is drawn wrong." appears on the screen by virtue of the following exemplary program code components: 37 on checksecondline if sprite(verticals[l]).loch < sprite(verticals[2]).loch then a = 5 verticals[2] if sprite(verticals[l]).loch > sprite(verticals[2]).loch then a = verticals [1] put a &&"a" if abs (sprite(a).top - sprite(6).top ) < 6 then nothing 10 else member("comment") .text = member("comment") .text & " second line is drawn wrong." end The software then determines the ratio between the length of the vertical 15 lines compared to the length of the horizontal lines. If the ratio between the length of the vertical and horizontal lines are correct, i.e. within a predetermined threshold, a tick and the comment "lines correctly spaced" appears on the screen. Conversely, if the ratio between the length of the vertical and horizontal lines is incorrect, the comment "width too wide compared to height." appears on 20 the screen by virtue of the following exemplary program code components: on checkHeightLengthRatio if sprite(horizontals[1]).width < (0.6 * sprite(verticals[1]).height) and sprite(horizontals[2]).width < (0.6 * sprite(verticals[2]).height) then nothing 25 else member("comment") .text = member("comment") .text & "width too wide compared to height." End 30 The software then determines the intersection of the vertical and horizontal lines. If the intersection of the vertical and horizontal lines are correct, i.e. within a predetermined threshold, a tick and a suitable comment appears on the screen. Conversely, if the ratio between the length of the vertical and 35 horizontal lines is incorrect, the comment "incorrect joins." appears on the screen by virtue of the following exemplary program code components: on checkallcorners -- a is left line -- b is top line 40 if sprite(verticals[1]).loch < sprite(verticals[2]).loch then a = verticals [1] b = verticals[2] end if 45 if sprite(verticals[1]).loch > sprite(verticals[2]).loch then a = verticals[2] b = verticals [1] end if if sprite(horizontals[1]).locv < sprite(horizontals[2]).locv then 50 c = horizontals[1] d = horizontals[2] end if 38 if sprite(horizontals[1]) .locv > sprite(horizontals [2]) .locv then c = horizontals[2] d = horizontals [1] end if 5 --conditionA if abs( sprite(a).bottom - sprite(d).bottom) < 5 and abs( sprite(c).left sprite(a).left) < 5 and abs( sprite(d).left - sprite(a).left) < 5 and abs( sprite(c).top - sprite(b).top) < 5 and abs( sprite(d).right - sprite(b).left) < 5 and abs( sprite(c).right - sprite(b).left) < 5 then nothing 10 else member("comment") .text = member("comment") .text & " incorrect joins." end According to some embodiments, all the above checks must be deemed correct within the thresholds of the software for the drawing of the natural to be 15 marked correct. Marks are added to the score for each element the software checks. According to one embodiment, an online examination comprises multiple questions of the type described above. A user inputs an identifier, such as their name and a password, which is matched to their name and password stored in 20 the storage facility 150. If the name and password combination is correct, the user proceeds to the examination, otherwise the name and password need to be re-entered. Buttons to direct the user to the individual exam questions are displayed in the main menu. The user clicks on the question they wish to answer and the software moves to that question. The user can return to the 25 main menu at any time. The user answers questions in any order and can return to any question at any time during the examination. At the end of the examination the user presses a send button 2200 as shown in FIG 22. The software marks each question and sends the results and a copy of the user's answers to the database 150. A report of the exam with detailed comments and 30 marks is also generated by suitable program code components. The appropriate authority, such as a music examination board, can respond to the user with the results and can check results for quality control. With reference to FIG 22, a score and a time taken for the examination can be displayed on screen and the user can choose to send the examination or retry in an attempt to achieve a 35 higher score via retry button 2210. Where the examination is a final examination, the retry option may not be available. The user answers each question in the space provided on screen drawing and assembling the appropriate musical notation and elements thereof as used in questions that require multiple symbol answers. The user's answers are held 39 in global variables until the send button 2200 is pressed. When the send button is pressed the user's answers are sent to the database 150 as text strings and the database 150 can convert the text strings into graphics and recreate the user's graphical answer. Suitable program code components for performing the 5 aforementioned functions when the send button 2200 is pressed follow: on mouseup me numquestions = member("number of questions") .text 10 qi = member("QlaComment").text q2 = member("QlbComment") .text q3 = member("QlcComment") .text q4 = member("Q2aComment") .text q5 = member("Q2bComment") .text 15 q6 = member("Q2cComment").text q7 = member("Q2dComment") .text q8 = member("Q3aComment") .text q9 = member("Q3bComment") .text qlO = member("Q3cComment") .text 20 qil = member("Q4aComment") text q12 = member("Q4bComment") .text q13 = member("Q4cComment") .text q14 = member("Q4dComment") .text q15 = member("Q4eComment") .text 25 q16 = member("Q4fComment").text q17 = member("Q5Comment") .text q18 = member("Q6Comment") .text q19 = member("Q7aComment") .text q20 = member("Q7bComment") .text 30 q21 = member("Q7cComment").text if q1 = "" then ql = "Qla,5,0,0,0,0,0,0,Not attempted" if q2 = "" then q2 = "Qib, 5, 0, 0, 0, 0, 0, 0,Not attempted" if q3 = "" then q3 = "Qlc,4,0, 0, 0, 0, 0,Not attempted" 35 if q4 = "" then q4 = "Q2a,10,0,0,Not attempted" if q5 = "" then q5 = "Q2b,10,0,0,Not attempted" if q6 = "" then q6 = "Q2c,2,0,0,0,Not attempted" if q7 = "" then q7 = "Q2d,2,0,0,0,Not attempted" if q8 = "" then q8 = "Q3a, 5, 0, 0, 0, 0, 0, 0,Not attempted" 40 if q9 ="" then q9 = "Q3b, 5, 0, 0, 0, 0, 0, 0,Not attempted" if qlO "" then qlO = "Q3c,3,0,0,0,0,Not attempted" if q1l = "" then q1l = "Q4a,2,0,0,0,Not attempted" if q12 = "" then q12 = "Q4b,2,0,0,0,Not attempted" if q13 = "" then q13 = "Q4c,1,0,0,Not attempted" 45 if q14 = "" then q14 = "Q4d,1,0,0,Not attempted" if q15 = "" then q15 = "Q4e,1,0,0,Not attempted" if q16 = "" then q16 = "Q4f,3,0,0,0,Not attempted" if q17 = "" then q17 = "Q5,19,0,0,Not attempted" if q18 = "" then q18 = "Q5,14,0,0,Not attempted" 50 if q19 = "" then q19 = "Q7a,8,0,0,0,0,0,0,0,0,0,Not attempted" if q20 = "" then q20 = "Q7b, 5, 0, 0, 0, 0, 0, 0,Not attempted" if q21 = "" then q21 = "Q7c,5,0,0,0,0,0,0,Not attempted" userNamevar = externalParamValue ("swl") 55 passWord = externalParamValue("sw2") firstName = externalParamValue ("sw3") lastName = externalParamValue("sw4") testId = externalParamValue ("sw5") 60 -- Use variables to create a URL to pass data back to the database. urltext = "/members/popup2.php?type=test&id="& testId &"&username="& 40 userNamevar &"&password="& passWord &"&numquestions="& numquestions & "&ql="& q1 &"&q2="& q2 &"&q3="& q3 &"&q4="& q4 &"&q5="& q5 &"&q6="& q6 &"&q7="& q7 &"&q8="& q8 &"&q9="& q9 &"&qlO="& q1O &"&q11="& q11 &"&q12="& q12 &"&q13="& q13 &"&q14="& q14 &"&q15="& q15 &"&q16="& q16 &"&q17="& q17 &"&q18="& q18 &"&q19="& 5 q19 &"&q20="& q20 &"&q21="& q21 gotonetpage (urltext) end 10 The results of marking each question are sent to the database 150 and a report is generated with each question marked. In some embodiments, the marks and comments are compiled into a table, which can be emailed to the user and the appropriate authority in the form of the examination result. According to some embodiments, when the send button 2200 is pressed, 15 the position of every bitmap and text is stripped from the user's answer and converted to a string to copy the answers, but in a list format. The name of the graphic and its location is thus copied and transmitted to the database 150. This avoids the need to send a large graphic file that would take a long time to upload. An exact copy of all the graphics used for the examination is stored in 20 the database 150. The server can then recreate the graphics of users' answers for quality control purposes and/or to address any disputes. Suitable program code components for performing this function when the send button is pressed follow: 25 on makelistforServer member ("qul7list") .text = "" qullist = [:] myitem = 0 repeat with sp = 1 to 320 30 if sprite(sp).member <> member (0) then myitem = myitem + 1 if sprite(sp).member.type = #text then sptextin = sprite(sp).member.text else sptextin = "" 35 if sprite(sp).member.type = #shape then splineWidthin = sprite(sp).linesize else splineWidthin = "" if sprite(sp).member.type = #vectorshape then splineEquationIn = sprite(sp).member.vertexlist 40 else splineEquationIn = "" addprop qullist, #newitem, [#itemNum: myitem, # spNum: sp, # spMember: sprite(sp).member, #sploc: sprite(sp).loc, #spink: sprite(sp).ink, #sptext:sptextin, #sprect:sprite(sp).rect, #splineWidth: splineWidthin, #splineEquation: splineEquationIn] 45 end if end repeat member("qul7list") .text = string(qullist) end 41 Further embodiments of the present invention will now be described with reference to the musical tasks shown in FIGS 24-27 and the general flow diagram illustrating methods 2800 shown in FIG 28. According to some 5 embodiments, methods 2800 of examining in the field of music include at step 2810 presenting a user with one or more musical tasks to perform. For example, as shown in FIG 24, such methods can include presenting the user with musical notation 2400, which represents a piece of music the user is required to play. According to some embodiments, the method 2800 includes at step 2820 10 presenting a tempo to the user at which the music represented by the musical notation 2400 must be performed. For example, an audible periodic sound, such as metronome clicks, can be generated by the processor 130 at the required tempo. According to some embodiments, the method 2800 includes at 2830 15 playing a backing track along to which the user can play. Optionally the user can listen to the backing track via headphones whilst playing the music represented by musical notation 2400. It will be appreciated that steps 2810-2830 can occur simultaneously. The method 2800 includes at 2840 recording the music performed by the 20 user via microphone 170 in response to the one or more musical tasks. Any known pitch recognition software technology can be used for recording the music such that the pitch of the music played by the user is accurately recognized by the apparatus 105. Once the piece of music performed by the user has been recorded, the 25 method 2800 includes at 2850 comparing the recorded music with one or more predetermined thresholds. As with other embodiments described herein, the threshold can be set according to the level or standard being assessed. For example, tolerances within 1%, 2%, 3%, 4%, 5%, 10% etc. of the correct pitch can be set for the predetermined thresholds such that a note played within the 30 predetermined threshold is considered by the apparatus 105 to be correctly played. The method can include generating a mark based on the result of the comparison. For example, with reference to the example shown in FIG 25, only one of the six notes on the right hand side has been marked as being played at 42 the correct pitch by the user. With reference to FIG 26, where the user commits one or more errors in performing the one or more musical tasks, the method 2800 includes re presenting the user with at least part of the one or more musical tasks previously 5 presented, such as the musical notation 2400, but at a reduced tempo. Reducing the tempo is shown at step 2860 of method 2800. The re-presented part of the musical task can be the full task or just the part that the user has previously played incorrectly. FIG 26 shows just the part of the musical task 2400 that the user previously played incorrectly at 60% of the original tempo. It will be 10 appreciated that other percentages or fractions of the original tempo can be employed. According to some embodiments, where the user commits one or more errors in performing the one or more musical tasks, the musical task 2400 can first be re-presented in its original form at the original tempo before the musical 15 task 2400 or part thereof is re-presented at a reduced tempo. If errors are still made with the original tempo, the musical task 2400 or part thereof can then be re-presented at a reduced tempo. For example, if the musical task is incorrectly performed, i.e. is performed outside the predetermined thresholds, with reference to step 2870, if it is the first time the musical task has been performed 20 incorrectly, the musical task 2400 can first be re-presented in its original form at the original tempo. If the user then incorrectly performs the musical task a second time at the original tempo, the musical task or part thereof can be re presented at a reduced tempo. It will be appreciated that the number of times the user is presented with the original task at the original tempo can vary 25 between embodiments and may depend on the level or standard being examined. According to some embodiments and with reference to steps 2850 and 2875, where the user performs the one or more musical tasks correctly at the reduced tempo, the method includes re-presenting the user with at least part of 30 the one or more musical tasks 2400 previously presented, but at a tempo increased from the reduced tempo. Increasing the tempo is shown at step 2880 of method 2800. The musical tasks 2400 or part thereof can be re-presented at consecutively higher tempos and with each correct performance by the user the 43 tempo can be increased until the original tempo of the musical task 2400 is achieved. According to some embodiments, where just the erroneously performed part of the musical task 2400 is re-presented and performed at consecutively 5 higher tempos, once the erroneously performed part is played correctly by the user at the original tempo, the original musical task 2400 is re-presented to the user at the original tempo and the user's performance recorded and marked. It will be appreciated that where just the erroneously performed part of the musical task 2400 is re-presented to the user, the backing track may be omitted. 10 Each performance by the user is recorded and with reference to step 2885 of the method 2800, when the send button 2200 is pressed, the results are transmitted to the storage facility 150 including the errors marked and the percentage of the original tempo achieved. More embodiments of the present invention will now be described with 15 reference to the schematic flow diagram shown in FIG 29. The aforementioned system, methods and apparatus can be used for teaching and examining other subjects in addition to music, such as, but not limited to, mathematics, languages, humanities, such as geography, science, technology, business studies etc.. 20 For example, a method of teaching and examining a subject according to some embodiments of the present invention includes generating a lesson for the subject from a store of components related to the subject. The store can be in the form of the storage facility 150, such as a database. According to some embodiments, the method includes generating a 25 lesson for the duration of a learning period, such as for each week of an educational term or year. The method includes presenting a user with the lesson comprising one or more tasks related to the subject. Each task can comprise one or more of the components. The components related to the subject can be, for example, lists of 30 words, clauses and/or sentences to be taught to a user as part of a language course; images relating to a humanities course, such as a silhouette or outline of a country for the task of identification of the country by a user; equations to be solved by the user as part of a mathematics course; chemical symbols, process 44 diagrams, flow diagrams or apparatus diagrams as part of science course, for example, where a user is required to identify the element or compound, process parameters, stages or apparatus components respectively. Other tasks can be selected from the following: selecting the odd one out 5 from a group or class of items; inputting a word, clause and/or sentence in response to the word, clause and/or sentence being audibly presented; identifying an incorrect answer, such as a misspelt word or incorrect result and inputting the word or result correctly; pronouncing a word, clause and/or sentence which is recorded in response to the word, clause and/or sentence 10 being displayed on screen. Suitable known voice recognition technology can be employed to assess whether the word, clause and/or sentence has be correctly pronounced or pronounced within prescribed thresholds. It will be appreciated that the components related to the subject and the tasks to be completed are not an exhaustive list and are merely illustrative of 15 how the present invention can be used to teach and examine other subjects. The method further includes providing a menu with one or more selectable icons, selection of one of said icons activating functionality to enable the user to submit one or more responses to the one or more tasks. The method also includes generating a mark based on the result of 20 comparing the one or more responses with one or more predetermined thresholds. For example, in some subjects, there may not be a single correct answer and the predetermined thresholds can be set according to the subject being taught/examined and/or the level or standard being taught/examined. With reference to FIG 29, when the send button is pressed, the results are 25 transmitted to the storage facility 150, such as the database, including the errors in the responses provided by the user. As described previously, in some forms, the invention is a method of teaching and examining a subject. In preferred embodiments, a lesson for a subject is generated from a store of components related to the subject. The 30 lesson comprises one or more tasks each comprising a plurality of the components related to the subject. A user is presented with one or more of the tasks to complete. A menu with one or more selectable icons is provided. Selection of one of 45 the selectable icons, for example, the send button, submits one or more responses of the user to the one or more of the tasks. One or more text strings are sent to a storage facility. The one or more text strings comprise details of the one or more submitted responses which enable the one or more submitted 5 responses to be recreated graphically. For example, the text strings can comprise a reference and a location for graphics in the response. The one or more text strings can be, for example, alpha numeric strings and/or alphabetic strings. In some embodiments, a single text string is transmitted for each task. In some embodiments, the method further comprises recording one or 10 more user inputs, for example, mouse clicks, touchscreen inputs and/or computer keystrokes, of the user while the user is completing the one or more of the tasks. For example, a time of a user input, a location of a mouse click or touchscreen press, a mouse button clicked and/or a key pressed can be recorded. The one or more text strings can comprise details of the one or more 15 recorded user inputs. Hence, the details of the one or more recorded user inputs can be transmitted to the storage facility in the one or more text strings. In preferred embodiments, each user input is sequentially recorded and stored into the one or more text strings. At the end of each question, task or set of tasks, the one or more text strings are sent to the storage facility. For 20 example, the one or more text strings can be transmitted upon selection of the one of the selectable icons, e.g. when the user presses the send/mark button. An assessor, such as a teacher, can retrieve the one or more user inputs of a user from the storage facility, for example, to determine how the user went about answering the task. In preferred embodiments, the one or more recorded 25 user inputs are presented to the assessor, for example, along with the recording of the users' answers. In some embodiments, an animation of the user completing the one or more of the tasks is generated using the one or more text strings. The animation can be generated at, for example, the server, a computer of the assessor, a computer of the user or a computer of another user. 30 In some embodiments, the assessor, the user or another user is presented with control buttons, such as selectable navigation icons, to navigate through the animation, for example, by time or by user input event. The control buttons can be presented in a GUI and be similar to the buttons on a CD player 46 or tape recorder. For example, a "Play" icon, a "Pause" icon, a "Fast forward" icon, a "Rewind" icon and a "Stop" icon can be provided. A video animation of the user's answer can be reviewed using the control buttons. For example, pressing a control button, such as play, converts the one or more text strings to 5 an animation of the user answering the task. The animation can be presented in real time, slow motion or fast motion. In such as way, the graphics of a user's answers can be recreated for quality control purposes, review and/or to address any disputes. In some embodiments, functionality is provided for an assessor or another 10 user to edit the animation. For example, at any stage during the playing of the animation, the assessor can pause and edit the user's animation. The assessor may edit the animation by adding further user inputs, such as mouse clicks, touchscreen inputs or key strokes, to the animation. One or more second text strings can be sent to the storage facility. The one or more second text strings 15 comprise details of the edited animation, for example, the further user inputs. The one or more second can be later accessed to retrieve details of the edited animation, for example, by the user to view the assessor's changes. In such as way, an edited user/marker version of an answer is produced. The user, e.g. the student, can then access and view an animation of their 20 original user inputs and/or an animation of the edited user/marker version of the user inputs for comparison to the original. The assessor can therefore leave feedback for the user, by showing, for example, what the user should have done when answering the task. In some embodiments, the method further comprises sending a 25 notification to an assessor when a user completes one of the tasks. The assessor can then provide feedback to the user which the user completes subsequent tasks. In some embodiments, a help button is provided to the user. If the user needs help, they can press the help button to send a request for help to an 30 assessor or another user. The request for help can include a recording of the one or more user inputs of the user thus far. Alternatively, for example, the one or more user inputs of the user thus far can be sent to the storage facility and the request for help can include pointer to one or more user inputs of the user thus 47 far in the storage facility. A comments section can also be provided to the user in which the user can provide details of a problem with which they need help. The details provided in the comments section can be sent with the request for help. 5 Where a request for help is sent to another user, one or more user inputs of the other user can be recorded. The help can also be interactive, and one or more user inputs of the other user and/or the user can be recorded. One or more third text strings can be sent to the storage facility. The one or more third text strings comprise details of the one or more recorded user inputs of the other 10 user and/or the user. The assessor can then access the one or more third text strings or an animation created from the one or more third text strings to review the help that the other user has provided. In one example, a set of questions/tasks/content is downloaded to each user's computer in a class. An assessor account of an assessor associated with 15 the class is linked to each user's account. For example, the assessor can be a teacher of the class and the users can be the students in the class. When a user submits an answer to a question/task, a notification is sent to the assessor's computer or account. For example, it is logged that a student has completed a question and the assessor receives a message "user(s) X has completed 20 question(s) Y. The assessor can review each user's answer animation and amend the animation to provide feedback for the user. For example, feedback can be provided while the student completes the next question/task. The feedback can include a mark or series of marks for the question(s)/task(s). However, the feedback also may not include a mark. 25 A help button is provided to the user while the user is completing the question(s)/task(s). The user's can press the help button to notify the assessor that the user needs help, for example, if the user is having difficulties with a question. Pressing the help button transmits a request for help to the assessor, including the user's answer to the question so far, for example, the video 30 animation of answer so far. The user may also be presented with a comment section, where the user can be more specific regarding the problem they are having. Comments provided by the user in the comment section are transmitted with the request for help to the assessor.
48 In some embodiments, a user can also transmit a help request to a class forum, for example, during a class. Another user in the class can then respond to the help request. In some embodiments, a user can also transmit a request for help to a user outside the class, for example, the user can requests help after 5 school from a peer. In these embodiments, the assessor can be notified, for example, that user A is now helping user B. All user inputs of user A and user B can be recorded for later review by the assessor or either user. In some embodiments, the animation and/or the tasks described above are provided aurally, for example, to enable visually impaired users to complete 10 the tasks and/or to provide feedback to visually impaired users. A skilled addressee will appreciate that a classroom may be a virtual class of students or a physical class of students. Therefore, the above methods can be performed, for example, as part of an out of school online tutoring organisation with teachers and students all over the world forming the class.Embodiments of 15 the method include presenting the user with a modified lesson comprising one or more tasks related to the subject previously answered incorrectly by the user. The modified lesson can be presented immediately after the initial task or set of tasks have been marked or at a later time, for example when the user next logs on to the system. Hence, embodiments of the invention customize the lessons 20 for each user according to one or more previous performances by the respective user. Once the test is completed, the results, including a screen shot of each question and the response, is sent to the storage facility 150, such as a database located at an external server. A teacher, tutor or mentor can access the database to view the compiled results and monitor the users' progress. 25 For example, the modified lesson can include the same task or tasks previously answered incorrectly by the user. In other embodiments, the modified lesson includes the same type of task previously answered incorrectly by the user. For example, if the subject is mathematics and the user has previously answered a particular type of equation incorrectly, the same type of equation can 30 be presented in the modified lesson rather than exactly the same equation. According to some embodiments, the method includes presenting the user with a lesson comprising one or more tasks related to the next level of learning for the subject only after the user has answered a threshold number of tasks in 49 the modified lesson correctly. For example, the user may be required to answer 85% of the tasks in the modified lesson correctly to be able to progress to the next level of learning for that subject. In other embodiments, all tasks in the modified lesson must be answered correctly before the user progresses to the 5 next level of learning for the subject. In some embodiments, a task must be completed 100% correctly otherwise the user will receive an incorrect mark for that task. In other embodiments, a threshold can be set for the response to the task at, or beyond which the response will be considered answered correctly. For example, a task may 10 comprise five component responses. In some embodiments, all five components must be correct for the task to be considered answered correctly. In other embodiments, if, for example, four out of the five components are answered correctly, the task will be considered answered correctly and the task or the same type of task will not be re-presented in a modified lesson. 15 To assist users with their education and help them understand previous errors, according to some embodiments, the method includes directing the user to learning resources related to the one or more tasks answered incorrectly by the user. For example, the method may include presenting the user with one or more selectable icons, the activation of one of said icons causing a webpage to 20 be displayed on the display 110 comprising learning resources related to the one or more tasks answered incorrectly by the user. In some embodiments, the user is directed to learning resources after one or more tasks have been answered incorrectly by the user a threshold number of times. For example, the user can be directed to learning resources after the user has responded incorrectly three 25 times to the same task or the same type of task. In some embodiments, the method includes alerting an educator, such as a teacher, tutor or mentor to the one or more tasks answered incorrectly by the user after the one or more tasks have been answered incorrectly a threshold number of times. For example, the alert can be by email, SMS or other means. 30 Whilst the system, methods and apparatus described above in relation to FIG 29 can be used for teaching and examining subjects other than music, it will be appreciated that such systems, methods and apparatus can also be used for teaching music.
50 It will be appreciated that the processor 130 activates functionality stored in the memory 140 in the form of computer readable program code components 145, at least some of which are selected to execute the methods of examining in the field of music and the methods of teaching and examining other subjects as 5 described herein. Therefore, with reference to FIG 1, another aspect of the present invention is a system 100 and an apparatus 105 for teaching and examining a subject, wherein the apparatus 105 comprises computer readable program code components 145 configured to cause generation of a lesson for the subject from 10 a store of components related to the subject. The store can be storage facility 150 or memory 140. Computer readable program code components 145 present a user via display 110 with the lesson comprising one or more tasks related to the subject. It will be appreciated that apparatus 105 can include a loudspeaker (not shown) for outputting sound where audible sounds form part of the lesson 15 presented to the user. Computer readable program code components 145 provide a menu to the user via display 110 with one or more selectable icons. Selection of one of said icons activates functionality to enable the user to submit one or more responses to the one or more tasks. Computer readable program code components 145 cause generation of a mark based on the result of 20 comparing the one or more responses with one or more predetermined thresholds. It will also be appreciated that features of the system, methods and apparatus described herein for teaching and examining in the field of music, which include recording the music performed by the user, and the system, 25 methods and apparatus for teaching and examining other subjects, can be combined with earlier embodiments described herein. For example, embodiments which include requiring the user to form an element of musical notation can also include requesting the user to perform one or more notes, which are recorded and assessed. In another example, embodiments include 30 re-presenting the user with one or more tasks requiring the user to form an element of musical notation which can include tasks previously presented to the user, but which were answered incorrectly by the user.
51 It should be appreciated that an important aspect of the present invention is that the predetermined thresholds used to determine whether the users' answers are correct are adjustable according to, for example, the level or standard being examined and/or the requirements of a particular examination 5 authority. For example, greater tolerance or deviation from an exactly correct value can be set via the predetermined thresholds for lower level examinations. For example, for lower level examinations, the predetermined threshold can be set such that an angle in a user's answer must be within 30 degrees of the correct angle. For higher level examinations, the predetermined threshold can 10 be set such that an angle in a user's answer must be within 10 degrees of the correct angle. Similar variations in the predetermined thresholds can be employed for other subjects being taught and examined. The aforementioned exemplary program code components have been provided for enablement purposes and it will be appreciated that the functionality 15 of the present invention can be achieved using alternative program code components written in alternative languages. In one embodiment, the program code components are executed in Macromedia Director, but alternative applications can be employed. It will further be appreciated that the lessons and examinations can comprise a wide range of questions, only a sample of which 20 have been described herein. Hence, the electronic system, methods and apparatus for teaching and examining music and other subjects of the present invention thus provide solutions to the aforementioned problems of the prior art. The embodiments of the present invention provide a series of lessons and examinations to educate 25 the user in all aspects of music theory and other subjects and assess their competency in the skills they have acquired. Regarding music theory, the user can be taught how, and assessed on, the correct formation and positioning of musical notation using one or more menus comprising icons the selection of which enables the user to form an element of musical notation, such as a stem, 30 head, curve etc. Alternatively, where other skills are being taught and assessed, the user is provided with one or more menus with the notes and other musical symbols already formed for insertion on a preformed staff. According to some embodiments, the user can have as many attempts as 52 they desire at the exercises to reinforce the principals without the need to erase their previous answer as would be required with some of the prior art. Instant feedback is provided to the user in the form of hints, tips and marks on their answers in sharp contrast to the prior art where there is often a significant delay 5 in providing feedback. The animation capabilities of the present invention enhance the learning experience and the user is also able to hear the notes and tunes forming at least part of the answer. Users can also be recorded, for example, in terms of their performance of a piece of music or pronunciation of a word, clause or sentence in their native language or a foreign language. 10 Marking of the questions is immediate and automatic upon the user requesting their answer(s) to be marked, thus avoiding the costs incurred with the prior art of having each answer paper marked individually and manually. The system of the present invention enables users in one or more locations to be taught and examined and users, tutors and examining authorities can be 15 provided with instant feedback on the users' progress and the grades achieved. Furthermore, automatic tabulation of the results enables comparisons to be easily made between the results. Such comparisons may be, for example, between different results of the same user of between results for the same examination or level of different users. 20 Throughout the specification the aim has been to describe the invention without limiting the invention to any one embodiment or specific collection of features. Persons skilled in the relevant art may realize variations from the specific embodiments that will nonetheless fall within the scope of the invention. In this specification, the terms "comprise", "comprises", "comprising" or 25 similar terms are intended to mean a non-exclusive inclusion, such that an apparatus that comprises a list of elements does not include those elements solely, but may well include other elements not listed. The reference to any prior art in this specification is not, and should not be taken as, an acknowledgement or any form of suggestion that the prior art forms 30 part of the common general knowledge.

Claims (16)

1. A method of teaching and examining a subject, the method comprising: generating a lesson for the subject from a store of components 5 related to the subject, the lesson comprising one or more tasks each comprising a plurality of the components related to the subject; presenting the user with one or more of the tasks; providing a menu with one or more selectable icons, selection of one of the selectable icons submitting one or more responses of the user to one 10 or more of the tasks; and sending one or more text strings to a storage facility, the one or more text strings comprising details of the one or more submitted responses which enable the one or more submitted responses to be recreated graphically. 15
2. The method of claim 1, further comprising recording one or more user inputs of the user while the user is completing the one or more of the tasks.
3. The method of claim 2, wherein the one or more text strings comprise 20 details of the one or more recorded user inputs.
4. The method of claim 2 or 3, wherein each user input is sequentially recorded and stored into the one or more text strings. 25
5. The method of any one of claims 2 to 4, wherein an assessor can retrieve the one or more user inputs of the user from the storage facility.
6. The method of any one of claims 2 to 5, comprising generating, using the one or more text strings, an animation of the user completing the one or 30 more of the tasks.
7. The method of claim 6, comprising presenting the animation to the user or an assessor in real time, slow motion or fast motion. 54
8. The method of claim 6 or 7, comprising providing the user or an assessor with control buttons to navigate through the animation. 5
9. The method of any one of claims 6 to 8, comprising providing functionality for an assessor or another user to edit the animation.
10. The method of claim 9, comprising sending one or more second text strings to the storage facility, the one or more second text strings comprising 10 details of the edited animation.
11. The method of any one of claims 2 to 10, comprising sending a notification to an assessor when a user completes one of the tasks. 15
12. The method of any one of claims 2 to 11, comprising providing a help button to the user, wherein pressing of the help button sends a request for help to an assessor and/or another user.
13. The method of claim 12, wherein the request for help includes a recording 20 of the one or more user inputs of the user thus far or a pointer thereto.
14. The method of claim 12 or 13, comprising providing a comments section to the user in which the user can provide details of a problem with which they need help, the details in the comments section being sent with the request 25 for help.
15. The method of any one of claims 12 to 14, wherein a request for help is sent to another user, further comprising: recording of one or more user inputs of the other user; and 30 sending one or more third text strings to the storage facility, the one or more third text strings comprising details of the one or more recorded user inputs of the other user.
16. An apparatus for teaching and examining a subject, the apparatus 35 comprising computer readable program code components configured to cause: 55 generating a lesson for the subject from a store of components related to the subject, the lesson comprising one or more tasks each comprising a plurality of the components related to the subject; presenting the user with one or more of the tasks; 5 providing a menu with one or more selectable icons, selection of one of the selectable icons submitting one or more responses of the user to the one or more of the tasks; and sending one or more text strings to a storage facility, the one or more text strings comprising details of the one or more submitted responses 10 which enable the one or more submitted responses to be recreated graphically.
AU2014202852A 2009-08-31 2014-05-26 Electronic system, methods and apparatus for teaching and examining music and other subjects Ceased AU2014202852B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2014202852A AU2014202852B2 (en) 2009-08-31 2014-05-26 Electronic system, methods and apparatus for teaching and examining music and other subjects

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2009212869 2009-08-31
AU2012202820A AU2012202820B2 (en) 2009-08-31 2012-05-15 Electronic system, methods and apparatus for teaching and examining music and other subjects
AU2014202852A AU2014202852B2 (en) 2009-08-31 2014-05-26 Electronic system, methods and apparatus for teaching and examining music and other subjects

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
AU2012202820A Division AU2012202820B2 (en) 2009-08-31 2012-05-15 Electronic system, methods and apparatus for teaching and examining music and other subjects

Publications (2)

Publication Number Publication Date
AU2014202852A1 AU2014202852A1 (en) 2014-06-19
AU2014202852B2 true AU2014202852B2 (en) 2015-09-03

Family

ID=51074562

Family Applications (1)

Application Number Title Priority Date Filing Date
AU2014202852A Ceased AU2014202852B2 (en) 2009-08-31 2014-05-26 Electronic system, methods and apparatus for teaching and examining music and other subjects

Country Status (1)

Country Link
AU (1) AU2014202852B2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6905341B1 (en) * 2000-10-31 2005-06-14 Ncr Corporation Active learning framework

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6905341B1 (en) * 2000-10-31 2005-06-14 Ncr Corporation Active learning framework

Also Published As

Publication number Publication date
AU2014202852A1 (en) 2014-06-19

Similar Documents

Publication Publication Date Title
AU2009212869B2 (en) Electronic system, methods and apparatus for teaching and examining music and other subjects
US20100095828A1 (en) Electronic System, Methods and Apparatus for Teaching and Examining Music
Prouty Orality, literacy, and mediating musical experience: Rethinking oral tradition in the learning of jazz improvisation
Sidoti The effects of expressive and nonexpressive conducting on the performance accuracy of selected expression markings by individual high school instrumentalists
US20210005097A1 (en) Language-adapted user interfaces
Spieker et al. Perspectives for music education in schools after COVID-19: The potential of digital media
Palmer Learning basic music theory through improvisation: Implications for including improvisation in the university curriculum
Myers et al. Finding sound and score: A music library skills module for undergraduate students
AU2014202852B2 (en) Electronic system, methods and apparatus for teaching and examining music and other subjects
Montemayor et al. Effects of score study and conducting gesture on collegiate musicians’ ability to detect errors in a choral score
AU2012202820B2 (en) Electronic system, methods and apparatus for teaching and examining music and other subjects
Tucker A case study of the integration of SmartMusic® into three middle school band classrooms found in Upstate South Carolina
Liu Assessing Chinese in the USA: An overview of major tests
DiCienzo A comparison of the middle C and the mixed intervallic reading approaches on music reading among beginner piano students
Rumpf A systematic review of music teacher education research within the United States: 1982-2010
Chew Assessing the use of auditory graphs for middle school mathematics
Benson The effects of instructional media on group piano student performance achievement and attitude
Šulentić Begić et al. The use of an interactive whiteboard in solfeggio teaching
Chao An examination of music software and music videos for college beginning class piano students
Lin Investigation of the effect of teacher-developed computer-based music instruction on elementary education majors
Fleshner There’s an App for That: Music Theory on the iPad, iPhone, and iPod
Weary Skills Sequencing in Music Literacy Instruction: A National Survey of the Pedagogy Practices of Secondary Choral Directors
Yoshida et al. Auditory-Centered Vocal Feedback System Using Solmization for Training Absolute Pitch Without GUI
Choi The development and implementation of interactive multimedia instrumental discrimination skills training courseware for beginning clarinet students
Cofer The effects of conducting gesture instruction on seventh-grade band students' recognition of and performance response to musical conducting emblems

Legal Events

Date Code Title Description
FGA Letters patent sealed or granted (standard patent)
MK14 Patent ceased section 143(a) (annual fees not paid) or expired