On Monday 31 Jan 2005 01:28, NadaSpam wrote:
> I was wondering if anyone is working on a Rosegarden player.

As far as I know, no.

> I was also wondering why Rosegarden counts time in beats per hour
> rather than in, say, microseconds. 

Rosegarden technically doesn't count time in beats, although you're 
right that it uses "musical" rather than "real" time.  The basic 
resolution (for timeT values) is 1/960th of a quarter note.

Beats per hour is used for storing tempo.  (A bad choice -- we should  
have used something like 1/10000s of a quarter-note per minute.  We may  
yet switch -- obviously retaining file format compatibility.)

> You could have a time class that converts from seconds to beats.

The Composition class does this, in getElapsedRealTime, 
getElapsedTimeForRealTime and getRealTimeDifference.  Note that the  
Rosegarden sequencer process actually already deals only with real time  
in nanoseconds -- the GUI process and basic event storage deal with 
these in musical time.  There is also base/RealTime.[Ch] which can 
translate between real time and audio frame counts.

> Then users could switch the timing ruler between seconds,
> beats/measures, SMPTE, and whatever else you'd want to support.

This would be pretty trivial already -- I've offered to implement it 
before, if anyone wanted it, but haven't had much of a response.  The  
transport window timer of course is switchable already.

The thing you _don't_ easily get from storing musical time is the 
ability to run different tracks at different tempos, should you want 
it.  You can run different tracks in different time signatures of 
course, although Rosegarden itself doesn't support this.

> I'd be interested in working on either of these. Also, I'd be
> interested in adding support for different tunings. My thought is
> that just as instruments are abstractions, the note number should be
> an abstraction that maps to a value in a tuning file. Changing the
> number of notes in an octave could be very hard, but just allowing
> different temperaments shouldn't be that difficult. Notes in the .rg
> file get mapped to MIDI notes +/- some pitchbend.

Pitch bend is a bit inadequate when you have chords, but there is also 
the MIDI Tuning standard and some soft synths may support other tuning 
methods.  Lots of people have opinions about this -- my personal 
interest is in the ideal of tuning being a property of the key rather 
than (or as well as) a property of individual notes.

Dougie McGilvray and the CMT Glasgow have been doing some work on tuning 
with Rosegarden, although I believe it's fairly specific to a 
particular application and the code hasn't been released yet.  See

http://markov.music.gla.ac.uk/CMT/cmt.py///Projects/rgtracker.html

> Lastly, if someone's working on tablature, I could help with that.

Nobody is yet, but again several people have an interest in it.

> But from what I see, that's a major undertaking. I don't see how to
> implement it without altering the basic way in which staves are
> represented. That is, there would need to be an abstract class called
> Staff. [...]

There is an abstract class called Staff (in base/Staff.[Ch]).  The main 
subclass is LinedStaff (gui/linedstaff.{cpp,h}) which represents staffs 
that have one or more horizontal lines representing pitch.  Current 
examples are NotationStaff and MatrixStaff, and I intend a 
PercussionStaff pretty soon.

Likewise there are horizontal and vertical layout engine abstractions 
that handle layout for staffs that have different layout requirements.  
Like the LinedStaff abstraction, these abstractions are largely 
academic when dealing with notation versus matrix, as they have so 
little in common -- this base class gives us nothing much except a 
potential nice box on a class diagram.

> Does the CVS source include a project file? It looks like KDevelop
> was used. Is that so?

Only to create the initial Makefile and stuff.  We all use text editors 
to write the code.

We did have a Doxygen dump updated daily at 
http://rosegarden.sourceforge.net/code_doc, but it seems to have 
disappeared.  Perhaps Guillaume (who is away this week) might know 
what's happened to it.


Chris


-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to