Samstag, 20. August 2016

Moll ist Toll | Wochenrückblick 4

Und da sind wir wieder, meine Damen und Herren!

Im letzten Wochenrückblick habe ich völlig ignoriert, dass meine eigentliche Aufgabe war, dafür zu sorgen, dass die PDF-Ausgabe meines Programms wieder ordentlich ist. Dieses Problem habe ich erfolgreich in der letzten Woche weiterhin ignoriert. Aktuell bin ich ja noch in einer relativ frühen Phase der Entwicklung meines Programms, weshalb ich die Freiheit genieße, an verschiedenen Fronten zu bauen. Ebensowenig habe ich mir mal Java Swing angesehen, um die Oberfläche endlich schön zu gestalten.
Stattdessen habe ich eine neue Baustelle angefangen. In diesem Falle ist es eine Baustelle im musikalischen Bereich.
Wie unschwer zu erkennen ist, bin ich eher sprunghaft als gradlinig, was die Entwicklung meiner Programme angeht, aber das wird sich im Programmierverlauf ändern. Es ist keinesfalls ein Zeichen einer schnell eintretenden Motivationslosigkeit sondern viel mehr ein Indiz dafür, dass ich an vielen Stellen neue Motivation vernehmen kann.

Kommen wir zu meiner Baustelle, welche im Titel dieses Posts ja schon leicht angedeutet wurde. Denn Hurra: Ich habe angefangen, dem Promponator Moll beizubringen. Warum nur angefangen? - Klar, weil es noch nicht fertig ist. Aber warum ist es noch nicht fertig? Diese Frage ist für die Musiktheoretiker unter euch leicht zu beantworten (oder eben auch nicht), für alle anderen hier kurz angerissen: Die Dominantfunktionen in einer Mollkadenz stehen in Dur. Warum? Weil alles andere scheiße klingt. Nun ist es meine Aufgabe noch, dem Promponator beizubringen, wann er die entsprechenden Versetzungszeichen zu setzen hat und wann nicht. Leicht vielleicht - vielleicht aber auch nicht. Das wird sich zeigen.
Das Ergebnis dieses Projektes werdet ihr hoffentlich im nächsten Wochenrückblick begutachten können, vorausgesetzt, dass ich keine neue Baustelle anfange.

Bis dahin wünsche ich euch eine gute Woche,
Schmuel

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

Freitag, 6. Mai 2016

Jeder auf seine (Ton)art | Rückblick 1

Hallo alle zusammen.
Ich habe mich entschieden, jetzt einfach mit der Indexierung der Rückblicke nochmal bei 1 anzufangen. Dieser Index bezeichnet von nun an die Wochenrückblicke seit diesem Post.

Da nun die Ferien so richtig anfangen kann ich mehr Zeit in dieses Projekt investieren, was ich freilich auch tun werde. Der Erfolg der letzten Woche war also eher weniger groß, aber jeder Erfolg ist nennenswert und lässt mich nach vorn blicken. Der Promponator ist nun in der Lage jede beliebige Tonart generieren kann. Da swar aus dieser Sicht keine große Herausforderung für mich, denn Lilypond liefert dafür bereits eine vordefinierte Methode.
Wie bereits gesagt war die letzte Woche nicht sehr produktiv, aber ich bin mir sicher dass sich das bereits in den nächsten Tagen ändern können wird.


Es wird zu diesem Post vorerst keine neue Version geben.

Samstag, 23. April 2016

Lilypond! - Neuer Generator! - Erste ergebnisse! | Tage 7-20

Hallo alle zusammen!
Ich möchte vorab bemerken, dass ich von nun an regelmäßig voraussichtlich jedes Wochenende eine Art Wochenrückblick verfasse. Dadurch soll vordergründig die unnötige Verwirrung beseitigt werden, welche immer wieder entsteht wenn ich den Titel eines neuen Postings verfasse.

In der letzten Zeit ist jedenfalls vieles passiert von dem ich sagen würde, dass es eine Erzählung wert ist.
Fangen wir damit an, dass ich allein in der Zeit dieser wenigen Wochen die Klasse des Generators zwei mal komplett umgestoßen und neu errichtet habe. Ich habe mich inzwischen darauf eingestellt, dass dies weiterhin noch mehrmals geschehen wird, aber das gehört eben zum Prozess dazu. Meine bisherigen Erfahrungen, die ich in der Spieleentwicklung hatte, fielen eher so aus, dass ich eine Klasse noch nie komplett gelöscht habe, um die Funktion zu rekonstruieren. Es hatte bereits diese Dimension erreicht, dass allein schon das Löschen einer Schleife mit herben inneren Konflikten verbunden war.
Doch nun habe ich die Möglichkeiten entdeckt, die sich mir durch Backup-Dateien beten. Folglich sind meine Hemmungen, etwas produktiv umzustoßen eher gering.
Einer der Gründe für den Umstoß des Generators stellt eine wunderbare Neuerung dar. Ich habe ein Programm gefunden, welches die Möglichkeit eröffnet aus Textwerten eine Notenpartitur und eine MIDI datei zu erzeugen. Das bedeutet, dass ich nun selbst nicht weiter darauf angewiesen bin einen Interpreter zu programmieren geschweigedenn eine Grafische Darstellung des Notentextes auszugeben.
Nun kann ich mich wiederum gänzlich auf den Generator konzentrieren was letzten Endes dafür sorgen wird, dass selbiger weitaus komplexere Funktionen aufweisen wird als vorerst gedacht.
Lilypond eigenpräsenz kann man sich hier anschauen - das erspart mir an dieser Stelle eine Menge Erklärarbeit.
Der Einsatz von Lilypond hat folgende Auswirkungen auf den Promponator:
  1. Man muss lilypond auf seinem Rechner installiert haben, damit das Programm funktioniert. (Dies habe ich bisher nur auf meinem Ubuntu-Desktop ausprobieren können.)
  2. Man erhält eine Notenpartitur als PDF
  3. Man erhält eine MIDI datei zum Anhören der Partitur
 Es folgt nun ein Beispielhaftes Bild einer Partitur, die vom Promponator erstellt wurde. Freilich trotzt diese nur so vor Musiktheoretischer Fehler, aber fest steht, dass dies ein Anfang ist, auf den man bauen kann.



Ich werde mich bemühen so bald wie möglich die neueste Version des Promponators hochzuladen.

Bis dahin wünsche ich noch einen angenehmen Aufenthalt im Internet,
Samuel Winkler

Samstag, 5. März 2016

Sagen wir mal so... | Tag 5 und Tag 6

Sagen wir mal so...
ich habe einen kleinen Fehler gemacht, als ich hier irgendwo gesagt habe, dass ich lieber erst die Melodie generiere und mir dazu Harmonische Begleitungen generieren lasse, wusste ich icht, worauf ic mich eingelassen habe.
Es erweist sich im nachhinein als viel effizienter erst eine Harmonie zu haben, auf dessen Basis Töne entstehen, weshalb ich mich kurzer Hand dazu entschieden habe erneut alles umzuwerfen und den Generator neu zu schreiben. Dieses mal habe ich auch ei wesentlich besseres Gefühl, denn ich verwende jede Konstante in form eine Variable. Außerdem ist der code durch und durch kommentiert, weshalb ich noch Jahre nach den heutigen Tagen in der Lage sein könnte zu verstehen, was da abgeht. Ein Vorteil, den ich jedem jungen Informatiker an dieser Stelle nochmal sehr ans Herz legen möchte, denn Kommentare retten manchmal Leben.
Ich habe mir (für den Anfang) sieben Harmonien rausgesucht, die dann unter gewissen Bedingungen nacheinander generiert werden. Aktuell arbeite ich daran, die Töne darauf generieren.
Außerdem strebe ich nebenbei das Ziel an, möglichst viele Tonarten abspielen zu können, was dafür sorgen wird, dass ich noch sehr viel mehr Töne mittels PulseBoy erstellen muss und diese auch alle Einbinden lassen werde.
Deshalb möchte ich an dieser Stelle schonmal zu Protokoll geben, dass ich befürchte, dass die Ladezeit des Programms etwas lang werden könnte... mal sehen, was sich machen lässt.

Bis dahin viel Spaß noch,
Samuel

Sonntag, 21. Februar 2016

Ich kann nur mit dem arbeiten, was ich hier habe! | Tag 4

Hallo alle zusammen,
im voraus möchte ich noch kurz Nachreichen, dass der oben genannte Tag sich auf heute bezieht, ich zähle hier nur die Tage, an denen ich gearbeitet habe. Zwar denke ich oft auch zwischendurch mal ewigkeiten über neue Konzepte nach, aber wenn ich hier keine neue Idee veröffentliche, dann zähle ich das nicht als Tag.
Heute (also eigentlich schon Gestern, aber da hatte ich keine Lust auf Arbeit) ist ein komplett neues Thinkpad angekommen, super Sache, wo ich es doch eigentlich nur reparieren lasseb wollte - Ich will mich nicht beschweren.
Aufgrund der Tatsache, dass ich nun endlich wieder einen ordentlichen Grundsatz zum Arbeiten habe bin ich nun jedenfalls motiviert, dieses Projekt fortzusetzen.
Hier also mein kurzfristiges Ziel: Ich muss den Interpreten des ganzen neu Gestalten -- Die ausführung mittels System.wait() wird (wie bereits in diesem Post erwähnt) sonst zu einem Problem. Ich melde mich, sobald es etwas neues gibt

- Samuel

Mittwoch, 3. Februar 2016

Have you ever touched a running system? | Tag 3

Manchmal muss man sich einfach trauen ein laufendes System nicht nur zu überarbeiten, sondern auch komplett über die Schulter zu werfen und neu zu schreiben (Anmerkung: Es ändert sich nichts daran, dass man das in vielen (sehr vielen) Situationen lieber nicht tun sollte aber heute war es einfach gut) So entschied ich mich dazu meinen gestern Nacht aufgebauten Generator erneut zu scripten und dabei mit viel weniger random und viel mehr Musiktheoretischem Wissen ranzugehen. Es hat sich gelohnt und das Ergebnis kann man mal zeigen. (Ihr könnt euch bestimmt bald eine Version zum Testen runterladen ich stelle oben oder an der Seite oder unten dieses (B)logs eine Linkliste rein oder so. Mal sehen.)
Ich bin diesmal etwas anders an die ganze Sache rangegangen. Das einzige, was gleich bleibt ist der Zufallsgenerator, der Bestimmt auf welchem Ton die Melodie beginnt. Den Rest entsteht nun folgendermaßen. Der Algorythmus spaltet sich bereits ganz am Anfang ein mal. Mit einer Wahrscheinlichkeit von 20% wird ein Ton nach dem Zufallsprinzip generiert. (Ich nehme das als Puffer für die Menschliche kreativität...) ansonst wird streng nach Harmonie vorgegangen. Das bedeutet: Es wird stets der Vorangegangene Ton geprüft und ein Harmonisch Passender Ton dazu gebildet (So passen zum C etwa das E, F, G und A ganz gut.) Die Regelung, dass der Leitton immer zum Grundton führt habe ich etwas gelockert, man kann ihn nämlich auch super zum Dominantgrundton auflösen.
Diese Version (0.1.5) ist dank des neuen Generators sogar einigermaßen sehenswert - Die Bedienung und installation ist sowieso total einfach. (1. Promponator.jar ausführen || 2. auf "Generiere" klicken)
Viel Spaß mit der Dudelmusik,
Schmuel

Dienstag, 2. Februar 2016

Wie der Zufall so will | Tag 2 - Aber viele Stunden später.

Ich habe eine GUI (Graphical User Interface = Grafische Oberfläche) entwickelt.
Sie ist ganz aufregend. Zur Bedienung stehetn 2 Knöpfe parat: Der erste macht das, was ich gleich beschreibe und der zweite beendet das Programm. Letzteres funktioniert einwandfrei, demnach ist 50% der Knöpfe so eingerichtet, dass sie ganz und gar die Vorstellungen des Anwenders befriedigen dürften. Eine Statistik, die ich mir häufiger bei meinen Programmen Wünsche.
Beim errichten der GUI musste ich mich für einen Namen entscheiden, ich habe mich an dieser Stelle für den Namen Promponator entschieden. Im Moment nur ein Arbeitstitel, aber er liegt ganz gut im Mund.
Kommen wir nun zum eigentlichem Thema. Wie bringe ich einem Computerprogramm bei, was Kunst ist? Die Antwort ist zum Glück ganz einfach, denn sie lautet: Garnicht. Alles was ich dem Computer beibringen kann ist Stumpfe Theorie, aber das wusste ich ja bereits, als ich angefangen habe.
Was habe ich also schon geschafft? Ich habe Dem Programm folgendes Beigebracht: Das Stück sollte 64 Gleichlange Töne umfassen. Warum 64? Es lässt sich prima durch vier Teilen und da ich vorerst im vollen Viertel- (bzw Achtel- denn der Spaß (damit meine ich die 64) lässt sich auch ganz gut durch acht teilen) -Takt arbeite macht sich das ganz gut. Natürlich lässt sich die Zahl anhand einer Konstanten ganz einfach (und später bestimmt auch durch den Benutzer) variieren.
Der Anfangston sollte entweder der Grundton, die Terz oder die Quinte des Tonicadreiklangs beginnen. Damit aus dem Stück die Gewissheit hervorgeht, in welcher Tonart wir uns Befinden.
Außerdem (und das ist ziemlich wichtig) nutzt das Programm bereits Leittöne um zum Grundton zurück zu kommen. Sonst hängt man irgendwo mit einer großen septime rum und weiß nicht wohin damit, doch das schafft das Programm nun von alleine.
Das sind die drei ersten musiktheoretischen Umsetzungen, die ich bei der Generierung der Melodiestimme vorgenommen habe. Der Rest ist im Moment absolut random, obwohl ich versucht habe Durchgangstöne einzubauen, was sich allerdings nicht vom Zufallsgeneriertem prozedere Abhebt.
Die Version, die ich hier gerade Beschrieben habe nenne ich jetzt einfach mal Version 0.1 So werde ich sie in meinen Backup dateien Einspeichern und bei gelegenheit bestimmt irgendwo hier zur Verfügung stellen.

Des Rätsels Lösung | Tag 2

Ich habe heute wieder ein paar Stunden rumgebastelt und immer mehr selbstzweifel angesetzt. Nachdem ich mühevoll eine Tonleiter auf dem Klavier aufgenommen habe (was, wohlgemerkt, immernoch so schlimm klingt wie bereits an Tagen zuvor) und in sich ewig hinziehender arbeit endlich ein paar Töne mit einem Audioschnittprogramm an dem viel zu langsamen PC extrahiert und als .wav exportiert habe, das ganze dann per USB auf meinen Pi gezogen habe und eingescripted habe, erhalte ich immernoch den selben Fehler. Hunderte male habe ich hin und herprobiert, bis ich dann auf die so banale Idee kam, einfach mal funktionierende Aufnahmen zu vergleichen. (Ich habe ja bereits Spiele programmiert und in jedem Spiel habe ich die selbe Technik zum einbinden von Musik verwendet, weil es einfach bisher fehlerfrei und Problemlos geklappt hat) Das Vergleichen dann dauerte auch seine Zeit, denn es stellte sich heraus, dass Maßgebend für den Fehler die Länge des Clips ist. fragt mich nicht.
Nun habe ich also eine Reihe von 14 Sekunden langen Clips, die (im Moment) 8 Verschiedene Töne beinhalten. Diese 8 Töne sind natürlich die Töne der Dur-Tonleiter. Die Aufgabe, die nun vor mir steht ist, die Clips verschieden lang abzuspielen. Meine Aktuelle Lösung ist performancemäßig nicht zu verantworten und funktioniert auch nicht überwältigend gut. Außerdem würde sie im Mehrstimmigen Bereich ein paar Probleme verursachen.
Für die, die daran interessiert sind ein bisschen code zu sehen: Hier wäre ein Beispiel für meine schlechte Umsetzung ;)

                //Clip c
c.start();
try {
 Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
c.stop();

Für den Laien: der Clip wird im Hintergrund gestartet, das Ausführende Programm wartet 0,5 Sekunden und dann wird der Clip gestopt. Das hat zur folge, dass der Clip 0,5 Sekunden lang abgespielt wird. Leider hat das zur folge, dass in dieser halben Sekunde keine Andere Tätigkeit vom Programm ausgeführt werden kann, was bedeutet, dass Spätestens in diesem Punkt in der Mehrstimmigkeit Probleme auftreten.

Montag, 1. Februar 2016

Ein Toller Start | Tag 1

Ja, wenn man so richtig etwas schaffen will und sich voller Elan an eine Sache klemmt, dann ist es nahezu notwendig, dass dann sofort alles beginnt schief zu gehen.
Nachdem ich meinen eigentlichen Laptop zur Reparatur geschickt hatte (beziehungsweise, nachdem er verpackt zur Reparatur hier rum steht, weil irgendwie die Rechnung noch nicht auffindbar geworden ist) ging nun auch noch mein anderer PC den Bach runter (Die Softwareaktualisierungen waren zu viel für ihn... Er ist nichtmehr so schön wie vor Zeit.) So kommt es also, dass ich an einem Raspberry Pi arbeiten muss. Bis dahin lief es ja ganz gut und das schöne Ding hat genug Leistung um auch alles zum laufen zu Kriegen (Eclipse, Java und internetbrowser mit mehreren Tabs gleichzeitig offen) Leider läuft da mein Musikprogramm PulseBoy nicht so gut drauf. Deshalb krame ich noch einen Rechner raus (auf dem schreibe ich gerade) und lade mir alles notwendige runter. Ich habe nun also 8 .wav Dateien, fertig zum einbinden. Den Code dafür habe ich bereits geschrieben, aber genau hier bewirft mich Java mit langen Fehlermeldungen. Ich bin mir noch nicht sicher woran das liegt, aber ich bin mir sicher, dass ich an dieser Stelle aufhören werde. Für heute und für diesen Post, ich muss auch an Schlaf denken.
Jedenfalls spiele ich mit der Idee doch die Töne am Klavier aufzunehmen, aber dann steht mir da eine ganze Menge arbeit zum nacheditieren bevor. Das war es erstmal an dieser Stelle,
Gute Nacht.

Mittwoch, 27. Januar 2016

Die Idee | Tag -n bis Tag 0

Hallo, und ganz kurz hier nochmal erklärt:
Es ist schwer zu sagen, wie dieser Blog hier betrachtet werden soll. Vielleicht ist es mehr ein Log als ein Blog, weshalb die Bezeichnung (B)log angemessen wäre...
wie dem auch sei: Ich habe schon seit einigen Tagen die ernsthafte Idee das folgende umzusetzen (Hinzufügen sollte ich, dass ich den Gedanken schon vor ein paar Monaten hatte, ihn aber zunächst als Lachhaft abtat.) Prinzipiell ein ganz witziges Projekt, es verbidet zwei Dinge, die ich gleichermaßen mag wie auch kann (jedenfalls behauptet man immer wieder von midestens einer Sache gleichzeitig, dass ich sie relativ gut beherrsche, dass von beiden zur selben Zeit die Rede ist kam bisher selten vor, aber das kann sich mit eben dieser Idee, die ich immernoch nicht genannt habe ja ändern.) Ich möchte Musik und Informatik zum einklang (haha) bringen.
Dazu habe ich folgende ziemlich simple Projektidee: Ich programmiere eine Anwendung, die in der Lage ist einen Dreistimmigen Satz eines Werkes zu improvisieren, die Noten davon auszugeben und allgemein gut zu klingen. Die Frage, ob das irgendeinen Sinn oder Zweck hat kann ich bereits im vorraus beantworten: Es hat einen Sinn und einen Zweck, denn ich lerne aus der ganzen Geschichte immer was.
Dieser (B)log ist deutsch und er wird auch deutsch bleiben. Das letzte mal, als ich so eine wahnsinss Idee (an meinem Alter gemessen) hatte, das war das Programmieren von Ping-Pong in CMD (diese Idee ist jämmerlich gescheitert, aber ich war jung und habe es einfach hingenommen) hatte ich auch einen Blog (Das war sogar mher oder weniger ein Blog und kein (B)log, da ich ihn als solchen ansah und nicht wie diesen als einen anderen) den allerdings keiner kannte und den ich (sofort nach scheitern meines Projektes) auch aufgab. Ich bin dennoch in hinsicht auf diesen (B)log relativ motiviert. Denn im Gegensatz zu Ping-Pong in CMD ist das hier etwas neues (also nicht nur für mich sondern bestimmt auch für viele andere hier). Und neu klingt schonmal gut.
Der Witz an der ganzen Sache ist, dass ich, während ich das hier schreibe, nur den Zielgedanken habe und noch keine Spur an Code geschrieben habe. Ist aber auch nicht notwendig. Ich werde sofort nach diesem Post hier anfangen zu Programmieren, schließlich war es vorerst nötig ein paar Vorüberlegungen zu machen. Die wichtigsten waren wohl:

1. Was war zuerst da? Harmonie oder Melodie
Im Grunde die Frage nach der herangehensweise. Ich habe mich dafür enschieden, erst eine Melodie entstehen zu lassen und darunter dann die Harmonien zu legen. Der Grund dafür ist ziemlich einfach: Man hat früher Ergebnisse (nämlcih eine einstimmige Melodie) über die man sich freuen kann.

2. Welche Programmiersprache?
Nein, kein CMD. Das fasse ich inzwischen eher ungern an, jedenfalls seitdem ich meinen Spaß an echten Programmiersprachen gefunden habe ;) ich entscheide mich hier für Java. Der Grund: Das liegt mir am meisten. Ich möchte nicht an ecken Stoßen, die nicht hätten existieren müssen (Ich stoße so wahrscheinlich an genug Ecken.)

3. Wie setze ich die Töne um?
Ich habe erst überlegt einfach jeden Ton am klavier aufzunehmen, allerdings klingt der Ton alles andere als echt und wie es klingt, wenn ich die Tonlängen ändere, dass will hier niemand hören müssen. Deshalb greife ich auf die Warmen Klänge eines 8Bit Musikgenerators zurück.

4. Wie Groß soll das ganze werden?
Keine Ahnung, ich muss da etwas rumexperimentieren. Wenn es gut läuft, dann kann später der Benutzer die Taktanzahl einstellen, sowie andere Voreinstellungen.

5. Wann soll das alles fertig sein?
Sobald ich zufrieden damit bin. Ich arbeite nicht für Geld, ich arbeite für meine Freude. Und die kann man mir so schnell nicht nehmen.

Nachdem ich also diese Vorüberlegungen getan habe, bin ich sicher, dass das Umsetzen dieses Projektes Möglich sein kann. Voll Motiviert werde ich jetzt also gleich oben auf Veröffentlichen klicken und anfangen die Grundlagen zu programmieren, damit das Ganze Arme und Beine kriegt.

Bis dahin also ein Schönes Wochenende,
Schmuel