Written music

From Arnout Engelen

Jump to: navigation, search

Contents

[edit] Notation editors

For printing written music, I usually write it in Rosegarden and then export to Lilypond

Rosegarden is, however, a bit too `big': it follows much of the 'monolithic' DAW tradition. The 'small, interchangable, interconnected applications each performing a specific task' model is much more elegant.

One of the big advantages of Rosegarden is that you can sync up an audio track with your in-progress arrangement. It should be possible to achieve such a synchronization between separate audio playback and notation applications, though.

This would require the following:

  • an audio player able to sync to a timebase master
    • newer versions of jack.play can do this
  • a notation editor able to sync to a timebase master. This one would (ideally) listen to the bar/beat/tick information, and leave frame numbers alone.
    • to make jumps, the notation editor could emit jack_transport_reposition events with the 'valid' bitmask set to tell the timebase master which fields are supported (see here).
  • a timebase master that can relate frame numbers to bar/beat/tick information (with some help from the user)

Open questions:

  • can we elegantly support timestretching - i guess not, as variable speed in that sense in jack is still post-1.0 open research.

This approach would drop some common assumptions: - frame 0 is BBT 1:1:0000

See also:

[edit] Other options

[edit] Nted

Pro:

  • Jack-enabled AlsaMidi output

Con:

  • only 4/4 measures (?)
  • no repeats (?)
  • no keyboard note entry
  • ugly anti-aliasedness

[edit] museScore

Free and open source music notation & composition software for Linux & Windows. Currently looking for a Mac developer. MuseScore website: http://musescore.org MuseScore could be enhanced to export object page position in order to create automatic score following. See http://n2.nabble.com/Exporting-note-object-page-positions-td685266.html#a685266 for the discussion.

[edit] canorus

immature still, but promising

[edit] ultimate

If I got to design a notation editor, what would it look like?

  • structure
    • internal structure should not be sequencer-like, but 'conceptual' (e.g. for elegantly representing triplets)
    • re-usable 'blocks'.
      • Contain either notes or other blocks. Other blocks may have a transposition correction.
      • Notes stored in concert pitch, these have time signatures and can have a pickup measure.
  • entering
    • a 'grid' can contain
      • block instances: blocks with transposition information and whether/how to repeat
      • repeats, time signature changes
  • playing/previewing
    • sync to JACK timebase master on BBT info (not frames)
    • emit JACK/ALSA midi signals. leave making the sounds to the pro's ;).
  • file input/output
    • input: midi, musicxml, perhaps an own file format if needed
    • output: musicxml, lilypond
[edit] datamodel

Score : [Track]

Track : [StartMeasure, BlockInstance]

BlockInstance : Transposition, Block, Repeat

Repeat : none | Int times | until Int | until next | until end

Transposition : Interval

Interval : Int notes Int semitones

Block : NoteBlock | BlocksBlock

NoteBlock : TODO

BlocksBlock : [Offset, BlockInstance]

Personal tools