*auswahl *breite *basspattern) (variante *t L akkord *pattern [] [] *auswahl *breite *akkordpattern) (variante *t L melodie *pattern [] [] *auswahl_melodie *breite *motiv) > [(C 1)] finde_noten(*grundton *geninbass *genoutbass [] bass *auswahl *basspattern) [(C 2)] finde_noten(*grundton *geninmelodie *genoutmelodie [] melodie *auswahl_melodie *motiv) akkord(*grundton bass *auswahl *akkordpattern) .
Die Generierung des rechten Halbtaktes wird verzögert, bis die Melodiestimme des Folgetaktes bekannt ist:
rtakt(*grundton (*basslinks *melodielinks) (*bassrechts *melodierechts) *all) waitfor (*melodierechts) .
rtakt(*grundton (*basslinks *melodielinks) (*bassrechts *melodierechts) (*pattern *t *breite *auswahl *auswahl_melodie)) -> < (rev *bassrechts [] *bassrechtsinv) (rev *melodierechts [] *melodierechtsinv) (variante *t R bass *pattern *basslinks *bassrechtsinv *auswahl *breite *basspattern) (variante *t R melodie *pattern *melodielinks *melodierechtsinv *auswahl_melodie *breite *motiv) (eq {akkord:{*t:{R:*akkordpattern}}} *pattern) > [(C 1)] finde_noten(*grundton *geninbass *genoutbass [] bass *auswahl *basspattern) [(C 2)] finde_noten(*grundton *geninmelodie *genoutmelodie [] melodie *auswahl_melodie *motiv) akkord(*grundton bass *auswahl *akkordpattern) . |