A Tk-based program that can help you prepare for your music final with randomly-generated listening quizzes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 3.3 KiB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. __MusicQuizzer__ (_musicquizzer_) is a Python program that can help you prepare
  2. for any test that involves listening to excerpts of music pieces and answering
  3. multiple choice questions about them.
  4. # Installation
  5. ## Mac OS X
  6. Get [MacPorts](http://www.macports.org/install.php), if you don't have it.
  7. From Terminal (`/Applications/Utiliies/Terminal`), do:
  8. sudo port install python26
  9. sudo port install py26-game
  10. Next,
  11. [download MusicQuizzer](https://github.com/earwig/music-quizzer/tarball/v0.1.1)
  12. and uncompress it. Move the folder wherever you want (keep its contents
  13. intact!) and double-click on `mac_osx.sh` to use the quizzer.
  14. ## Windows
  15. MusicQuizzer is written in Python, a language that does not come with Windows
  16. by default. Download the latest version of Python 2.7.x
  17. [here](http://python.org/download/) (_not_ Python 3). Use the default settings
  18. during installation.
  19. Next, download and install pygame from
  20. [here](http://pygame.org/ftp/pygame-1.9.2a0.win32-py2.7.msi).
  21. Finally,
  22. [download MusicQuizzer](https://github.com/earwig/music-quizzer/zipball/v0.1.1)
  23. and extract it wherever you want. To use, simply double-click on the
  24. `musicquizzer` file inside (do not move or delete any of the other files).
  25. ## Linux (with apt-get)
  26. You should be on at least Python 2.7 (check with `python --version`), assuming
  27. you keep your operating system up-to-date. Install the latest versions of
  28. pygame and tk with:
  29. sudo apt-get install python-pygame python-tk
  30. Then,
  31. [download MusicQuizzer](https://github.com/earwig/music-quizzer/tarball/v0.1.1)
  32. and execute the program with `python musicquizzer.py` from your terminal.
  33. # Usage
  34. The first time you start the program, it will download all of the 25 necessary
  35. (default) music pieces to the `pieces` folder. This is a ~70 MB download.
  36. MusicQuizzer will present you with an answer sheet, containing four or five
  37. multiple choice questions per piece (which are, of course, randomized every
  38. time you begin a new quiz). Press `Start Quiz` to begin listening to the
  39. excerpts. Each one is played for 30 seconds. You are then given five seconds of
  40. rest, followed by the next piece. After all excerpts have been played, you
  41. _cannot_ re-listen to them. Press `Submit Answers` to "hand in" your quiz and
  42. view the results.
  43. # Modifying
  44. The music pieces are located in `pieces/`, in `.mp3` format. The file
  45. `config.cfg` contains the information for each excerpt, like so:
  46. [10.mp3]
  47. title: Der Erlkönig
  48. composer: Franz Schubert
  49. era: Romantic
  50. genre: Lied
  51. form: Through-composed
  52. url: http://stuy.enschool.org/music/10_The_Erlking_Erlkonig.mp3
  53. ...and so-on. The section's header is the name of the file in `pieces/` (or
  54. whatever directory you have chosen), and the fields hold the information that
  55. MusicQuizzer will use to generate questions. The exception is the `url` field,
  56. which is the _direct_ URL that MusicQuizzer will use to download the piece if
  57. it does not have a file with that name.
  58. Feel free to rename any of the pieces, delete them, add totally new ones, or
  59. change their information. This program is designed to be customizable.
  60. In the config file, you can also change the length of time each excerpt is
  61. played for, the time between each excerpt, and other things. If an attribute is
  62. not defined for a certain piece, the quizzer will not ask the question in that
  63. excerpt, but the question will remain for other pieces.