Music Theory

Question types ::: qtype_musictheory
Maintained by Eric BrissonEric Brisson
Question type supporting several exercises for music theory instruction.
Latest release:
496 sites
98 downloads
43 fans
Current versions available: 3
This question type is designed for music theory instruction. It currently supports the following exercises:

  1. Note writing: The respondent is asked to enter a given note on the staff.
  2. Note identification: The response is asked to identify a give note.
  3. Keyboard Input: The respondent is asked to select a given key on the piano keyboard.
  4. Key signature writing: The respondent is asked to enter a given key signature.
  5. Key signature identification: The respondent is asked to identify a given major or minor key signature.
  6. Interval writing: The respondent is asked to enter a given interval above or below a given note.
  7. Interval identification: The respondent is asked to identify the quality and size of a given interval.
  8. Scale writing: The respondent is asked to enter a given scale.
  9. Scale identification: The respondent is asked to identify a given scale.
  10. Chord quality writing: Given a chord root and quality (e.g. 'G major', 'D minor'), the respondent is asked to enter corresponding chord on the staff.
  11. Chord quality identification: The respondent is asked to identify the quality of a given chord (e.g. 'major', 'minor', etc.).
  12. Harmonic function writing: The respondent is asked to enter a given harmonic function in a given key (e.g. 'IV in D minor').
  13. Harmonic function identification: The respondent is asked to identify the harmonic function of a given chord in a given key.
When Javascript is enabled, answers are entered and displayed in an HTML5 graphical user interface, using two separate Javascript components (Music Theory GUI and Keyboard Input) packaged as YUI modules. All the exercises above are fully functional without Javascript, except for 1) Note writing, 2) Note identification and 3) Keyboard Input.

Each of the exercises above (except for #3, Keyboard Input) can also be configured so that a specific question is randomly generated upon starting an activity. The randomization can be based on a set of parameters configured when the question is created or edited. For example, it is possible to configure an interval writing question so that it asks for a perfect fifth above a randomly chosen given note. This randomization process, configured during question creation, alleviates the need to create very large question banks, and can be particularly useful for interval and chord/harmonic function questions, given that the number of possible questions for these exercises is very large.

I made a choice to create a framework where the correctness of a given question is automatically computed, without having to enter individual answers during question creation. A framework for adding various grading strategies for each exercise is also in place, and is currently used for the scale writing exercise (currently allowing either an "all-or-nothing" grading strategy, or a "partial grade" approach where each correct note is given partial credit).

This plugin was developed with the hope of creating a music question type that would support a wide range of music theory exercises, using a single graphical user interface that is flexible enough to support such exercises. It is hoped that it will facilitate further development and Moodle server maintenance.

Special thanks to Jay Huber for his very significant contributions to the existing standalone Moodle music question types (Music Key Signature, Music Interval and Music Scale), and for inspiring me to develop this new question type.

Many thanks to colleagues in Winona State University's TLT and IT departments for their support of my Moodle development efforts.

Screenshots

Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3

Contributors

Eric Brisson
Eric Brisson (Lead maintainer): Question type author
Please login to view contributors details and/or to contact them

Comments RSS

Comments

  • David Mudrák
    Sat, 2 Aug 2014, 1:41 AM
    I'm sorry, I'm on my annual leave for the next two weeks. I'll get to approving submitted plugins as soon as I'm back. Thanks for understanding.
  • David Mudrák
    Fri, 22 Aug 2014, 4:32 PM
    Thanks Eric for sharing this plugin with the community. It looks really good and well aimed question type.

    Please note the non-English strings are not supposed to ship with the plugins any more. Instead, you may wish to import them into AMOS at lang.moodle.org or just email them to the relevant language pack maintainers.

    You are cleared to land now, welcome to the Plugins directory.
  • Jay Huber
    Tue, 26 Aug 2014, 11:35 AM
    Dr. Brissom - Congratulations on completing this new music plugin. What a wonderful investment you have made with the Moodle community.

    It is work like this that makes Moodle stand out from other Learning Management Systems.

    Moodle Community - If you download and use this plugin, paste a thank you here. He has hundreds of hours invested into writing/coding and collaborating with others on this plugin!

    Cheers! I hold you in high regard!
    Jay Huber
  • Germán and Temudgin
    Thu, 28 Aug 2014, 11:37 PM
    Hi,
    I hope you don't mind my writing a Moodle Docs page for this plugin at https://docs.moodle.org/27/en/Music_theory_question_type . Please feel free do add or amend it as necessary.

    I also added an entry in the page https://docs.moodle.org/27/en/Third-party_question_types .

    Congratulations on this nice plugin. With this plugin, Moodle now has 4 additional plugins for Music (https://docs.moodle.org/27/en/Category:Music ) ; and a total of 48 additional question types for quizzes smile I do not know of any other LMS with so many question types.
  • Eric Brisson
    Fri, 29 Aug 2014, 12:30 AM
    German, many thanks for your work on the Docs pages - I appreciate your help very much!
    Eric
  • Andreas Schenkel
    Sat, 18 Oct 2014, 7:26 PM
    When I try to edit the languagepack there is an error ....
    problem with casesesitive letters????

    Debug info: Duplicate entry 'de-83-Anm' for key 'mdl_toolcust_lancomstr_uix'
    INSERT INTO mdl_tool_customlang (lang,componentid,stringid,original,master,timemodified,outdated,local,timecustomized) VALUES(?,?,?,?,?,?,?,?,?)
    [array (
    0 => 'de',
    1 => '83',
    2 => 'Anm',
    3 => 'A minor',
    4 => 'A minor',
    5 => 1413630951,
    6 => 0,
    7 => NULL,
    8 => NULL,
    )]
    Error code: dmlwriteexception
  • Eric Brisson
    Tue, 21 Oct 2014, 9:50 PM
    Hi Andreas,

    The source of the problem is that I have used case sensitive string keys in the plugin's language file (e.g. "AnM" and "Anm", which are two distinct keys in the plugin but are detected as being the same key in AMOS). I didn't anticipate this potential issue during development.

    The way to fix it would be to create a new version of the plugin with distinct string keys. I will put this on my list of development tasks and will plan to let you know once I have applied the fix. I will do the best that I can to get to it soon but it could take me some time given my current teaching commitments.

    Thank you for your contribution to this project - I appreciate it very much!

    Eric
  • Andreas Schenkel
    Mon, 24 Nov 2014, 2:59 AM

    A workaround is to add in every line in the language-file an letter "a" for the major-Strings

    $string['CnMa'] = 'C major';

    then minor "cnm" and major "cnma" are different strings
  • Andreas Schenkel
    Mon, 2 Mar 2015, 4:42 PM
    Different workarround. Make the database field stringid casesensitive ... (but maybe there will accoure some other problems in moodle, or moodle will not work anymore)
  • Just wondering . . .
    Wed, 6 May 2015, 6:47 AM
    I've been asked to install this.
    Will it work with Moodle 2.8??

    -Derek
  • Andreas Schenkel
    Wed, 6 May 2015, 10:00 PM
    I have installed it in 2.8 and it works. But there are problems with the casesensitive! A workaround is to add in every line in the language-file an letter "a" for the major-Strings

    $string['CnMa'] = 'C major';

    Or you make the database field stringid casesensitive ...

    I changed the languagefile , by adding an a in every Major-text like $string['CnMa'] = 'C major';

    I can send you this version, that is based on Version 2014071400 --- send me a with your eMail-Adress PM
  • Kees Koopman
    Sat, 6 June 2015, 6:10 PM
    I want to use this plug-in with Moodle 2.9+. Is that a problem?
  • Ben talking on the phone beside a monitor
    Wed, 29 July 2015, 1:59 AM
    Version 1.3.1 released July 2015 says it works with 2.9
  • Eric Brisson
    Wed, 29 July 2015, 2:42 AM
    I just released version 1.3.1 which is compatible with Moodle 2.7, 2.8 and 2.9.

    This version is now completely compatible with AMOS for purposes of translation (all case-sensitive language string keys have been replaced). It includes scale identification as a new exercise, and has a number of additional enhancements as well as bug fixes. The list of changes is the following:

    https://github.com/brissone/moodle-qtype_musictheory/issues?q=is%3Aissue+is%3Aclosed

    Thank you all for bug reports and suggestions - I appreciate it very much!

    Best,
    Eric
Please login to post comments