Class FeldmanProjection_n
java.lang.Object
eu.bandm.music.applications.feldproj.FeldmanProjection_n
This class realizes a score model of Morton Feldman's "Projection 1" to "5".
Copyright of the original score data is with (c) Edition Peters 1951,
See https://www.cnvill.net/mfgriff.htm}
See
https://github.com/DigiScore/neoscore/tree/main/examples/feldman_projection_2
for the supported "Neoscore" back-end.
-
Nested Class Summary
Modifier and TypeClassDescription(package private) static enum
Types of voices which allow different sets of graphical addenda to the events: "simplex" allows nothing. -
Field Summary
Modifier and TypeFieldDescriptionA free text which will be printed with the event when rendering it.The (optional) number of simultaneously played pitches.End point of any event (sound or pause) is the start point of the subsequent event (pause or sound) in the same voice.protected TpTop
The very first time point object of the score.Whether an event has an additionl "harmonic" modifier.Marks voice events as being a "hold", which is not more than an unaltered prolongation of the preceding event's duration.protected TpTop
The very last time point object of the score.The rational time value of the very last top level tscore time point.(package private) int
Determined by the constanttimelessTag_measuresPerPage
by the maximum ofpageVoice
.static final Modifiers
Modifiers controlling the parsing process.(package private) final SimpleMessage.Sender<eu.bandm.tools.util.xml.XMLDocumentIdentifier>
Only for conveniently construction messages and sending them tomsgr
(package private) final MessageCounter
Monitors all error messages.(package private) final MessageReceiver<SimpleMessage<eu.bandm.tools.util.xml.XMLDocumentIdentifier>>
The drain for all messags.Events after collapsing "hold" events and repeated pauses, in temporal order.Maps bar numbers / measure numbers to tscore top-level time points.protected final Translet.Parser<?>
Parser for events in the piano.protected final Translet.Parser<?>
Parser for the register.protected final Translet.Parser<?>
Parser for events of the string instruments, with modifiers and no multistops.protected final Translet.Parser<?>
Parser for events of the string instruments with multi-stops and no modifiers.Measure numbers when a new page starts.Voice for the "new page starts here" indication of the copied historic original.static final Translet.Parser<Integer>
Parser for measure numbers.protected final Part
The score data as parsed by tscore.Marks voice events as being a pause.Whether an event is marked as pizzicatoWhether an event is marked as "sul ponticello"Inverse oftp2rat
.Whether an event is in the high register.Whether an event is in the low register.Whether an event is in the middle register.static final String
The name of the author of the piece, as printed in the footerstatic final String
The text (= a calendaric datum) which marks the end of the scorestatic final String
Graphical gaps between staffs.static final String
Name printed on the first pagestatic final String
Given as a timeless value iff it is a constant.static final String
The name of the piece, as printed in the footerstatic final String
Marks "second voices" needed by tscore to model overlapping events in piano voices.static final String
Name printed on the subsequent pagesstatic final String
Makrs the lower staff of the two in the same piano staff.Maps all tscore time points to rational numbers which correspond to the musical time relative to the start of the very first event.Inverse ofnumericName2tpTop
.Central translation from measure numbers (1-based) to rational time stamps (0-based)static final String
Reserved name in the tscore input for a voice which indicates the page turning points.protected static Map<Vox,
FeldmanProjection_n.addenda> Evident. -
Constructor Summary
ConstructorDescriptionFeldmanProjection_n
(Part part, MessageReceiver<SimpleMessage<eu.bandm.tools.util.xml.XMLDocumentIdentifier>> msgr) Construct data for one particularPart
of a tscore TimeScape. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Generate a Python source file with the main data for to import it into Neoscore.static @Opt FeldmanProjection_n
fromFile
(File inputfile, MessageReceiver<SimpleMessage<eu.bandm.tools.util.xml.XMLDocumentIdentifier>> msg) static @Opt FeldmanProjection_n
fromStream
(InputStream inputstream, String sourceIndication, MessageReceiver<SimpleMessage<eu.bandm.tools.util.xml.XMLDocumentIdentifier>> msg) protected void
Read the optional addenda specification of the given voice.static void
Stand-alone application, translates input file "arg[0]" into neoScore python data with extension ".data".protected final Translet.Parser<?>
p_event
(Translet.Parser<?> parser) Generic parser for pauses and "hold" events.void
update()
Translate untyped tscore data into semantically sensible data, indexed by events.void
protected void
First step of interpreting syntactic to semantic contents: Parse the TpTop text to bar numbers, constructing an ordered sequence of TpTops:void
update_voice_durations
(Vox voice) Normalize all events, sort them by start point, and memorize their duration.
-
Field Details
-
timelessTag_sameStaff
Marks "second voices" needed by tscore to model overlapping events in piano voices.- See Also:
-
timelessTag_subordinated
Makrs the lower staff of the two in the same piano staff.- See Also:
-
timelessTag_shortName
Name printed on the subsequent pages- See Also:
-
timelessTag_longName
Name printed on the first page- See Also:
-
timelessTag_measuresPerPage
Given as a timeless value iff it is a constant. If number of measures per page is constant, usepageVoice
instead.- See Also:
-
timelessTag_interStaffGap
Graphical gaps between staffs. Given in Rational multiples of the event height. Differing from the original, only one distance is supported.- See Also:
-
timelessTag_endMark
The text (= a calendaric datum) which marks the end of the score- See Also:
-
timelessTag_opusName
The name of the piece, as printed in the footer- See Also:
-
timelessTag_author
The name of the author of the piece, as printed in the footer- See Also:
-
msgr
The drain for all messags. -
msgCount
Monitors all error messages. -
msg
Only for conveniently construction messages and sending them tomsgr
-
part
The score data as parsed by tscore. -
modifiers
Modifiers controlling the parsing process. -
voxAddenda
Evident. -
parse_barNumber
Parser for measure numbers. -
numericName2tpTop
Maps bar numbers / measure numbers to tscore top-level time points. -
tpTop2numericName
Inverse ofnumericName2tpTop
. -
tp2rat
Maps all tscore time points to rational numbers which correspond to the musical time relative to the start of the very first event. One measure is assumed to have the lenght 1/1 = 4/4 . -
firstTp
The very first time point object of the score. (Must be a toplevel time point due to the syntax of the general tscore format.) -
lastTp
The very last time point object of the score. This must not carry an event but mark the end-time of the very last event in any voice. (Must be a toplevel time point due to the syntax of the general tscore format.) -
lastTpTop_rat
The rational time value of the very last top level tscore time point. Seetp2rat
. -
rat2tp
Inverse oftp2rat
. -
normalizedEvents
Events after collapsing "hold" events and repeated pauses, in temporal order. -
event2endTp
End point of any event (sound or pause) is the start point of the subsequent event (pause or sound) in the same voice. -
voicename_page
Reserved name in the tscore input for a voice which indicates the page turning points. If number of measures per page is constant, usetimelessTag_measuresPerPage
instead.- See Also:
-
pageVoice
Voice for the "new page starts here" indication of the copied historic original. If number of measures per page is constant, usetimelessTag_measuresPerPage
instead. -
tpTopInterpretation
Central translation from measure numbers (1-based) to rational time stamps (0-based) -
pause
Marks voice events as being a pause. -
holds
Marks voice events as being a "hold", which is not more than an unaltered prolongation of the preceding event's duration. -
registerH
Whether an event is in the high register. -
registerM
Whether an event is in the middle register. -
registerL
Whether an event is in the low register. -
harmonics
Whether an event has an additionl "harmonic" modifier. (Ths must not be mixed up with "harmonic staves": all events in there are harmonics and do not carry such a modifier.) -
pizzicato
Whether an event is marked as pizzicato -
ponticello
Whether an event is marked as "sul ponticello" -
chordSize
The (optional) number of simultaneously played pitches. -
adjunctLabel
A free text which will be printed with the event when rendering it. -
p_register
Parser for the register. -
p_string
Parser for events of the string instruments, with modifiers and no multistops. -
p_stringMult
Parser for events of the string instruments with multi-stops and no modifiers. -
p_piano
Parser for events in the piano. -
pageStarts
Measure numbers when a new page starts. Contains "numeric names" of measure bars, ie. it is 1-based. The first page is also contained herein, i.e. the data always starts with "1" -
maxMeasuresPerPage
int maxMeasuresPerPageDetermined by the constanttimelessTag_measuresPerPage
by the maximum ofpageVoice
. Needed for graphic x-allocation.
-
-
Constructor Details
-
FeldmanProjection_n
public FeldmanProjection_n(Part part, MessageReceiver<SimpleMessage<eu.bandm.tools.util.xml.XMLDocumentIdentifier>> msgr) Construct data for one particularPart
of a tscore TimeScape. In the score source text this is marked by "PART
".
-
-
Method Details
-
p_event
Generic parser for pauses and "hold" events. -
update
public void update()Translate untyped tscore data into semantically sensible data, indexed by events. -
getVoiceAddenda
Read the optional addenda specification of the given voice. -
update_topTps
protected void update_topTps()First step of interpreting syntactic to semantic contents: Parse the TpTop text to bar numbers, constructing an ordered sequence of TpTops: -
update_pageStarts
public void update_pageStarts() -
update_voice_durations
Normalize all events, sort them by start point, and memorize their duration. Include sounds but also normalized (=maximal) pauses in the normalized event list. GLO OUTnormalizedEvents
-
exportToNeoscore
Generate a Python source file with the main data for to import it into Neoscore. Currently only the core event data. Missing esp. export of list of voice names "nomenVisibile.longum" and "nomenVisibile.breve". -
fromStream
@Opt public static @Opt FeldmanProjection_n fromStream(InputStream inputstream, String sourceIndication, MessageReceiver<SimpleMessage<eu.bandm.tools.util.xml.XMLDocumentIdentifier>> msg) -
fromFile
@Opt public static @Opt FeldmanProjection_n fromFile(File inputfile, MessageReceiver<SimpleMessage<eu.bandm.tools.util.xml.XMLDocumentIdentifier>> msg) -
main
Stand-alone application, translates input file "arg[0]" into neoScore python data with extension ".data".
-