Вызов
Создайте клавиатуру с графическим интерфейсом, используя как можно меньше символов.
пример
Поскольку это было задание на одном из моих курсов, я не могу показать исходный код. Тем не менее, вот снимок экрана моей клавиатуры.
В этом примере мои ключи были типового типа, JButton
и я использовал синтезатор Midi для создания звука (со значениями огибающей ADSR по умолчанию).
правила
- Вам разрешено использовать стандартные внешние библиотеки.
- Будьте изобретательны со своим звуком. Вы можете использовать 8-битный, ситар и т. Д.
- Для простоты у вас может быть пять ключей; черный и белый, от C до E (первые пять клавиш на моей клавиатуре).
- Самое главное ... продемонстрировать свою работу!
ЗАМЕЧАНИЕ . В зависимости от того, с каким языком вы работаете, это может быть довольно большой задачей.
Это мой первый вопрос по SE Code Golf. Если что-то неясно, пожалуйста, попросите дополнительную информацию.
РЕДАКТИРОВАТЬ : Срок подачи этого вызова будет 22.09.12. Если вы отправите ответ после этой даты, я просматриваю его независимо (и, возможно, +1).
Ответы:
Mathematica
319 259255Редактировать: теперь клавиши нажимаются (как кнопки) при нажатии.
Это будет играть ноты рояля {"C", "C #", "D", "D #", "E"}, где "C" - середина C.
z[n_]
играет ноту.Клавиатуру можно расширить до 18 клавиш, используя не более двух символов:
источник
w = {67, 300}
получить твой результат; Есть идеи, почему разница? Кроме того, могу ли я отредактировать этот код, чтобы сократить его, если смогу?w = {67,300}
отлично работает на v. 9, так что если вы хотите изменить его или, если уж на то пошло, сократить любой код, продолжайте. Регулировка размера кнопки была нажата или пропущена. Странные вещи произошли по причинам, которые я не могу объяснить. (Например, добавление дополнительных кнопок влияет на пропорции оригинальных кнопок.)Веб-страница (840/796 знаков)
>>> Начните играть (Internet Explorer не поддерживается по нескольким причинам; Google Chrome и Opera работают лучше всего.)
Я, наверное, мог бы сделать это немного короче, но это хорошее начало. Более низкий балл - после замены всех вхождений
самим символом и удаления ключевого словаnew
, последнее изменение нарушает совместимость Google Chrome.Сохраните этот код в виде текстового файла с именем, оканчивающимся на .htm или .html, и откройте его в Chrome или Opera (Safari также может работать) или просто откройте страницу JSBin решения, чтобы начать воспроизведение. Я повторно использовал заголовок файла WAV из своего решения проблемы с гольф-кодом Twinkle Twinkle Little Star .
Важной особенностью является то, что звук уменьшается с течением времени. Чтобы наблюдать это поведение, попробуйте удерживать клавишу в течение нескольких секунд и слушать, что происходит.
Вот более читаемая версия кода:
источник
Groovy: 577 (703 с пробелами)
Первые 5 заметок. Другие могут быть добавлены легко, это несколько динамично.
Чертовы качели. Возможно, со свинговой библиотекой было бы лучше.
Играет через JFugue.
На github: https://github.com/wpiasecki/glissando/blob/master/src/br/glissando/Piano.groovy
На заводной 2.0.2
источник
R - 491 символов
Я немного опоздал, но я только что видел этот пост вчера.
Работает на Mac, использует playRWave и пакеты
tuneR
иsplancs
.Ungolfed:
источник