[all pages:] introduction tscore cwn mugraph sigadlib signal score2sig utilities references [site map]



All pages: introduction tscore cwn mugraph sigadlib signal score2sig utilities references [site map]



go one page back go to start go to start go one page ahead
tscore BandM muSig mugraph

tscore CWN, --- tscore Instantiated for Common Western Notation




1          Structure of a CWN Score
1.1          CWN Time Lines, Measures and the CWN Main Voice "metric"
1.2          The Main Parameter of Standard CWN Voices Contains Pitches
1.3          Further Parameters of Standard Voices, Notation and Interpretation
2          The Entity Zoo
2.1          Durations, Time Points, Metra etc.
2.2          Pitches, Intervals, Harmonics etc.
2.3          Articulation, Techniques, Volume, etc.
3          Prototypical Back-Ends
3.1          Translation to "lilypond" Output
4          Metric Split

In the following sections we will describe the above-mentioned first prototypical application, dealing with "Common Western Notation", "CWN" for short.
This text also serves as a more detailed description of the generic routines of the tscore framework, which are employed for this instantiation.

^ToC 1 Structure of a CWN Score

^ToC 1.1 CWN Time Lines, Measures and the CWN Main Voice "metric"

First of all, CWN implies the traditional method of mapping the "points in space" of the notation into "points in time" of the denotated music. This is realized by the following rules:

  1. The top-level time points (from the generic definition, see above) are given by a sequence of continguously increasing integer numbers.
  2. Every such integer number marks the start of one musical measure, i.e. corresponds to a bar line in printed music.
    (Additionally, in the data which make up the semantic model, this integer is used to represent that measure.)
  3. At every position in the score, a certain metrum is ruling. This metrum implies a certain duration of each measure.
  4. This duration is splitted among the events contained in the measure, assuming equidistant distribution on all levels of division.
  5. Beside these complete measures, there may be incomplete measures. These are limited by non-integer numbers serving as top-level time points. Their duration must be shorter than the current metrum, and must be given explicitly.

For the indications of metrum and of the length of incomplete measures there must be one dedicated voice. In our prototype (1) this voice must be called "M", (2) the metrum indication must have the usual CWN form "a/b", and (3) the length of an incomplete measure is given as a rational, in square brackets.
This is an example:

PARS cwn_example
   T      0.5       !       1      !       !       2     2.1    !    3
   VOX M  3/4[2/4]                                 [1/4] [2/4]  

The work of parsing the metrum voice and distributing all information is done by the class BarDurationCollector . The signatures of its constructor and methods show how the described behaviour is achieved by parametrisation, and how the results will be delivered.

^ToC 1.2 The Main Parameter of Standard CWN Voices Contains Pitches

Every voice line contains a sequence of pitch values as its main, event generating parameter.
Every such value contains a pitch class. This can be followed by an absolute octave register indication, and both together identify the absolute pitch.
If no absolute octave indication is present, the smallest melodical step is assumed, w.r.t. the note name [dt. "Stammton"]. This "proximity input mode" is well known from other input formats (like musixTex and lilypond), but we do not know where it was invented originally.
The resulting pitch is subject to additional octave transposition, indicated by special symbols.

This special parsing work is carried out by the class RunningOctaveCollector .
As always, the "lexers" for all the different kinds of these lexical entities are pluggable. In the context of Score_cwn , this parsing step is preceded by the resolving of dotted notation, as described above.

^ToC 1.3 Further Parameters of Standard Voices, Notation and Interpretation

^ToC 2 The Entity Zoo

^ToC 2.1 Durations, Time Points, Metra etc.

                    +---------------+
                    |Duration       |
                    +---------------+
                    |rationalValue()|
                    | :OPT Rational |
                    +---------------+
                         /_\
                          |
                          |<implements>
                    +----------+

^ToC 2.2 Pitches, Intervals, Harmonics etc.

The most important classes dealing with pitch. (dodekaphonic still missing!)

    +----------------+
    |PitchIndication |
    |<interface>     |
    +----------------+
         /_\
          |________________________________________
          |                                       |
    +--------------+                      +---------------+           +---------+
    |<abstract>    |<>--------------------|<abstract>     |---------<>|Octave   |
    |PitchModOctave|                      |PitchAndOctave |           | Register|
    +--------------+                      +---------------+           +---------+
         /_\                                    /_\
          |                         _____________|____________
          |                         |                        |
          |                 +---------------+       +------------------+
          |                 |FunctionalPitch|       | DodekPitch       |
          |                 +---------------+       +------------------+
          |
          |________________________________________________
          |                    |                           |
     +----------+           +---------------+          +----------------+
     |WhiteKeyModOctave     |FunctionalPitch|          |DodekPitch      |
     |          |<>---------| ModOctave     |          | ModOctave      |
     +----------+ 1       n +---------------+          +----------------+
                               |
          +------------+       |
          | Accidental |<>------
          |            |
          +------------+

Here are the currently supported keys (but of course many more and very different constructions are sensible!)

    +----------+         +-------------+             +----------------+
    |Functional|<>-------| Functional  |-----------<>| Functional     |
    | PitchClass|        |  Key        |             |  Gender        |
    +----------+         +-------------+             +----------------+

    +----------+  transpo+-------------+ scaleStart  +----------------+
    |WhiteKey  |<>-------| ChurchMode  |-----------<>|WhiteKey        |
    | ModOctave|         |             |             |  ModOctave     |
    +----------+         +-------------+             +----------------+
                         | hypo:boolean|
                         +-------------+

Here are the intervals, MORE TO COME FIXME

    +----------+
    |Interval  |
    | ModOctave|
    +----------+
         /_\
          |
          |____________________________________
          |                      |             |
    +----------+        +-------------+    +-------------+
    |Euler     |        | Functional  |    |Dodekaphonic |
    |          |        |  Intervall  |    | Interval    |
    +----------+        +-------------+    +-------------+

^ToC 2.3 Articulation, Techniques, Volume, etc.

^ToC 3 Prototypical Back-Ends

^ToC 3.1 Translation to "lilypond" Output

^ToC 4 Metric Split

The metric split tool takes the following parameters:

( definitions from file ../../src/eu/bandm/music/demoMetric/MetricSplitterOptions.xml )

--bracket_spans_whole_duration bool(=false)
 
  not hide_all_brackets
--hide_all_numerators bool(=false)
 
--hide_all_brackets bool(=false)
 
--first_fit_not_best_fit bool(=false)
 
--no_vanishing_bracket_on_complete_measure bool(=false)
 
--syncope_2_3 bool(=true)
 
--syncope_3_3 bool(=true)
 
--syncope_longer_4 bool(=false)
 
--max_level_syncope_2_sound int(=2)
 
--max_level_syncope_2_pause int(=0)
 
--syncope_2_below_odd bool(=false)
 
--hemiola bool(=true)
 
--merge_may_cross_bracket_limit bool(=false)
 
--max_dots_negative int(=3)
 
--max_dots_positive int(=5)
 
--push_dots_down_not_up bool(=true)
 
--max_dots_for_pauses int(=3)
 
--max_childs_to_print int(=3)
 
--beam_over_pause ( separans| transiens| perCaudulam) (=transiens)
 
--beamlets_without_any_beam bool(=true)
 
--remove_short_against_long bool(=false)
 
--short_against_short ( sinister| dexter| idem) (=idem)
 
--beamlets_without_same_side_beam bool(=true)
 
--mix_flags_and_beams bool(=false)
 
--genuine_beams_modifications ( int int int int ) *
 
--lilypond_suppress_compound_meter bool(=false)
 
--lilypond_autobeam_off bool(=false)
 
--synthesis_mode ( none| divide| approximate) (=divide)
 
--prefer_one_bracket_15_to_16 bool(=false)
 
  synthesis_mode.divide==synthesis_mode
--prefer_one_bracket_9_to_8 bool(=false)
 
  synthesis_mode.divide==synthesis_mode
--finer_division_down_not_up bool(=true)
 
  synthesis_mode.divide==synthesis_mode
--prefer_one_bracket bool(=false)
 
  synthesis_mode.divide==synthesis_mode
--recursive_separation bool(=false)
 
  synthesis_mode.divide==synthesis_mode
--binary_segments_overshoot int(=2)
 
  synthesis_mode.divide==synthesis_mode
--memo_synthesized_divisions bool(=true)
 
  synthesis_mode.divide==synthesis_mode
--distance_lower int(=1) int(=128)
 
  synthesis_mode.approximate==synthesis_mode
--distance_upper int(=1) int(=128)
 
  synthesis_mode.approximate==synthesis_mode
--divisor int(=2)
 
  synthesis_mode.approximate==synthesis_mode
--allow_coincidence bool(=false)
 
  synthesis_mode.approximate==synthesis_mode

MORETOCOME




go one page back go to start go to start go one page ahead
tscore BandM muSig mugraph

made    2024-09-01_10h37   by    lepper   on    happy-ubuntu        Valid XHTML 1.0 Transitional Valid CSS 2.1

produced with eu.bandm.metatools.d2d    and    XSLT    FYI view page d2d source text