Class FeldmanProjections

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants

@ResourceDependency({"data-dir/FeldmanProjection1.tscore","data-dir/FeldmanProjection2.tscore","data-dir/FeldmanProjection3.tscore","data-dir/FeldmanProjection3.tscore","data-dir/FeldmanProjection5.tscore","data-dir/ML_studie_1.tscore","data-dir/ML_studie_1_meta.tscore","data-dir/ML_studie_2.tscore"}) public class FeldmanProjections extends JFrame
Interactive application to visual and acoustic realization of "Projections 1-5" by Morton Feldman, and small own studies.
See Also:
  • Field Details

    • piecenames

      public static final String[] piecenames
      List of all offered scores.
    • score

      protected FeldmanProjection_n score
      Currently selected score
    • pieceNumber

      protected int pieceNumber
      Currently selected index into the selection box of scores
    • pieceSelection

      final JComboBox<String> pieceSelection
      GUI input element to select from the pieces.
    • clavier

      final PcSet.MicroClavCombo clavier
      GUI input element to select the allowed pitch classes.
    • method

      GUI input element to select from the four different pitch selection methods.
    • widePiano

      final JCheckBox widePiano
      GUI input element to select between piano registers in the outer regions, or aligned with the other instruments.
    • SEED_START_TEXT

      public static final String SEED_START_TEXT
      Evident
      See Also:
    • seedInput

      protected RandomStructs.TextFields seedInput
      GUI input element to determine the start point of the random generator by some text input.
      See Also:
    • generate

      final JButton generate
      GUI button to start the translation into midi data. Is active when no translation has happened since the last change to the input parameters, AND the pc set is not empty.
    • sequencerPanel

      JSequencerPanel sequencerPanel
      GUI button to control the playing of the midi. Is active if valid midi data exists, w.r.t. the input parameters.
    • midiSequencer

      Sequencer midiSequencer
    • synthesizer

      Synthesizer synthesizer
      System default synthesizer for playing the midi data
    • c_pageOffset

      GUI input element of the time distance for to turn the page before it starts.
    • pageTurnOffset

      int pageTurnOffset
      Currently selected distance for page turning: -1 no automated turning, 0-4 distance in 1/4 notes.
    • inputControls

      final JPanel inputControls
      Top panel for all input controls
    • tabs

      final JTabbedPane tabs
      Central tab pane for source text and all graphic rendering pages
    • sourceText

      final JTextArea sourceText
      Displays the source text.
    • messageField

      protected SwingMessageField<SimpleMessage<eu.bandm.tools.util.xml.XMLDocumentIdentifier>> messageField
      One-line text field for error messages.
    • messageCounter

      final MessageCounter messageCounter
      Counter used to abort processing.
    • msgr

      final MessageReceiver<SimpleMessage<eu.bandm.tools.util.xml.XMLDocumentIdentifier>> msgr
      General message receiver. Currently only the last is visible in messageField. All are printed to console output.
    • copyrightAccepted

      boolean[] copyrightAccepted
      Which of the five Feldman pieces have been accepted by the user.
    • titles

      String[] titles
      The number words for the five Feldman pieces
    • copyrightText

      final JTextPane copyrightText
      Text pane shown in a pop-up (=dialog) window.
    • renderedWidth

      int renderedWidth
      The last width value for which a rendering has been executed.
    • renderedHeight

      int renderedHeight
      The last height value for which a rendering has been executed.
    • renderedPieceNumber

      int renderedPieceNumber
      The last piece selection for which a rendering has been executed.
    • label1

      final JLabel label1
      Only needed to initiate the very first "paint()" / "render(w,nh)" process. This cannot be done before all layount size info has been calculated, and thus is bound to the "paint()" call from the Swing kernel. This object is put into the tab nr one of tabs. After the very first invokation of doRender() it is dicarded. Form thereon, the invocation of "paint()" of any page of the rendered score will initiate the same process.
    • midiInterpretation

      MidiInterpretation2 midiInterpretation
      The most recently generated midi realization
    • pageTurner

      final Receiver pageTurner
      Midi receiver which switches to a page in the socre. See the generation of the "SONG_POSITION_POINTER" events in MidiInterpretation2.addTimeCodes().
    • preferredWidth

      public static final int preferredWidth
      For the top-level container.
      See Also:
    • preferredHeight

      public static final int preferredHeight
      For the top-level container.
      See Also:
    • minWidth

      public static final int minWidth
      For the top-level container.
      See Also:
    • minHeight

      public static final int minHeight
      For the top-level container.
      See Also:
  • Constructor Details

    • FeldmanProjections

      public FeldmanProjections()
      Only constructor.
  • Method Details

    • acceptCopyright

      protected boolean acceptCopyright(int number)
      Shows pop-up window with English and German text and lets the user set a chekmark for "copyright accepted".
      Parameters:
      number - =0 for "Projection One", etc.
    • pieceNameOf

      String pieceNameOf(int index)
      The name of the piece at the given position of the GUI input selector.
    • currentPieceName

      String currentPieceName()
      The name of the currently selected piece (by Feldman or ML).
    • selectPiece

      protected void selectPiece(int index)
      Listener when selecting a piecename by pieceSelection. Parses the tscore source file (from a resource), creates the FeldmanProjection_n score object, and starts the rendering.
    • generateSound

      protected void generateSound()
      Generate a new midi realization, using MidiInterpretation2. Contains heuristics which maps the voices by their names tp instances of MidiInstrument.
    • loadVoice

      protected void loadVoice(String name, MidiInstrument mi, @Opt @Opt MidiInstrument mi_harm, boolean samePlace)
      Load a voice for the sound generation process.
      Parameters:
      samePlace - whether this voice shall sound at the same panorama position, e.g. because it is the second voice of a two-part instrument.
      See Also:
    • loadVoiceByName

      protected void loadVoiceByName(Vox v)
      Realize the heuristics of the voice names as appropriate to the currently existing scores.
    • loadVoice

      protected void loadVoice(Vox v, MidiInstrument mi, @Opt @Opt MidiInstrument mi_harm, boolean samePlace)
    • main

      public static void main(String[] args) throws Exception
      Only calls the only constructor and "setVisible()".
      Throws:
      Exception