open("/dev/dsp","wb"){|h|s=%q{d=["-KQW[UZbgu*HNT+]TNOOOTZ+cZTUUUUUZbagmssUZbagm
ss+wmpgja+KQW[dfnu","-KEKOINV[W*HBH+QHBCCCHN+WNHIIIIINVU[aUUINVU[aUU+YOR[^I+KEK
OXZbW","-W[acg vsc*TZ`+eaaaaa--vucavuca+eadsvs+W[dgvrtc","-K991LIL77777dIIIII--
LKKILKKI+Mad[ ^U+K991LHJK"].map{|l|l.unpack("C*").map{|c|[(c/6-4)*12/7-8,"012
35b"[c%6,1]. hex]}*4};y=32.chr;l="@"+[(m="Jnx4sn3sgd1")+"vnqkc!6sgd2Lnqc4gz
r4bnld;6/Ld s2dzqsg6qd2@bdhud6gdq2Khmf;77/Lds2du4@dqx4gdzqs6oqd2@ozqd4ghl
4qnnl,+Amc 2gdz++2 @udm 4z mc 2gdz 4@+u dm 2zm
c2mz+@stqd+r hmf",m+"E zq sg !6sgd2Sz u4@h nt q4qd hfm r; 6/Ld
s2ldm6sgdhq 2rnmfr6d l 2 @o knx ;77/ Wghkd2 ehdkc
r4zmc4eknn cr,6qnb jr ,2 gh kkr,4zmc 4okz hm r+Rd 2@odz s+2+,6
qd2@odzs6 +sgd2r ntmc+@ hm f+ inx" ," Nn4l nqd3k ds1rhm
r6zmc2rn 4@qqnvr4fqnv,6/Nnq2sgnqmr6hm2@edrs6sgd2fqntmc;77/Hd2bnldr4
sn4lzjd 6Hhr2ak d4@rrh mfr4eknv+Fzq2zr+2+,6ezq2zr,6+sgd2btqr
d+hr+entmc ","Hd4qtkdr3s gd1 vnqkc6vhsg2sqtsg4zmc4fqzbd,6/Amc2lzjdr6
sgd2mz6@s hnmr2oqnud77/ T gd2fk n4@q hdr4 ne6Hh r2qhfg
s4@dntr4 @mdrr,+Amc2v nm+2+6@ cd qr, 2v nm6 +@cdqr2ne+Hh
r+knud" ].map{|a| a ,b,c,e, * f =a. sp lit" +";[a,c
=b+c+f *"2",c ,b+ e+f*"4 "+ ". 8/ /"]*"6/" }.join
.tr(" a-z /","b- za\ n").gs ub (/^/ ," #"<<32)
;c=0;640.tim es{|w|c<1&&(l=~/(@)?(.*?)(\d)/m;($>.<<$1?$2:y+$2).flush;l=$';c
=eval$3);c-= 1;a=[128]*z=1200;4.times{|j|t,n=d[j].pop;f=0.3456*2**(t/12.0-j
/2);(n>0?(d[ j]<<[t,n-1];z):800).times{|i|t>-3&&a[i]+=16*Math.sin(f.*w*z+i)
}};(h.<<a.pack"C*").flush};puts(s.gsub(/./){"!">$&?"#":y}+%(\nopen("/dev/dsp#{"
(c)Y.Endoh2009";'",'}"wb"){|h|s=%q{#{s}};eval(s.split*"")}))};eval(s.split*"")}
Run it under environment where /dev/dsp is available. If you are windows user, you can use cygwin. It often abends on cygwin. Please re-run it until it works.
The structure of the program:
- Lines 1-4: encoded musical score data
- Lines 4-5: score decoder
- Lines 5-17: crypted compressed lyrics data (with timing data)
- Lines 17-19: lyrics decompressor
- Lines 20-21: lyrics player
- Lines 21-23: wave synthesizer
- Lines 23-24: quine
translated from mamememo in Japanese (2009-12-24).