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 Qt4 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 (27 Mar 2009): 0.7, download, release notes, known bugs!, report a bug
Warning: Canorus is still beta-software and is not usable for serious work! Testers and early users are welcome though :)
Canorus is a non-profit project. If you like it, please consider making a donation. 
- 21 April 2013 Today the Team finally released v0.7.1rc1. Me, Reinhard, has been more '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.
- 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 Haromnia suite and a plugin for Canorus was implemented to offer an automated analysis of the currently opened score with a single click!
- 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.
- 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:
- Georg 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: Quantisation 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.
- I (Matevž) 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
- Reinhard merged the new RtMidi library.
- Georg made a remarkable work on the Midi code:
- 9th May 2009 A quick summary of the previous two weeks:
- Reinhard is working on the new keyboard shortcuts interface. He also wants to implement support for Midi keyboard events, so one could reserve a special Midi key on his external keyboard for rests or other special element insertion for example.
- Georg is improving the current Midi file import code. He is replacing the current Midi parser withe the code from the pmidi project (default Alsa command line Midi player).
- I (Matevž) am doing cleanups on the current code and some renamings (see , ). I'm also improving MusicXml import code to correctly import the examples found on Recordare site.
- 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 (mscore), 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 students interested in participating and contributing 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 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. Me, Reinhard and Georg all had a great time here. Some of the stuff going around recently:
- Reinhard 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. Appart 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.
- Reinhard implemented the new print preview, printing and export to PDF options using the LilyPond SVG backend.
- Štefan is still working on the plugin interface. See PPA for details.
- 24th Mar 2008 Short summary of march activities
- Just set up a page for communication with the PSF (Python Software Foundation) to get one or several Google Summer of Code projects useful for Canorus
- Succesfully finished the LAC2008 with many interesting insights, talks and a very succesful 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 (Command Line Interface) implemented by Štefan Sakalík, 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. 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, I (Matevž) am implementing new marks like expression marks, fingering, dynamic, tempo, articulation and other marks (see Screenshot1 and Screenshot2). Reinhard 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. Check it out!
- 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. Screenshot.
- 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 screenshot.
- 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 notation 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: 1) migration from bitmap PNG to SVG icons and moved the resources out of the executable file, 2) basic support for ties, slurs and phrasing slurs and 3) 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 screenshot.
- 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 irc.freenode.net.
- 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 markings implemented
- Score source view with on-the-fly parser and rendering to the scoreview
- Command line interface & Scripting support
- Function marks
- Archived XML-based file format with resources attached
- Qt4 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
- LilyPond export, basic import
- MusicXml basic import
- Midi export, basic import
See Developers Guide and get started!
We would like to thank SourceForge for generously hosting our project site (bugtracker, wiki, mailing lists, SVN, files bandwidth etc.).
If you would like to sponsor our project, don't hesitate to contact us using development mailing list. 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.