a QR-code sized implementation of ZZT Play, which you may know from the ZZT Hall of Music.
-
I designed this because I wanted a program I could print on a business card, and SArpnt found some clever ways to shrink it even further. The version on this page is commented, the version in the QR code is minified.
+
I designed this because I wanted a program I could print on a business card, and SArpnt found some clever ways to shrink it even further. The source on this page is commented, the source in the QR code is minified.
paste ZZT music code in this box, then click the button to #play!
012456789: play one of various percussion effects. note that there is no effect 3.
+
x: rest for the length of a note.
+
-+ change octaves. default is the 4th octave, the one containing middle C.
+
whqistj: change note length to whole, half, quarter, eigth, sixteenth, thirtytwoth, or sixtyfourth. default is t.
+
3: cut the current note length into triplets. for instance, q3ceg would play three notes that are each 1/3 the length of a quarter note.
+
.: dotted note. increases the current note length by 50%. for instance, q.c would play a note that lasts 1.5 times a quarter note.
+
@: reset octave and note length to defaults.
+
+
+extended commands: this stuff wasn't in ZZT!
+
+
;: comment. everything from a semicolon until the end of the line is ignored. you can put the name of your song in here!
+
znn: select track. you can use this to play two or more tracks at once! so for instance, z00c z01+c would play an octave chord. tracks greater than 15 are reserved for internal use.
+
unnn: set tempo in beats per minute. for historic reasons, u137 is the default.
+
vnn: set volume, from 00 to 99. this scales exponentially: 40 is the default, then 45 is double that, then 50 is double that, etc.
+
onn: set octave, from -9 to 99, but you should really only use 00 thru 08. default is 04.
+
+
+not implemented:
+
+
loops! I'm thinking of implementing something brainfuck-esque so you can make turing machine music... we'll see.
+
there's a known bug where you can't play two percussion effects on different channels at the same time. but like, if I hadn't told you, I don't think you would have noticed.
+
change tuning! currently this is tuned to A440 but ZZT is actually slightly out of tune and it would be cool to replicate that.
+
slides and bends. ZZT Ultra has these and I could probably figure them out but I'd have to rework it to fit in the qr code.
+
compression: maybe I could rewrite this whole thing to use uppercase letters only so it fits in the QR alphanumeric mode? I'd have to escape every punctuation mark though. might experiment with this later.
+
\ No newline at end of file
diff --git a/static/qrplay/index1.html b/static/qrplay/index1.html
new file mode 100644
index 0000000..0dda4b9
--- /dev/null
+++ b/static/qrplay/index1.html
@@ -0,0 +1,101 @@
+
+
+
+ qrplay
+
+
+
+
+
+
qrplay by nycki and SArpnt
+
a QR-code sized implementation of ZZT Play, which you may know from the ZZT Hall of Music.
+
+
I designed this because I wanted a program I could print on a business card, and SArpnt found some clever ways to shrink it even further. The version on this page is commented, the version in the QR code is minified.
+
+
paste ZZT music code in this box, then click the button to #play!
'Solfeggettio in C Minor by JS Bach
+@i-e!ce!g+ce!dc-bgb+dgfe!de!
+@ice!g+ce!dcdc-bagfe!d
+@ie!ce!g+ce!dc-bgb+dgfe!d
+@i+e!ce!g+ce!dcdc-bagfe!d
+@i+e!c-ge!c++c-ge!a!--fa!+cfa!+ce!
+@i+d-b!fd-b!++b!fdg--e!gb!+dgb!+d
+@i+ge!dc-ge!dh.c
+
+
+
+
for security reasons, your phone probably won't open these as links. you'll have to copy and paste the text into your browser's uri input.
+
+
+
\ No newline at end of file
diff --git a/static/qrplay/min.html b/static/qrplay/min.html
index fcc4bdb..512244e 100644
--- a/static/qrplay/min.html
+++ b/static/qrplay/min.html
@@ -1 +1,64 @@
-