Herausforderung
Erstellen Sie eine GUI-Tastatur mit möglichst wenigen Zeichen.
Beispiel
Da dies eine Aufgabe in einem meiner Kurse war, kann ich den Quellcode nicht anzeigen. Hier ist jedoch ein Screenshot meiner Tastatur.
In diesem Beispiel waren meine Tasten vom Typ JButton
und ich habe einen Midi-Synthesizer verwendet, um den Sound zu erzeugen (mit den Standardwerten für die ADSR-Hüllkurve).
Regeln
- Du dürfen externe Standardbibliotheken verwenden.
- Sei kreativ mit deinem Sound. Sie können 8-Bit, eine Sitar usw. verwenden.
- Der Einfachheit halber haben Sie möglicherweise fünf Schlüssel. schwarz und weiß, von C bis E (die ersten fünf Tasten auf meiner Tastatur).
- Am wichtigsten ist ... präsentieren Sie Ihre Arbeit!
HINWEIS : Je nachdem, mit welcher Sprache Sie arbeiten, kann dies eine ziemlich große Aufgabe sein.
Dies ist meine erste Frage zu SE Code Golf. Wenn etwas unklar ist, fragen Sie bitte nach weiteren Einzelheiten.
BEARBEITEN : Das Fälligkeitsdatum für diese Herausforderung ist der 22.09.12. Wenn Sie eine Antwort nach diesem Datum posten, werde ich sie trotzdem überprüfen (und möglicherweise +1 geben).
Antworten:
Mathematica
319 259255Bearbeiten: Die Tasten werden jetzt beim Klicken gedrückt (als Schaltflächen).
Dies spielt die Flügelnoten {"C", "C #", "D", "D #", "E"}, wobei "C"
z[n_]
die Note in der Mitte C spielt.Die Tastatur kann mit weniger als dem Doppelten der Zeichen auf 18 Tasten erweitert werden:
quelle
w = {67, 300}
dein Ergebnis. Irgendeine Idee, warum der Unterschied? Darf ich diesen Code auch bearbeiten, um ihn zu verkürzen, wenn ich dazu in der Lage bin?w = {67,300}
Funktioniert in Version 9 einwandfrei. Wenn Sie also Änderungen vornehmen oder den Code kürzen möchten, fahren Sie fort. Das Anpassen der Tastengröße war ein Treffer oder ein Fehler. Seltsame Dinge geschahen aus Gründen, die ich nicht erklären kann. (Das Hinzufügen weiterer Schaltflächen wirkt sich beispielsweise auf die Proportionen der ursprünglichen Schaltflächen aus.)Webseite (840/796 Zeichen)
>>> Beginnen Sie zu spielen (Internet Explorer wird aus mehreren Gründen nicht unterstützt; Google Chrome und Opera funktionieren am besten.)
Ich könnte es wahrscheinlich etwas kürzer machen, aber es ist ein guter Anfang. Die niedrigere Punktzahl ergibt sich aus dem Ersetzen aller Vorkommen
durch den Buchstaben selbst und dem Entfernen des Schlüsselwortsnew
, wobei die letztere Änderung die Google Chrome-Kompatibilität beeinträchtigt.Speichern Sie diesen Code als Textdatei mit einem Namen, der auf .htm oder .html endet, und öffnen Sie ihn in Chrome oder Opera (Safari funktioniert möglicherweise auch), oder öffnen Sie einfach die JSBin-Seite der Lösung, um die Wiedergabe zu starten. Ich habe den WAV-Datei-Header aus meiner Lösung für das Twinkle-Twinkle-Little-Star- Code-Golf-Problem wiederverwendet .
Ein wichtiges Merkmal ist, dass der Klang mit der Zeit abnimmt. Um dieses Verhalten zu beobachten, halten Sie eine Taste einige Sekunden lang gedrückt und hören Sie zu, was passiert.
Hier ist eine besser lesbare Version des Codes:
quelle
Groovy: 577 (703 mit Leerzeichen)
Die ersten 5 Noten. Andere könnten leicht hinzugefügt werden, es ist etwas dynamisch.
Verdammter Schwung. Wahrscheinlich wäre es mit einer swing lib besser.
Spielt durch JFugue.
Auf Github: https://github.com/wpiasecki/glissando/blob/master/src/br/glissando/Piano.groovy
Auf groovigen 2.0.2
quelle
R - 491 Zeichen
Ich bin ein bisschen spät dran, aber ich habe diesen Beitrag erst gestern gesehen.
Funktioniert auf einem Mac, verwendet playRWave und Pakete
tuneR
undsplancs
.Ungolfed:
quelle