Tk::Music***... update
- From: Jimi-Carlo Bukowski-Wills <jimi-carlo@xxxxxxxxxxxxxxxxxxxxx>
- Date: Thu, 03 Aug 2006 11:09:00 GMT
I've copied the original proposal below the current message...
Current message:
=pod
Update...
There are several key areas here:
1) Display of items on the screen
2) Addition of directions, comments, etc
3) Modification of item preferences (stalks, accidentals, etc)
4) Calculation of positions:
- a) horizontally
- b) vertically
5) Representation of musical notes
- a) length
- b) pitch
These would eventually all be part of the system, running in reverse order,
but they represent individual functional systems and will be built in the order shown.
1) Display of items onscreen..
First, we need to define what and how we want to display...
- a) I want to display music for editing only...
-- i) The staves can run on horizontally as long as they like (like in Noteworthy Composer)
-- ii) We only need one Canvas widget to display things on
-- iii) for final prints we can export to Lilypond
- b) I want to display musical directions, and perhaps other comments
- c) It would be nice to include lyric editing here too
So I need to create routines to draw notes, stems, tails, rests, etc, etc, etc
And I need to place them in the correct places using a cursor
The cursor will be moved according to the note sizes, spacing values, etc, stored
in the staff object and the note lengths stored in the note objects
For appending a single note, only that note and the length of the staff need to be altered
But for editing, inserting or deleting a note, the rest of the notes need to be re-painted/moved
Comments??
=cut
Original proposal:
=pod
comp.lang.perl.tk
Proposed CPAN Module: Tk::Canvas::Music
This module will create a Tk::Widget which ISA Tk::Canvas. It will
export functions that paint scores, notes, key signatures, time
signatures, tempo and other text, bar lines, a cursor/caret, ledger
lines, and so on. It will have a set of default bindings that allow
input from the keyboard. The key-mapping may be redefined at any time.
There will be a Read-Only version with none of the input bindings, for
display purposes or for the perl community to add their own bindings to.
A module like this can allow the printing of musical score, the input of
music in a conventional manner, or even the export of music to midi,
MusicXML, or any other form of storage. The Music::Note module will be
used to create a new Note module to represent the notes as objects.
The new Note module is necessary so that notes may have a length
property and may be rests. A Staff module will allow representation of
staves as objects. paint()ing the Staff will automatically paint() all
of the notes that belong to it, using the treble clef by default, but
adjusting the vertical position appropriately for any clef. Since the
Music::Note module is used, transposition will be easy, thus a
particular staff of a composition may be isolated and printed for Bb or
Eb (or any other) instruments.
This module is at the idea stage, will be written in perl, and will have
the standard perl license.
So, what do you think?... feedback please.
=cut
.
- Follow-Ups:
- Re: Tk::Music***... update
- From: Peter Billam
- Re: Tk::Music***... update
- Prev by Date: Re: Is installing Crypt::SSLeay related to SSL Certs and secure sites?
- Next by Date: Re: What module is needed to allow scripts to post to HTTPS sites?
- Previous by thread: Is installing Crypt::SSLeay related to SSL Certs and secure sites?
- Next by thread: Re: Tk::Music***... update
- Index(es):