Défi
Créez un clavier GUI avec le moins de caractères possible.
Exemple
Parce que c'était une tâche dans l'un de mes cours, je ne peux pas montrer le code source. Cependant, voici une capture d'écran de mon clavier.
Dans cet exemple, mes touches étaient de type JButton
et j'ai utilisé un synthétiseur Midi pour produire le son (avec les valeurs d'enveloppe ADSR par défaut).
Règles
- Vous êtes autorisé à utiliser des bibliothèques externes standard.
- Soyez créatif avec votre son. Vous pouvez utiliser 8 bits, un sitar, etc.
- Par souci de simplicité, vous pouvez avoir cinq clés; noir et blanc, de C à E (les cinq premières touches de mon clavier).
- Plus important encore ... présentez votre travail!
AVIS : Selon la langue avec laquelle vous choisissez de travailler, cela peut être une tâche assez importante.
Ceci est ma première question sur SE Code Golf. Si quelque chose n'est pas clair, veuillez demander plus de détails.
EDIT : La date d'échéance pour ce défi sera le 22/09/12. Si vous postez une réponse après cette date, je la regarderai malgré tout (et éventuellement +1).
Réponses:
Mathematica
319 259255Modifier: les touches sont désormais enfoncées (sous forme de boutons) lorsque vous cliquez dessus.
Cela jouera les notes de piano à queue {"C", "C #", "D", "D #", "E"}, où "C" est le milieu C.
z[n_]
joue la note.Le clavier peut être étendu à 18 touches en utilisant moins du double des caractères:
la source
w = {67, 300}
d'obtenir votre résultat; une idée pourquoi la différence? De plus, puis-je modifier ce code pour le raccourcir, si j'en suis capable?w = {67,300}
fonctionne très bien sur v. 9 donc si vous voulez le changer, ou d'ailleurs raccourcir le code, allez-y. Le réglage de la taille du bouton a été aléatoire. Des choses étranges se sont produites pour des raisons que je ne peux pas expliquer. (Par exemple, l'ajout de boutons affecte les proportions des boutons d'origine.)Page Web (840/796 caractères)
>>> Commencez à jouer (Internet Explorer n'est pas pris en charge pour plusieurs raisons; Google Chrome et Opera fonctionnent mieux.)
Je pourrais probablement raccourcir un peu les choses, mais c'est un bon début. Le score inférieur est après avoir remplacé toutes les occurrences de
par le personnage lui-même et supprimé le mot-clénew
, ce dernier modifiant la compatibilité avec Google Chrome.Enregistrez ce code sous forme de fichier texte avec un nom se terminant par .htm ou .html et ouvrez-le dans Chrome ou Opera (Safari peut également fonctionner), ou ouvrez simplement la page JSBin de la solution pour commencer à jouer. J'ai réutilisé l'en-tête du fichier WAV de ma solution au problème de golf de code Twinkle Twinkle Little Star .
Une caractéristique importante est que le son diminue avec le temps. Pour observer ce comportement, essayez de maintenir une touche enfoncée pendant quelques secondes et écoutez ce qui se passe.
Voici une version plus lisible du code:
la source
Groovy: 577 (703 avec des espaces blancs)
Les 5 premières notes. D'autres pourraient être ajoutés facilement, c'est un peu dynamique.
Putain de swing. Avec une balançoire, ce serait probablement mieux.
Joue à travers JFugue.
Sur github: https://github.com/wpiasecki/glissando/blob/master/src/br/glissando/Piano.groovy
Sur groovy 2.0.2
la source
R - 491 caractères
Je suis un peu en retard mais je viens de voir ce post hier.
Fonctionne sur Mac, utilise playRWave et les packages
tuneR
etsplancs
.Non golfé:
la source