Class Generate_3.Agent

java.lang.Object
eu.bandm.music.applications.feldproj.Generate_3.Agent
Enclosing class:
Generate_3

class Generate_3.Agent extends Object
Generator for one voice.
  • Field Details

    • number

      final int number
      Position in the sequence of canonically starting voices.
    • reihe_th

      final int reihe_th
      The list of dodecaphonic modes (taken from Generate_3.reihen for the pitch parameter.
    • startHaken_th

      final Haken startHaken_th
      Very first haken form.
    • startHaken_dt

      final Haken startHaken_dt
      Very first haken form.
    • hakenFolge_dt

      List<Haken> hakenFolge_dt
      List of all hakens for this voice, filled by generate_haken(int).
    • hakenFolge_th

      List<Haken> hakenFolge_th
      List of all hakens for this voice, filled by generate_haken(int).
    • voice

      Vox voice
      The resulting voice, contained in the resulting Generate_3.score.
    • haken2start

      List<Integer> haken2start
      Keeps track which haken (identified by its index in the hakenfolge) starts at which time position (in 1/4 notes). Needed only to realize the canonical start of the voices.
    • event2haken

      Map<Integer,Integer> event2haken
      Keeps track which event in the generated output realizes the start of which haken (relative to the haken list of the same voice)
    • event2start

      List<Integer> event2start
      Pre-Feldman event data: start point measured in 1/4.
    • event2duration

      List<Integer> event2duration
      Pre-Feldman event data: duration measured in 1/4.
    • event2wert

      List<RelWert> event2wert
      Pre-Feldman event data: register as a RelWert O/M/U.
    • haken_additionalPause

      public static final int haken_additionalPause
      Pause between two haken realizations.
      See Also:
    • overlap_positions

      Set<Integer> overlap_positions
      Number of haken modulo 4 the start of which may be subject to an overlap.
    • viertel

      int viertel
      Global counter for generating the pre-Feldman event data in event2start, event2duration, and event2wert. Must be global because updated by both, generate_eventData() and generate_eventData(eu.bandm.music.haken.RelWert,eu.bandm.music.haken.RelWert).
  • Constructor Details

    • Agent

      Agent(Haken startHaken_th, Haken startHaken_dt)
      Constructor with explicit haken forms. Called from outside only for the very first agent.
    • Agent

      Agent()
      Constructor called from outside for all agents except the first. Every voice (except the first) starts in unison with its predecessor w r t the haken-form for parameters "th" and "dt". The second voice has one predecessor and follows 5 hakens later, the third voice has two predecessors and follows 4 hakens later, etc.
  • Method Details

    • generate_haken

      void generate_haken(int count)
      Fill the sequences of hakens hakenFolge_th and hakenFolge_dt starting with the start haken in startHaken_th and startHaken_dt. For the former the own dodecaphonic series (="Reihe") as given by reihe_th is used, multiplied by the 0th reihe. For dt, the haken form changes only every second haken and always reihe #3 is used.
    • generate_eventData

      void generate_eventData()
      Step through the seres of haken in hakenFolge_dt and hakenFolge_th and translate each haken into three pre-Feldman events in event2start, event2duration, and event2wert- Two adjacent hakens may share the middle event, if it has the same parameters. Otherwise the additional pause haken_additionalPause is inserted.
    • generate_eventData

      void generate_eventData(RelWert th, RelWert dt)
      Translate twp relative values O/M/U for duration and pitch into pre-Feldman events in event2start, event2duration, and event2wert. Start point is at viertel, which is advanced according to duration and gap, which both depend on the duration haken.
    • write_to_score

      void write_to_score()
      Generate a new score and transform the pre-Feldman data from event2start, event2duration, and event2wert to tscore events. Therefore Tps must be synthesized whenever necessary.