HTML5 пианино

Недавно пересматривал старый фильм Amadeus и захотелось тоже что-нибудь сыграть на фортепиано, но так уж сложилось, что мой синтезатор позаимствовал dx, а другого инструмента у меня не имеется. Поэтому решил поизвращаться и сделать свое "фортепиано" с использованием HTML5.
Реализация довольно простая. Клавиши рисуются в элементе canvas, создается элемент audio для каждой ноты и, соответственно, при нажатии клавиши определяются координаты курсора, высчитывается, в область какой клавиши было совершено нажатие и играется сэмпл (каждая нота хранится в отдельном ogg-файле).
Живой пример можно посмотреть здесь.
Все файлы одним архивом: скачать.

P.S.

Капча с использованием HTML5

На большинстве сайтов в качестве капчи используется картинка, подгружаемая в бинарном виде при обращении к некоему скрипту-обработчику. Реже встречаются капчи, отображаемые с использованием технологий Flash или Java. Плюс в использовании таких капч безусловно есть, но некоторые пользователи любят отключать подобные расширения, с целью обеспечения дополнительной безопасности при серфинге в интернете. Однако пятая версия основного языка разметки веб-страниц принесла с собой множество полезных нововведений. Одно из них - элемент canvas, который предназначен для создания растровых изображений с помощью JavaScript.
Соответственно, с помощью этого элемента и JS можно выводить изображения капчи в браузер, например, в виде массива точек, которые будут собраны в изображение с помощью JS. В чем смысл? Смысл в том, чтобы затруднить автоматизированное распознавание изображений.

Во-первых, можно придумать специфический формат хранения данных, который будет впоследствии декодироваться скриптом.
Во-вторых, можно упаковать и обфусцировать данные изображения, чтобы затруднить парсинг и навязать использование JS-интерпретаторов.
В-третьих, можно использовать специфичные для браузеров JS-«фичи», которые затруднят работу интерпретаторов.
В общем, есть, где развернуться.

И, наконец, вот простой пример подобной капчи (без маджонга и гейш). По идее должен нормально работать в FireFox, Opera, Chrome и IE9.
Исходный код: скачать