[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]
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.
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:
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.
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.
+---------------+ |Duration | +---------------+ |rationalValue()| | :OPT Rational | +---------------+ /_\ | |<implements> +----------+ |
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 | +----------+ +-------------+ +-------------+ |
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
tscore | BandM muSig | mugraph |
made
2024-09-01_10h37 by
lepper on
happy-ubuntu
produced with
eu.bandm.metatools.d2d
and
XSLT
FYI view
page d2d source text