Samstag, 23. Juli 2016

AWT ist älter als ich | Wochenrückblick 3

Hallo,

An dieser Stelle sei nur kurz angemerkt, woran ich im Moment arbeite.
Ich muss meiner Schande gestehen, dass ich seit Jahren noch mit Java AWT (Abstract Window Toolkit) arbeite, welches inzwischen jedoch leicht veraltet ist. Um es direkt zu sagen: Es ist älter als ich. Heutzutage arbeitet man mit Swing - Nicht nur ein wunderbares Mittel in der Musik sondern offenbar auch ein Weg, um eine Grafische Oberfläche (GUI) in Java zu bauen.
Ich möchte dem späteren Nutzer die Möglichkeit geben ein paar Einstellungen vorzunehmen was die Art der ausgegebenen Musik angeht. Also dachte ich mir: Wenn, dann richtig. Und so beginne ich mit dem erlernen von Java Swing.

Nebenher habe ich das Problem mit der PDF ausgabe noch immer nicht lösen können, steht aber noch auf meiner To-Do liste also wird das auch noch gelöst. Ich habe inzwischen meiner Registrierung im Lillypond Forum abgeschlossen, und werde dort bald nach Hilfe fragen.

Bis dahin wünsche ich euch ein schönes Wochenende,
Samuel Winkler

Samstag, 16. Juli 2016

Doch nicht tot! | Wochenrückblibk 2

Hallo an alle da draußen, die mich nicht aufgegeben haben,
Hallo an alle da draußen, die mir den Kopf abreißen wollten, weil ich mich Ewigkeiten nicht gemeldet habe,
Hallo an alle da draußen, die sich verlaufen haben: Hier geht es zurück zu einer Suchmaschine.

Ich habe mich also ziemlich lange nichtmehr um das Projekt gekümmert. Das letzte mal Anfang Mai - jetzt ist es Mitte Juli. Das gute daran ist, dass ich daraus gelernt habe, dass mir so ein Loch besser nie, nie wieder passieren darf. Denn wenn ich einmal meinen Code längere Zeit loslasse, ist es sehr schwer für mich, sich da wieder reinzufinden.
Ein großes Glück also, dass ich tatsächlich auf vollkommen realer Basis mal Kommentarzeilen verwendet habe, die haben mein Leben gerettet, jedenfalls konnte ich so meine Arbeit in den letzten Tagen erstaunlich zügig wieder aufnehmen. Und: Es hat sich gelohnt. Ich habe nun viele, viele Stunden gebastelt und die ein oder andere For-Schleife entworfen. Das Resultat:
Der Promponator erstellt nun Wahnsinns-Rythmen, die für unglaubliche Abwechslung sorgen (Da merkt man fast garnicht mehr, wie es von Quintparallelen und Terzverdopplungen nur so wimmelt [PS: wenn euch eure Psyche noch was Wert ist, schaut euch nicht die Terzbass-funktionen an. Ich garantiere für nichts])

Die tatsächliche Herausforderung und auch das Ziel dieser Woche bestand darin, einen sehr variablen Rythmus zu schaffen, der trotzdem halbwegs richtige Töne in den richtigen Funktionen ausspuckt. Momentan hat jeder Takt eine Funktion, und darin wimmeln dann in den Melodiestimmen (in dem Fall Sopran, Alt und Tenor; der Bass hat lediglich die Grundtöne der Funktionen) die Töne des entsprechenden Dreiklangs. Im Moment noch absolut Random. Aber: Es sind nie zu viele oder zu wenig Töne in den Funktionen drin. Meistens. Und so entsteht ein akzeptables Gesamtbild.
Ich habe dafür eine doppelte For-Schleife folgendermaßen verwendet:

int index = 0;
for(int i = 0; i<AnzahlHarmonien; i++){
         for(int j = 0; j<TöneProHarmonie; j++){
                   double rdm_rythm = Math.random();
                   int rythm;
               
                   if(rdm_rythm < 0.25 && j<maxTunes-8){
                       rythm = 4;
                       j += 8;
                   }else if(rdm_rythm < 0.5 && j<maxTunes-4){
                       rythm = 8;
                       j += 4;
                   }else if(rdm_rythm < 0.75 && j<maxTunes-2){
                       rythm = 16;
                       j += 2;
                   }else{
                       rythm = 32;
                   }
      }
      index++;
}

Anschließend wurde der integer rythm an den String der Note angehängt, sodass er von Lilypond syntaktisch verwendet werden konnte.
Der Fortschritt der Woche lässt sich also durchaus sehen und wird mit einer neuen Version vermerkt.

Vorher


Mittendrin



Nachher

Bis denne,
Samuel Winkler


Edit: Das Bild 'Nachher' ist das Resultat der Einbindung der .midi Datei in nted. Aktuell gibt es noch Schwierigkeiten was die native Ausgabe als .pdf angeht. Das ist unter anderem mein Ziel für die Version 2.5