Skip to content
Matevž Jekovec edited this page Dec 27, 2022 · 21 revisions

Canorus is a free extensible music score editor. It supports note writing, import/export of various file formats, MIDI input and output, scripting and more! Using a Qt framework Canorus offers a fast and modern GUI and cross-platformability. Canorus runs on Linux, Windows and Mac OS X.

Canorus is free (libre) software, licensed under GNU GPL. This means that the program source code is available to public, anyone is welcome to research how the program works, participate in its development, freely distribute the program and spread the word! Read more on About Canorus page.

Latest stable release

(18 Jun 2018): 0.7.3rc3, download&release notes, report a bug, IRC chat on #canorus

Current status

Warning: Canorus is still beta-software and should be used for serious work with care (i.e. save a lot)! Testers and early users are welcome though :)

See Features for the current status and our Roadmap.


  • 20 Jul 2021 IRC channel #canorus has been moved from to

  • 28 Apr 2020 @matevz just merged the PR fixing compilation under just released Ubuntu 20.04. As a consequence fixing obsolete Python threading functions also fixed the long standing crash many have encountered on exit. Stay safe!

  • 31 Mar 2020 Canorus translations have been exported to Transifex service. Translators can now, instead of translating Canorus locally and making a github pull request, also contribute their translations using this web service.

  • 2 Jan 2020 Support for chord names with printing support has been added. User can put a chord name using the lilypond syntax (e.g. cis:m for C# minor) and is parsed. If there is a syntax error, the note checks underlines it accordingly. See the screenshot below.

  • 22 Jul 2019 Canorus summer meeting 2019 in Tübingen is finished. We successfully migrated from Sourceforge to Github including all the issues and codebase, we started using git instead of SVN, and set up continuous integration.

  • 18 Jun 2018 Canorus 0.7.3rc3 has been released post-LAC 2018! Thanks for your feedback.

  • 16 Jun 2018 Canorus 0.7.3 Binaries for Windows

    Since our own build service broke we have not provided any binaries for Windows - sorry about that. Window support as well as Mac support are both still available and we try to help anybody having issues with it's own build.

    During LAC we have been able to create a Windows executable again (a few issues on the build system were fixed for that) using mingw. Unfortunately Qt Company has issues delivering a mingw binary with QtWebEngine, so we have added support to use an external browser showing the html help file.

    Of course anybody who has all dependencies build with the native compiler will be able to use the internal help. Since some years the compiler is free and Qt releases include the compiler, so you do not need to download it separately.

    So when 0.7.3 is releases you will get Windows package for installing. If you want to try out the next release-candidate and cannot build it yourself please let us know so we provide Windows binaries.

  • 16 Jun 2018 Canorus 0.7.3rc3 impending

    A few days before LAC 2018 in Berlin (which was a great event as everytime I attended) we have released 0.7.3rc2 that contained all changes (mainly fixes) from the last year. On LAC additionally we did a large amount of changes so we are going to release 0.7.3rc3 soon.

    Canorus is now even more stable and usable as before. We have gathered a smaller amount of bug list that we want to fix until 0.8 (and all additional ones that will be reported until then). Also we have a larger amount of features to be done by us or anybody else who wants to contribute to the development.

    @stefan-sakalik is bringing back pycli (that is unfortunately not compatible with python 3) into 0.7.3 (or a follow-up release, but we do not want to wait too long for 0.7.3. This release mainly waits for further translations to be finished.

    Next release is 0.7.4 and I already started to select a few features that I'd like to see in the coming release. Though NoteEdit is gone since a longer time I hope we can add (at least basic) support for importing NoteEdit score. In contrast to other import formats this one is limited to what NoteEdit has supported when we stopped development on it.

  • 10 Jun 2018 Canorus team attended LAC 2018 in Berlin, Germany, and had a workshop on Canorus. Check out the Video footage.

  • 4 Jun 2018 Canorus 0.7.3rc2 has been released just before LAC 2018!

  • 20 May 2017 Canorus 0.7.3rc1 has been released!

  • 10 Apr 2016 Canorus team attended miniLAC 2016 in Berlin, Germany and presented Canorus in a 1-hour workshop. Click here to view the presentation!

  • 12 Apr 2015 Canorus team attended LAC 2015 in Mainz, Germany.

  • 11 Apr 2015 We just released the first release candidate for 0.7.2. First sorry for skipping 0.7.1 but the number of important features were to high for justifying a 0.7.1 release (AKA LAC 2015 Release).

    The major changes are

    • Speed improvements
    • Qt5 experimental support
    • Ruler to show the bar number on top of the score view
    • Python 3.x is now supported and required
    • Basic MusicXML export
    • MIDI pitch offset property for voice
    • Improved Lilypond export
    • Bug fixes

    The Details can be read here.

  • 21 April 2013 Today the Team finally released v0.7.1rc1. @matevz and @suamor had many 'real life' tasks to attend to than I ever expected. This also means we have a feature freeze and hope for translation updates. The current task list for the release is to write an introduction to scripting in Canorus, to fix some bugs (probably mainly from the bug list) of course and to at least update the German translation. Finally Canorus will move tomorrow to the new Sourceforge platform. This means that the repository path will change but also that there will be no longer a page for hiring developers. I hope the SF team will address to that soon. As a side note: Berlios is still alive! There is an impressive list of sponsors available and their team has been restructured. I'm happy to hear that the platform still lives, so we can offer alternative download there as well.

  • 21 Apr 2013 Canorus project page was successfully moved to Allura. @suamor has a backup of the old project page just in case any problem should occur.

  • 25 Jun 2012 An article titled Computer Aided Melodic Analysis using Suffix Tree is going to appear on the International Computer Music Conference 2012. The article presents an innovative approach in detecting themes and other interesting motifs using the suffix tree data structure. The resulting algorithms were incorporated into the Harmonia suite and a plugin for Canorus was implemented to offer an automated analysis of the currently opened score with a single click! @matevz

  • 31 Oct 2011 Subversion now again has it's full history on Sourceforge. Also the mailing lists are ready but unfortunately it's not up to us to move them, so it might take some time until they are up. Patch(es) already have been moved (was only one). What I like is that the Wiki Access is much easier to maintain. Task and Subprojects are not directly supported so I enabled the hosted app "dotProject" for the task and added all the unfinished subprojects with it's tasks. Also a new commit read-only mailing list was created. @suamor

  • 30 Oct 2011 Canorus - The free music score editor - is a program for editing scores, extensible with many import/export formats and scripts or plugins. We are searching you as a new developer especially for

    • Creating new scripts or plugins based on our or your ideas

    • Import/Export for formats like abc (both), noteedit (import), musixtex (export), pmx (both) and more

    • Introduction of contemporary music edition features like microtonal music input

    • QS Developer working on finding problems, reporting and fixing them (including but not limited to Unit Test Modules and integration test modules, plugins and/or scripts)

    Interested? Just contact our team at

  • 28 Oct 2011 The Bug tracking was moved to Sourceforge. I only moved open bugs and the bugs that can be reproduced in some way. I've added comments to all the bugs I have not moved why we cannot reproduce the problem. From now on please use the bug tracking on Sourceforge: The bug tracking on Berlios will be shut down on the next weekend. New bugs will no longer be accepted on Berlios (silently closed).

  • 23 Oct 2011 Canorus Wiki, files and SVN moved to SourceForge.

  • 06 Oct 2011 There hasn't been much activity on Canorus unfortunately, still commits are coming and the project is still alive. The big news today is that we will move away from Berlios! There is a discussion on the developer mailing list and there is a high possibility we will move to sourceforge to ease the transfer of this Wiki. We invite you to join the discussion on the list or the forums (on both Berlios or Sourceforge). We plan the next release too some time after the move. The start date of the beta will be announced then. I had the opportunity to set a small piece for viola. Some problems I encountered were fixed on the way making Canorus even more productive as composer/arranger tool.

  • 28th Apr 2010 The optimization using QGraphicsView and QGraphicsScene requires much more attention than we anticipated. The first idea was simply to inherit Qt's drawable items and reimplement the draw() method. However we decided to completely use the built-in Qt graphic primitives for rendering, because they offer proxy and therefore much faster rendering speed. Our drawable elements would only work as factory classes for generating those primitives. The current state of the branch graphicsscene is pretty poor. It compiles fine now, but other than rendering of notes, clefs and barlines and non-animated panning around is not implemented yet (no insertion, selection, backend interaction). Because this is a major showstopper, we need to implement this correctly among other refactorings, so no 0.8 release until then, sorry. Any help from Qt maestros is very appreciated!

  • 13th Dec 2009 Not much has been done since summer due to Google Summer of Code on other project and RealLife. However, as the time permits, I'm currently optimizing the score canvas (see branches/graphicsview in SVN) and the current tests show around 10x speed increase. As you might have noticed, the current rendering speed of the score is very slow for large scores, so we thought this should be the priority for the next release.

  • 8th Jun 2009 This months summary:

    • @itsgeorg made a remarkable work on the Midi code:
      • Midi export: Key signature
      • Midi import: Key signature, Time signature, Tempo support
      • Midi import: Automatic autobar
      • Midi import: Quantization support for alien notes
      • Midi import: Support for program numbers, channel names and channel numbers
      • Midi import: Speed improvements
      • Midi I/O: Optimized send() and midiIn() functions
      • Complex examples like J. S. Back WTK are now importable.
    • @matevz worked on various areas:
      • MusicXml import filter now supports melisma and hyphen for lyrics,
      • The animated scroll while playback now works as it should
      • When inserting new elements and the right border is reached, the view is automatically scrolled to center the new elements
      • Added support for "Reinterpreting accidentals". This allows user to switch from sharps to flats, from flats to sharps or invert the accidentals. The same code is used in Midi import as well.
      • Improved Midi importing code for determining note pitches (whether to use sharp or a flat)
      • Added a progress bar when importing or exporting the document
      • Beginnings of the Figured bass support
    • @suamor merged the new RtMidi library.
  • ''9th May 2009'' A quick summary of the previous two weeks:

  • 21th Apr 2009 Linux Audio Conference 2009 in Parma is over. Canorus development team was there meeting new people ([ guidolib]), saying hello to old friends (MuseScore), discussing about the future of score editors and other music applications and mostly hacking on new Canorus features. You can find some photos here. A big thanks goes to the organization team of LAC2009 for such a great event - everything from the registration process, hostels, food, lectures, workshops, live video streams and concerts were excellent! Work has been done on refactoring the score manipulation code, keyboard shortcuts and better Midi import using the pmidi player. Stay tuned!

  • 27th Mar 2009 Canorus development team is after more than a year of active development happy to announce the new release of Canorus - a free cross-platform music score editor, version 0.7. Download it here.

  • 18th Mar 2009 Though we are in the hot beta testing and fixing phase we also applied to GSoC. Like last year we cannot participate as mentor organization but everything is set up for GSoC_2009 to Canorus. Finally parts of our team also will visit the LAC 2009 in Parma!

  • 10th Mar 2009 Canorus 0.7beta released. Users are asked to test it thoroughly. Download it here.

  • 16th Feb 2009 Canorus development team is attending Linux Audio Conference 2009. We hope to release 0.7 as soon as possible with lots of stability fixes and other features for the conference.

  • 21th Dec 2008 Many polishes has been done this month. Itay merged the new copy&paste code which is much more stable now. I was doing some work on Harmonia and of course its Canorus plugin. I'd like to extend Harmonia functionality to detect themes inside the score beside the chords. I added colors support to Canorus for this (so themes can distinct from the other score) and initial work has been done for MusicXML import/export. Unfortunately Canorus is not mature yet for the new release. Anyway, all the Canorus development team wish our users best in the upcoming year!

  • 25th Nov 2008 The Canorus team has decided to postpone the 0.6 release. We are planning to that a release around New year. There are many features which need further testing. Meanwhile, we encourage users to check out our Nightly builds and drop a mail to our mailing lists. Stay tuned!

  • 26th Sep 2008 We've been quite busy this month. The Canorus developer conference in Slovenia went fine. @matevz, @suamor, and @itsgeorg all had a great time here. Some of the stuff going around recently:

    • @suamor finished the printing preview support. User needs a PDF viewer installed on his system. Export to PDF only is also supported.
    • I'm at the end of committing the transposition code. User can now transpose selection or the whole score from one key to another, for an interval or for a number of semitones.
    • Georg implemented the note entry using a Midi keyboard.
    • Me and Itay implemented the resources subsystem. User can now add any resource (eg. image, sound) to the document and it gets stored along the document.
  • 17th Aug 2008 It's been a while. Apart from the everydays activities and vacations some new stuff got implemented and fixed for the 0.6 release:

    • Many stability and use-case issues has been resolved (copy/paste improvements, lyrics crashes).
    • I just committed the new tuplet code (triplet or custom). It's still in beta state currently and saving/loading needs to be done, but looks promising.
    • @suamor implemented the new print preview, printing and export to PDF options using the LilyPond SVG backend.
    • @stefan-sakalik is still working on the plugin interface. See PPA for details.
  • 24th Mar 2008 Short summary of march activities

  • Just set up a GSoC_PSF_2008 for communication with the PSF (Python Software Foundation) to get one or several Google Summer of Code projects useful for Canorus

  • Successfully finished the LAC2008 with many interesting insights, talks and a very successful workshop presented in Köln

  • Some progress in printing and preview. Basic implementation is finished, the main work remaining is to actually print the generated pdf via poppler (preview itself works fine)

  • New Python CLI implemented by @stefan-sakalik, our latest new developer in the Canorus team.

  • 22th Feb 2008 Short summary of the last month's news:

    • Canorus received some bugfixes (Windows .can file format fix, some crashes fixed) in the last month.
    • Work on Harmonia project contributed core API changes and new features used in Canorus library. For example, CADiatonicPitch (c, cis, des etc.), CAInterval (perfect 4th, major 3rd etc.) and CAPlayableLength (quarter, whole, half note with 1 dot etc.) has been introduced. This allows us to calculate interval between two notes, add another interval to it and so on. Implementation of "transpose" function is now trivial.
    • We have a new developer onboard - Štefan Sakalík (@stefan-sakalik). He mainly focused into developing an integrated Python CLI inside Canorus. This is useful for debugging and command line score manipulation. See [].
    • Canorus is preparing for Linux Audio Conference 2008 held in Cologne from 28th Feb to 2nd March. Click.
  • 27th Jan 2008 Canorus 0.5 released. Lots of new stuff implemented. Read the release notes, known issues and grab it!

  • 20th Dec 2007 In November, we redesigned some of the Canorus internals. The main goal was to improve the robustness of the score manipulation (eg. insertion, removal of elements which should be present in all voices and mess up other voices in other case etc.). Currently, @matevz is implementing new marks like expression marks, fingering, dynamic, tempo, articulation and other marks (see :Image:marks1.png and :Image:marks2.png). @suamor is working on the printing support and ''Itay'' on the new floating widgets for score view and the new gzipped file format.

  • 26th Oct 2007 In the past month we have rewritten import and export code. Both CanorusML and LilyPond now extend new CAImport and CAExport classes. This brings many upsides - the plugin developers only extend the base class and reimplement some methods. Second, they work only on text streams, no file operations are needed. And third, all import and export is now done in separate threads so a progress bar and status can be seen while import/export is running. Script developers can now also use both LilyPond and CanorusML to open and save their score. Another thing, base support for Midi-In events have been introduced (Canorus now catches keys you press at your midi keyboard). Now we need to implement some logic behind it, to put midi events into notes and rests.

  • 28th Sep 2007 Canorus 0.4 released. See release notes and download it!

  • 24th Sep 2007 Canorus speaks English, Slovenian, German, Hebrew, Swedish and Dutch. :Image:languages.png

  • 16th Sep 2007 0.4 Release Candidate released! Translators, phrases are now frozen for 0.4 release, feel free to commit your translations now!

  • 14th Sep 2007 Added support for various clefs and fixed key signature accidentals positions. :Image:newclefs.png.

  • 2nd Sep 2007 Canorus 0.4beta released. Translators please download and submit your translations. Testers, please download the beta release and report any [ bugs].

  • 31th Aug 2007 Added Element properties dialog which shows you advanced staff, sheet, document, voice and other macro structures properties.

  • 23th Aug 2007 Rewritten support for Editing/Insertion of Key signatures. Setting the Key signature for the function marking is now supported as well. Get the nightly builds and test it!

  • 16th Aug 2007 Copy/Paste code for staff elements is inside the trunk SVN now.

  • 7th Aug 2007 Implemented document auto recovery. If Canorus crashes, it opens your last modified documents. See a :Image:recovery.png.

  • 3rd Jul 2007 Nightly build system has been upgraded to also build Windows binaries every morning. Kudos goes to Wine development team which made us possible to compile Windows applications under Linux!

  • 28th Jun 2007 Zeelander committed a short Drum Support By Zeelander article which describes what he would like to see in Canorus.

  • 12th Jun 2007 Implemented one of the most promised, needed and comprehensive features for 0.4: Canorus from now on supports Undo/Redo!

  • 7th Jun 2007 Implemented Score date creation, Score last modified date and Score time edited. These data are now stored when saving a document.

  • 5th Jun 2007 Canorus 0.3.1 released! This is a bugfix release of version 0.3. See release notes and grab it!

  • 13th May 2007 Canorus 0.3 released! See release notes and grab it!

  • 7th May 2007 Multiple selection implemented. User can now freely place slurs and phrasing slurs by selecting two notes and clicking the slur button. Faster deletion of elements by selecting multiple elements is supported as well.

  • 3rd May 2007 It's been going on quite much in the last month:

    • migration from bitmap PNG to SVG icons and moved the resources out of the executable file,
    • basic support for ties, slurs and phrasing slurs and
    • complete lyrics support, see Users guide for information on how to use it.
  • 31th Mar 2007 Developers Guide added. Contributions are welcome.

  • 20th Mar 2007 Canorus 0.2.5 released. See release notes and try it!

  • 17th Mar 2007 Canorus now supports the following barlines: single, double, end, repeatOpen, repeatClose, repeatOpenClose and dotted. Repeats don't work yet though.

  • 13th Mar 2007 It's been a while. Canorus team is working hard on the new GUI rework. Any users out there noticed that the current GUI is more experimental than of any use. The real GUI will include lots of new icons, keyboard shortcuts, translations to native languages and more. Also, we have a new developer onboard, Sam Hernandez. He already contributed a workable LilyPond document export filter, so you are now able to export your document to Lily and print it! After the new GUI will be completed and tested, we will release Canorus v0.2.5 shortly.

  • 27th Feb 2007 Implemented LilyPond import parser and export filter for a voice! User can access this feature by selecting a voice and select View->Voice source in LilyPond. See a :Image:Lilypond-voice-source.png.

  • 21th Feb 2007 Harmonia and Canorus scripting engine progress! See a demonstration.

  • 14th Jan 2007 Added Doxygen API reference. Developers can compile it from source or view the latest stable version [ online].

  • 8th Jan 2007 Rewritten support for plugins. Users are now able to create custom menus and import/export filters.

  • 15th Dec 2006 Implemented new CanorusML file format

  • 15th Dec 2006 Talk directly to Canorus developers on IRC channel #canorus on

  • 13th Dec 2006 Canorus supports different stem directions! By default, stems in 1st voice are neutral if alone, or stems for 1st voice up, other voices down, if more than a single voice present in the staff.

  • 5th Dec 2006 Harmonia project was opened. This project aims to be a Harmony and Counterpoint library and will work closely with Canorus as a plugin.

  • 27th Nov 2006 Canorus 0.1.0 released

  • 26th Nov 2006 Nightly builds, download here

  • 21th Nov 2006 Nullsoft installer for Windows support added.

  • 10th Nov 2006 Added Python scripting support.

  • 3th Nov 2006 Function marks implemented.

Project highlights

  • Score source view with on-the-fly parser and rendering to the scoreview
  • Command line interface & Scripting support
  • Plugins
  • Function marks
  • Archived File format with resources attached
  • Qt5 and cross-platform ability
  • Modern user interface (vector graphics for music elements, multiple viewports on a single score)
  • Doxygen documentation
  • Multiple voices - Polyphony and unlimited number of contexts
  • Multiple viewports on the same music score
  • MIDI playback
  • Transposition
  • Lyrics
  • LilyPond export, basic import
  • MusicXml export/import
  • Midi export, basic import


We would like to thank Github, and before that SourceForge and BerliOS for hosting our project site (bugtracker, wiki, mailing lists, SVN/git, files bandwidth etc.).

If you would like to sponsor our project, don't hesitate to contact us by opening a github issue and we will provide you further information regarding the sponsorship. Small donations or implementation of a desired feature by Canorus core developers from the first hand can be sponsored.

Canorus is a member of the Linux Audio Consortium.

Clone this wiki locally