GNU Solfege Changelog

What's new in GNU Solfege 3.22.2

Oct 7, 2013
  • Updated Esperanto, Portugese and Turkish translations to the users manual
  • Updated Spannish and Turkish messages
  • distribute solfege/tests/lesson-files/*
  • help/C/scales/modes.html are never translated. So we must link to the C-locale file in every translation.
  • gettext tweaks to make the test suite work both when run as "test.py" and "test.py test_lessonfile". There is still something wrong because we have to disable the test to run debuild
  • distribute solfege/tests/lib/* and solfege/test/include/*

New in GNU Solfege 3.23.0 Unstable (Oct 4, 2013)

  • Ported to Gtk+ 3.4 and pygobject 3.2.2
  • We now require Python 2.7

New in GNU Solfege 3.22.1 (Sep 16, 2013)

  • Adjust some of the short interval names used when selecting intervals to practise: u->P1 4->P4, 5->P5, tt->TT, p11->P11, p12->P12, tt8->d12. Added long name for intervals from Eleventh to Double Octave.
  • Fix the bug where we could not select the Default profile
  • Updated Esperanto, Spannish, Polish, Turkish, Vietnamese, Norwegian bokmål, Brazilian Portugese and Vietnamese translations.

New in GNU Solfege 3.22.0 (May 28, 2013)

  • Documentation:
  • the intervals lesson file variable was documented wrongly.
  • 140% line-height in the generated user manual
  • the elembuilder module changed how it stored its statistics. So all elembuilder statistics will be lost. We will save a backup of the statistics database the first time 3.21.2 is run.
  • gu.FlashBar: display extra strings (set by kwargs) in the same font as the rest of the string.
  • Put a deprecation notice in the chord modules gui.
  • Improvements:
  • interval exercises: added larger intervals, up to double octave
  • elembuilder: make the answer buttons insensitive when the user is not supposed to click on them.
  • added the header.statistics_matrices lesson file variable
  • mpd: try to avoid crashing noteheads when displaying two noteheads at the same step, but with different accidentals.
  • the statistics page for each exercise now have a button that let us delete the statistics for the exercise.
  • The --debug option will also show the module name as a tooltip for the link button that starts the exercise.
  • Make the "Guess answer" button be sensitive only when the user have entered an answer.
  • Statistics viewer: added a row to the percentages table showing count and percentage correct for all questions asked in the session, day, week and all-time.
  • The frontpage will show the filename if the app is started with the --debug command line option.
  • idtone exercise: show statistics when the user configure the module himself. And remember the config.
  • We can now place exercise modules written in Python in ~/.solfege/exercises/dirname/modules/
  • New modules:
  • added the toneincontext exercise module
  • added solmisation exercise module. Thanks to Jan Baumgart and Folkwang Universitaet der Kuenste
  • Build fixes:
  • version_info build fix
  • test.py: move some code so that running a subset of tests also will create and remove tmp directory
  • make dist: include the files in exercises/regression-lesson-files/share/
  • build fix to avoid problem with too long list of files
  • add INSTALLDIR/exercises/standard/lesson-files to the include() functions search path
  • Bug fixes:
  • elembuilder: fix the backspace accel
  • fix bug #237
  • rhythmtapping and rhythmtapping2: rest handling bugfix
  • HarmonicProgressionLabel: set_alignment bugfix.
  • compareintervals: fix "Repeat first" and "Repeat last" sensitivity
  • SolfegeApp: don't sync the statistics database until the last exercise is shut down.
  • Lesson file writing:
  • added import and rimport statement
  • remove all support for file formats that depent on lesson_id. Did not remove the lesson_id variable from lesson files since this would reset the statistics.
  • dataparser will parse to a parsetree that we interpret.
  • lesson file modules: tmp hack to let different lesson file modules have different default values to variables.

New in GNU Solfege 3.20.8 / 3.22.0 Unstable (May 24, 2013)

  • Improvements:
  • interval exercises: added larger intervals, up to double octave
  • elembuilder: make the answer buttons insensitive when the user is not supposed to click on them.
  • added the header.statistics_matrices lesson file variable
  • mpd: try to avoid crashing noteheads when displaying two noteheads at the same step, but with different accidentals.
  • the statistics page for each exercise now have a button that let us delete the statistics for the exercise.
  • The --debug option will also show the module name as a tooltip for the link button that starts the exercise.
  • Make the "Guess answer" button be sensitive only when the user have entered an answer.
  • Statistics viewer: added a row to the percentages table showing count and percentage correct for all questions asked in the session, day, week and all-time.
  • The frontpage will show the filename if the app is started with the --debug command line option.
  • idtone exercise: show statistics when the user configure the module himself. And remember the config.
  • We can now place exercise modules written in Python in ~/.solfege/exercises/dirname/modules/
  • New modules:
  • added the toneincontext exercise module
  • added solmisation exercise module. Thanks to Jan Baumgart and Folkwang Universitaet der Kuenste
  • Build fixes:
  • version_info build fix
  • test.py: move some code so that running a subset of tests also will create and remove tmp directory
  • make dist: include the files in exercises/regression-lesson-files/share/
  • build fix to avoid problem with too long list of files
  • add INSTALLDIR/exercises/standard/lesson-files to the include() functions search path
  • Bug fixes
  • elembuilder: fix the backspace accel
  • fix bug #237
  • rhythmtapping and rhythmtapping2: rest handling bugfix
  • HarmonicProgressionLabel: set_alignment bugfix.
  • compareintervals: fix "Repeat first" and "Repeat last" sensitivity
  • SolfegeApp: don't sync the statistics database until the last exercise is shut down.
  • Lesson file writing:
  • added import and rimport statement
  • remove all support for file formats that depent on lesson_id. Did not remove the lesson_id variable from lesson files since this would reset the statistics.
  • dataparser will parse to a parsetree that we interpret.
  • lesson file modules: tmp hack to let different lesson file modules have different default values to variables.
  • documentation: the intervals lesson file variable was documented wrongly.
  • Linux -> GNU/Linux search-and-replace
  • 140% line-height in the generated user manual
  • the elembuilder module changed how it stored its statistics. So all elembuilder statistics will be lost. We will save a backup of the statistics database the first time 3.21.2 is run.
  • gu.FlashBar: display extra strings (set by kwargs) in the same font as the rest of the string.
  • Put a deprecation notice in the chord modules gui.
  • small fixes here and there...

New in GNU Solfege 3.20.8 (Jan 14, 2013)

  • Updated Esperanto, Spanish, French, Brazilian Portuguese and Vietnamese translations.
  • Updated Esperanto, French and Brazilian Portuguese translations to the user's manual.

New in GNU Solfege 3.20.6.1 (Jul 12, 2012)

  • Uploaded a new windows installer since some files where missing in the 3.20.6 build.

New in GNU Solfege 3.20.6 (Jul 3, 2012)

  • Don't mark the "elembuilder" string for translation
  • Updated Czeck and Norwegain (bokmål) translations
  • Added a lesson file with lots of chords in root position.

New in GNU Solfege 3.20.5 RC 2 (Jul 3, 2012)

  • Show percentage correct in the idtone exercise in custom mode.
  • Updated Spanish, Dutch, German, Czeck, Italian and Turkish translations
  • user manual bug fix: document the intervals variable correctly
  • nComboBox will validate the stored data, and handle bad variables.
  • Rework the code that creates intervals for harmonicinterval, melodicinterval and singinterval. Also make the «Lock to key» feature work better and have a gui.

New in GNU Solfege 3.20.4 (Oct 22, 2011)

  • Fix rest handling in the rhythmtapping and rhythmtapping2 modules
  • Bug fix to interval tests: select tones that are within the range of the input widgets. (Closes bug #247)
  • Translation updates
  • Downloading of ALSA modules will download 1.0.24 instead of 1.0.22

New in GNU Solfege 3.20.3 (Sep 28, 2011)

  • Translation updated: French
  • Added Spanish translation of the user manual.
  • User manual spelling fix
  • Added a section in the user manual describing the directory structure of user lesson files.
  • Quote all labels in the generated user manual theory images. This fixes lilypond build problems.
  • solfege.desktop: add GenericName
  • Help->User Exercises (F9) will now only display lesson files in USERDATA/.exercises/user/lesson-files since users with lots of files would have performance problems.
  • Add a notice in "User Exercises" that files in ~/lessonfiles have to be moved into USERDATA/.exercises because future releases might not list the files.

New in GNU Solfege 3.20.2 (Sep 12, 2011)

  • Add a gtk.ScrolledWindow to the dialog showing file locations to make sure the dialog is smaller than the screen.
  • minor build fixes
  • mark a few more strings for translation and grammar fixes (by Ruslan Fedyarov)
  • Alt-Left will go to the previous menu while navigating exercises.
  • bug fix: make strings in lesson files that use format strings translatable.
  • "Accordion (Belgian Do 2)" interval input widget.

New in GNU Solfege 3.20.1 (Aug 10, 2011)

  • automate 0install binary tarball creating and script to update solfege.xml
  • Bugfix to generate_lessonfiles.py: Believe it or not, but we defined minor second as 16/12 and not 16/15.
  • Search bar: decode the strings we get from the gtk.Entry into unicode.
  • Always let the staff lines be as wide as the MusicDisplayer
  • Add "Lock to key" feature. This is an experimental feature. Actual GUI solution may improve later.
  • polish folk songs: Fix singlequoted strings that where written as multiline strings. It works, but it does not mean you should do it. Use triple-quoted strings for multiline strings.
  • simplify and rename to get a more precise name: mpdutils.int_to_notename -> int_to_octave_notename, mpdutils.int_to_user_notename -> int_to_user_octave_notename and simplified mpdutils.notename_to_int
  • String fixes:
  • Python should be capitalized
  • Fix bad english thanks to Ruslan Fedyarov
  • Mark one more string for translation
  • the test target will check for bad spellings for "user manual": "users manual" and "user's manual"
  • Updated Russian, French, Dutch and Polish translations
  • configwindow: handle soundcard.alsa_sequencer.get_connection_list() returning an empty list. I think this fixes bug #234
  • set branch to 3.20 in configure.ac
  • Removing things from the test: target of Makefile.in since tools/make-release.py will do more
  • docbook xml markup bug fixes to help/fr and help/pl
  • autogen.sh: remove old gandiserver exception

New in GNU Solfege 3.20.0 (Jun 15, 2011)

  • Bug fixes:
  • front page editor: escape titles and file names in saved files, so that ', " and are handled correctly.
  • Fix rnc so that it works with the sharp symbol, and the unicode version of both flat and sharp.
  • Make sure the optimisation for very large front page files are used. This is required for very large files, like the Bach choral package.
  • solfege_c_midimodule: don't link libm unless we also link agains librfftw and libffrw
  • Don't rebuild generated music theory images if skipmanual=yes (bug #222)
  • midifilesynth: filter out duplicate %s in the midi player args. Duplicate %s would make the music play twice.
  • Fix the Rhythm music object class so that it uses the percussion instruments selected in the preferences window, as the user manual say it should.
  • RhythmDictation2Lessonfile: fix it so that it uses the percussion instruments selected in the preferences window.
  • don't crash on unicode BOM in lesson files.
  • bug fixes to the instrument selection code in the preferences window.
  • Use different API querying the screen resolution to avoid segfaul on debian lenny.
  • Make elembuilder handle questions where the answer is only one element. Fixed by Andre Maute
  • statistics: handle the deletion of the tests table correctly.
  • win32: fix importing of old format front page files.
  • win32:
  • Look in "My documents/GNU Solfege/exercises" for the users front pages files.
  • The windows installer is done with gtk+-bundle now, and it has SVG support now.
  • New exercise modules: rhythmdictation and rhythmdictation2
  • New middle layer code in the mpd module. The parser now generates objects from the mpd.elems module. This API is also used by the rhythm editor widget.
  • Initial ALSA sequencer support. Added a tool (available on the Help menu) that downloads and compiles ALSA drivers.
  • identifybpm: play rhythms with the normal mpd API instead of gobject.timeout_add
  • singinterval: select violin or bass clef depending on the pitch of the highest and lowest tone.
  • the config window is built with a gtk.TreeView instead of a gtk.Notebok, and interval input accels are now configurable
  • added some missing interval exercise configurations and reorder the sections making them uniform.
  • Change FlashBar to handle labelobjects

New in GNU Solfege 3.19.9 (May 23, 2011)

  • SelectWinBase: adjust_scrolledwin_size: call set_size_request with only integer arguments
  • Minor user manual bugfixes
  • dataparser and lessonfile will return an error message as the string content if we mark an empty string for translation.
  • trainingsetdlg: gettext fix
  • Ear training test printout: translation fixes, small doc update and added randomize button
  • Added the command line option --make-screenshots that will create screenshots for the user manual. Updated screenshots and added screenshots for a few more languages that have a fair amount of the manual translated.
  • Fix the check-for-new-po-files makefile target. bzr st po/*.po suddenly started to report .mo files.

New in GNU Solfege 3.19.8 (May 23, 2011)

  • The autopackage still has a bug, so that /usr/bin/solfege and /usr/lib/solfege are left on the system when you uninstall.
  • Updated Polish, Turkish, Esperanto, Norwegian Brazilian Portugese translations.
  • Let us use solfege.svg as icon everywhere, and not generate the PNG version
  • Define the clef names so we don't have to use quotes in lesson files.
  • ExerciseView: don't crash on empty column
  • fpeditor: fix bug triggered when deleting links to visited pages
  • dataparser: Handle translated format strings
  • mpd:
  • some improvements to the lessonfile.Music objects error reporting. Handle bar-full-exceptions
  • improved rvoice error reporting
  • Fix Rvoice.get_err_context: handle InvalidNotenameException
  • Simplify Duration.new_from_string
  • solfege/mpd: lots of fixes of minor things reported by pylint
  • move rhythmwidget to mpd, where it belongs
  • fix crashing noteheads bug
  • fix problem with noteheads crashing with accidentals when some noteheads are shifted to the left
  • two lesson files from Piotr A. Komorowski:
  • Dominant 7 in inversions
  • Polish folk songs

New in GNU Solfege 3.19.7 (May 23, 2011)

  • show_exercise_theory: update to correct display_docfile api
  • win32: create a relocatable gdk-pixbuf.loaders file. This fixes bug #226.
  • Add "Repeat first" and "Repeat last" buttons to compare intervals. (bug #225)
  • abstract.Gui.on_start_practise bugfix: crash on exercises that does not have a FlashBar.
  • rhythm.py: fix incompatibility with the new mpd code causing exception.
  • rhythmdictation2.py: Fix a bug in the Give Up button causing Repeat to throw an exception.
  • Remove old unused theme graphics
  • Makefile fixes. Don't generate PNG graphics from SVG files since we can use the SVG files directly.
  • RhythmWidget: Don't move cursor to the right if we try to add a note that is too long for the time available in the current bar.

New in GNU Solfege 3.19.6 (May 23, 2011)

  • RhythmWidget
  • remove on_delete(), we only need delete()
  • redraw fix so that the cursor is updated when it should be
  • backspace() should emit 'cursor-moved'
  • Fix rnc so that it works with the sharp symbol, and the unicode version of both flat and sharp.
  • Change FlashBar to handle labelobjects
  • help/C: fix docbook error
  • Mention time signatures in the lessonfile docs for countin
  • Added more lesson files for rhythmdictation2
  • Bugfix to ExerciseView._display_data so that we don't use SizeGroups when we have many files. This because of performance problems.
  • solfege_c_midimodule: don't link libm unless we also link agains librfftw and libffrw

New in GNU Solfege 3.19.5 (Apr 7, 2011)

  • added Voice.get_time_pitch_list
  • Misc minor fixes that will simplify porting to Gtk+ 3.0 and pygobject
  • Don't rebuild generated music theory images if skipmanual=yes (bug #222)
  • KeySignatureEngraver: removed two unused variables
  • configwindow: play a short rhythm when selecting percussion instruments.
  • Made a few string that used unicode characters unicode strings, u"", so that gettext get the translation done.
  • label fix: use the word "file" and not "tree" since we don't refer to the font page files as learning trees any more.
  • Simplified some of the tests, avoiding lambdas when possible
  • midifilesynth: filter out duplicate %s in the midi player args.
  • Remove unused ExecutableFormatStringException
  • make Lexer.to_string handle the \partial command
  • Add test to test Lexer.to_string with \partial
  • bugfix to Voice.try_set_elem: fix_ties should handle corner cases
  • rhythmdictation: handle partial bars
  • The module test should use fill_with_skips()

New in GNU Solfege 3.19.4 (Mar 2, 2011)

  • win32 build fix: don't run generate_theory_ly.py
  • added generic idbyname help file
  • New C-locale screenshots of the preferences window
  • MIDI instrument selection bugfixes
  • rhytmdictation: add count-in
  • alsa_sequencer: implement the stop method
  • rhythmwidget: add more keyboard accels and autoscroll to that the cursor always is visible + tie bug fix
  • identifybpm: play rhythms with the normal mpd API instead of gobject.timeout_add
  • mpd
  • bug fixes to the new mpd code
  • visual improvements to tuplets + handle tuplet with a single note.
  • don't crash on unicode BOM in lesson files.
  • select to use the ALSA sequencer when choosing which sequencer to use

New in GNU Solfege 3.19.2 (Mar 2, 2011)

  • added pickup bars
  • handle missing pyalsa modules, alsaseq.SequencerError exceptions at startup and sqlite3.ProgrammingError exceptions at shutdown.
  • Add 3 missing "second to octave" exercises: compare intervals, both melodic and harmonic, and sing-intervals. Small reorder so some sections, so all interval exercises present the lessons in the same order.
  • sing-intervals: the "Second to octave" exercise had a bug only asking for ascending intervals up to octave, not tenth.
  • singinterval: select violin or bass clef depending on the pitch of the highest and lowest tone.
  • rhythmdictation: better error message if the music object is not MpdParsable and no rhythm variable is set, or if the rhythm variable is not MpdParsable
  • config window: update the alsa connections menu each time it is clicked, change itto use a gtk.TreeView, make interval input accels configurable.
  • statistics: handle all keys as strings

New in GNU Solfege 3.19.1 (Mar 2, 2011)

  • Lots of bug fixes
  • More work on the new mpd code
  • More work on and documentation of the rhythmdictation and rhythmdictation2 modules.

New in GNU Solfege 3.18.7 (Mar 2, 2011)

  • Updated Dutch and Italian translations
  • idbyname: fix it so that tests work when expert mode is selected.
  • Upgrade debugtree.txt to the latest file format.
  • lessonfile.py: set exercise_dir in a portable way. Fixes bug on ms windows.
  • ExerciseView: Don't use gtk.SizeGroup when we display many exercises since there are performance issues with it.

New in GNU Solfege 3.18.6 (Oct 28, 2010)

  • win32: strftime did not accept unicode strings causing a traceback when the statistics was shown.
  • validate_stored_statistics: don't try to delete from the 'tests' table, since it should be removed by now
  • Show dialog explaining things if the database is locked.
  • frontpage: Escape backslash and apostrophe used in titles.
  • Make elembuilder handle questions where the answer is only one element. Fixed

New in GNU Solfege 3.18.5 (Oct 28, 2010)

  • Use different api to get the screen width and height. This to avoid segfault on debian lenny.
  • Make the install target skip compiling the .py files if nopycompile=YES
  • Change to use htmldoc for generating the PDF version of the user manual. We still have encoding troubles for some languages, but doing it manually with openoffice is too much work.
  • Workaround for the bug where 'None' is stored as the key in singinterval exercises.
  • Updates to the russian translation of the user manual

New in GNU Solfege 3.18.4 (Oct 28, 2010)

  • Should work with swig 2.0 now
  • Fix bug in the preferences window code that let us select accels for the idtone exercises.
  • Updated Danish, Russian, Vietnamese and Chinese translations

New in GNU Solfege 3.18.3 (Oct 28, 2010)

  • Fix import error in the prefernces window.
  • Updated Italian and Vietnamese translations

New in GNU Solfege 3.18.1 (Oct 28, 2010)

  • Updated Esperanto, Polish and Italian translation.
  • Don't import tuner.py when running solfege with the --debug option.
  • Windows sound driver: Fix winmidi.reset so that it will reset the correct dev num. Thanks to Krzysztof Foltman for telling me how to fix this. This fix let us use external midi synths on MS Windows.
  • Give the synth a little time to process program changes by calling an extra note_off. The default is 100ms, but this is configurable from the users solfegerc file.

New in GNU Solfege 3.18.0 (Oct 28, 2010)

  • Profile manager
  • Preferences window: Add gui to delete statistics.
  • Resize main window when selecting exercises to use the scrollbars less.
  • The statistics page of exercises will show the 10 latest test results.
  • Front page editor: option to search for strings in lesson file titles when selecting lesson files.
  • Export Exercises to Audio Files: add checkbutton that names the generated audio files after the answer of the question.
  • Add missing "Repeat Arpeggio" button to sing-the-fifth
  • Updated Esperanto, Brazilian Portugese, Turkish and Persian translation.
  • Spelling fixes by Ruslan Fedyarov and dougkerns
  • Works with Swig 2.0
  • Bug fix to the statistics table, and documented the statistics tables in the user manual.
  • Lots of minor bug fixes and improvements to the code.

New in GNU Solfege 3.17.0 (Oct 28, 2010)

  • Resize main window when selecting exercises to use the scrollbars less.
  • The statistics page of exercises will show the 10 latest test results.
  • Front page editor: option to search for strings in lesson file titles when selecting lesson files.
  • Export Exercises to Audio Files: add checkbutton that names the generated audio files after the answer of the question.
  • Spelling fixes by Ruslan Fedyarov and dougkerns
  • Preferences window: Add gui to delete statistics.
  • Works with Swig 2.0
  • Bug fix to the statistics table, and documented the statistics tables in the user manual.
  • Profile manager
  • Lots of minor bug fixes and improvements to the code.

New in GNU Solfege 3.16.4 (Aug 20, 2010)

  • Updated Estonian, Russian and Italian translations.
  • Don't raise string exceptions.
  • Use gtk.gdk.screen_width() to get the screen size, since the way we did it earlier caused segfaults on some systems.
  • Fix the abstract.Gui.std_buttons_ API so that the New button for interval, idtone and other exercises are insensitive when it should be.

New in GNU Solfege 3.16.3 (May 16, 2010)

  • French and Polish translation updates.
  • Fix front page editor bug: failed while moving sections
  • MS Windows changes: more robust config file parsing. Revert back to Python 2.5.4 for greater compatibility with CSound. Set the PYTHONHOME variable to point to our Python interpreter.

New in GNU Solfege 3.15.1 (Apr 21, 2009)

  • Bugfixes also applied to the stable branch
  • The first prototype of the new frontpage used to select exercises. Not everything is complete yet. I might make a nicer front page using cairo later. And there are reverences to learning tree many places that has to be fixed.

New in GNU Solfege 3.14.1 (Mar 31, 2009)

  • Updated italian, dutch and turkish translations.

New in GNU Solfege 3.13.2 Beta (Mar 6, 2009)

  • Added two tooltip strings to the preferences window.
  • Use better label for the checkbutton 'web_browser_as_help_browser'.
  • Clearer screenshots in the user manual. Will updated the translated screenshots before 3.14 is out
  • Tweak the with calculation of nested TextViews used in html tables, so that the html widget does not show horizontal scrollbars when not necessary. Noticed when viewing scales theory.
  • soundcard: added seq_set_volume, and use it in oss_sequencer2. People using /dev/sequencer2 was just seeing error messages.