মোজার্ট গল্ফ - মিনি "রন্ডো"


13

স্ট্যান্ডআউটে "মোজার্ট - আল্লা টারকা" আউটপুট ("রেফারেন্স বাস্তবায়ন" এর নমুনা দেখুন)

সংশ্লেষী এবং সংগীতকে কীভাবে ন্যূনতম আকারে প্যাক করা যায় তা চেষ্টা করার চেষ্টা করুন।

প্রয়োজনীয়তা:

  • খাওয়ানোর জন্য উপযুক্ত ফর্ম্যাট aplay -f cd(স্বাক্ষরিত 16-বিট লিটল এন্ডিয়ান, 2 চ্যানেল);
  • পুরো সংগীত বাজানো উচিত (কোনও স্কিপড নোট বা অংশ নয়, কমপক্ষে নমুনা প্রোগ্রামের চেয়ে কম নয়), পলিফনি যদিও প্রয়োজন হয় না;
  • না শুধু কল করতে পারি /usr/bin/timidity, /usr/bin/soxবা ওই জাতীয় কিছু (যেমন একটি বিশেষ গান মডিউল ইনস্টল করতে প্রয়োজন);
  • নেটওয়ার্ক অ্যাক্সেস করতে পারে না বা ধরে নেওয়া যায় না যে স্থানীয়ভাবে সংগীত উপলব্ধ;

পার্সেবল স্কোর সহ "রেফারেন্স বাস্তবায়ন": https://gist.github.com/vi/5478693
(ওল্ড নমুনা পার্ল প্রোগ্রাম: https://gist.github.com/vi/5447962 )


আপনার কাছে শীট সংগীতের কোনও লিঙ্ক আছে?
beary605

বর্তমানে নয়, আমি শোনার মাধ্যমে এবং পরীক্ষার ও ত্রুটির মাধ্যমে নমুনা প্রোগ্রামটি টাইপ করছিলাম। এখন খুঁজছি ...
vi।

উদাহরণস্বরূপ, এটি
vi।

এছাড়াও, আমি ধরে নিলাম আপনি এটি ইতিমধ্যে বুঝতে পেরেছেন, তবে প্রত্যেকে বর্গাকার তরঙ্গ ব্যবহার করবে।
পিটার টেলর

2
দ্রষ্টব্য: লিঙ্কযুক্ত স্কোরের ব্যবস্থাটি যে কেউ কেবলমাত্র একটি ভয়েস দিয়ে এটি বাস্তবায়নের চেষ্টা করছে তাদের পক্ষে যথেষ্ট অকেজো। আমি বিভিন্ন এমআইডিআই ফাইল ডাউনলোড করেছি এবং তারা সমস্ত নোটের সাথে একমত নয় - তারা একই কীতে থাকতে পারে তবে 4 টি সেমিটোন দ্বারা কিছু নোটের সাথে একমত নয়! এটিকে একটি সুনির্দিষ্ট সমস্যা হিসাবে গড়ে তোলার জন্য এটিতে একটি একক ক্যানোনিকাল স্কোর প্রয়োজন (সাধারণত কিছু সহজে পার্স করা ফর্ম্যাটে, যাতে প্রয়োগকারীরা ট্রান্সক্রিপশন ত্রুটিগুলি প্রবর্তন না করেই তাদের প্রয়োগের জন্য সুবিধাজনক বিন্যাসে রূপান্তর করতে পারে)।
পিটার টেলর

উত্তর:


11

পলিফোনিক, হাস্কেল, 2826 3177 4719

অডিও আউটপুট: https://www.rodbox.com/s/nba6489tfet740r/hs-golf-turca.ogg

বৈশিষ্ট্য:

  • সমস্ত নোট থেকে ডান হাত । আমি অবশ্যই বাম হাতও যোগ করতে পারতাম (এটা করো).
  • স্ট্যাক্যাটো নোট ইত্যাদির যথাযথ ভাষণ
  • গতিশীলতার সাথে যুক্তিসঙ্গত সুন্দর শব্দ। কেবলমাত্র সহজ ভলিউম সংশ্লেষণ নয়, আক্রমণ আক্রমণ এবং কৃত্রিম সামগ্রীর যথাযথ আকারে প্রেরণা,যেমন আপনি একটি বাস্তব পিয়ানো পেতেআসলে, বরং আরও ... আরে এই টুকরাটি তুর্কি জ্যানিসারি ব্যান্ডের অনুকরণ করার কথা , তাই না?
  • প্রতিধ্বনি। আশ্চর্যরকম দুর্দান্ত শোনাচ্ছে না, তবে খুব খারাপও নয়।
  • গতিশীল সংকোচনের। জিজ্ঞাসা করবেন না ...
  • ফলাফল আউটপুট। এটি এক ধরণের হাস্যকর বিষয়: যথাযথ 16-বিট রেজোলিউশনের সাথে, কেউই কোয়ান্টিশেশন শৈল্পিকাগুলি খুব কমই শুনতে পাবে, তবে বাইনারি লাইব্রেরি সহ এড়াতে আমি কার্যকরভাবে কেবলমাত্র 7-বিট রেজোলিউশন ব্যবহার করি, যা আমি ASCII আউটপুট দিয়ে কভার করতে পারি। এই জায়গাটি নিজেই বরং উচ্চস্বরে, কোনও গোলমাল করছে না ...
  • পলিফোনিক কর্ডগুলির বহুবিধ গণনা।

import Control.Parallel
main=mapM_ (\(d,s)->(\p->p>>p>>p>>p).putChar.toEnum.round.(+d).(*62).min 2.abs$s+1).zip(dθ 1).lim.rev.hgp 9. pl 9e6 (\_->0) . ä
 $[mT%8.1,t2%16.1,t3(∡7)%8,t4%8,t5%16,t3(∡7)%8,mT%8.1,t2%16.1,t3(tev arp8)%8,cdT%99] >>= \e->[e,e]
mM=ä[2-^8,1-^8,0-^8,1-^8,3-^4]
cM=ä[7-^20,8-^20,9.^4,F[(7,0),(6,1)](map((∡2).(.^4))[6,5,6])%0.75]
cMv=ä[10-^2,8.^4,9.^4,hom(.^4)[[24,5],[23,8,12],[22,4],[21,6,9],[22,3],[19,5,8],[20,4],[18,6,9],[17]]#7&(-14)%2.5,tr 2%0.4,1-^9,2-^12,1-^1]%4.5
 ⋎(ä[6-^4,lp(8.^4∡3)%(3/4),sil%2,lp(5.^4∡3)%h,lp(5.^4∡2)%h,1-^1∡7]&(-14)#7#4%5)
mMa f=ä[(1-3*f).^4,lp(5.^4∡(-2-f))%0.75,mMa f%1.5,mMa(f*2)%h,mMa f%1]#7
mTm=ä[mM%1,mM&2%1,mM#4&4%h,mM&7%h,mM&7%1,8.^4,ä[10.^4]%0.2,cM%1,cM%1,cM%0.85,ä[4.^4∡2,5.^2]#6#4%2]#7
mT=p$ä[mTm%8.1⋎(ä[sil%h,mMa 0%4,mMa 1%2.75,2.^4,(-2)-^2]&(-7)%8)]
m2=ä[ä(map((∡2).(.^4))[1,2,3,3]++[es[6,5,4,3]%h]++[0-^2∡2])%2
 ⋎(ä[sil%h,1.^4,8.^4,3.^4,10.^4,5-^2]⊿1.3&(-14)%2)]
t2=p$ä[m2&2%1.8,0-^5,m2&2%2,m2#7%1.8,(-2)-^5,m2#7%2,mT%3.5,cMv]
m3=ä$[3-^4,4-^4,5-^2]++map(-^4)[3,4,5,4,3,2,1,2,3,4,2,0]
m3a=ä[(ä[sil%(1/8),lp(8.^4)%1]:zw(\d n->ä[sil%(d/24),n-^1]⊿cos d)[0..][1,3,5],s),m3a%1]
m3ra=(map((%1). \[a,b,c]->es[a,c,b,c,a,c,b,c])[[1,3,5],[1,4,6],[-2,0,5]]!!)
t3 o=ä[ä[o$ḋ[m3%4,m3%2.5,1-^4,4-^4,2-^4,0-^4]&(-2)%7.5,1-^2∡7]%8
 ⋎(ḋ[sil%(3/8),m3a&4%2,m3a%h,m3a#4%h,m3a&1%1,m3a&4%2,m3a%h,m3a&1%(5/8),5-^2]&(-18)%8)]
mQ=es[2,1,0,2]
m4=mM⇆4
i4 e=ḋ[m4⇅11%h,m4⇅9%h,mQ⇆4⇅8%h,F[(5,e),(4,1)][mQ⇅7%h,mQ⇅5%h,m4&5%h,m4&7%h]%2,es[10,9,10,9]#2%h ]
mla[b,c,d]=ä[b-^4,lp(c-^4⋎(d-^4))%1]%1
i4a=ḋ[sil%h,ä(map mla[[1,3,5],[2,4,5],[1,3,5],[0,2,5]])#5%4,ä(map mla[[1,3,5],[2,5,7],[2,6,8]])#4%3,5-^2⋎(7-^2)]
t4=p$ä[ḋ[i4 1%4,i4 0%2.5,ä[mQ⇅6%h,mQ⇅4%h]#4#2%1,3-^2]%8⋎(i4a&(-9)%8)]
mlaa=mla[1,3,5]
m5=ä$map(-^8)[1..4]
i5=ḋ[m5⇅6%h,m5%h,m5&4%h,m5⇅9%h]
i5d=hom(-^4)[[2],[4,5],[0],[4,5]]%1
i5a=ḋ[sil%h,mlaa,i5d,mlaa,mla[-2,0,4],mlaa,i5d,sq 4[1,-1,-3,-2,-6,1]%2]&(-7)
t5=ḋ[ḋ[i5%2,i5%1.5,ä[8-^4,9-^4]#1%h,i5%2,ḋ[es[5,4,3,2,3,5,1,3,2,4,0,2]%2]%1.5,1-^2]%8⋎(i5a%8)
 ,p(ä[ä[i4 1%4,es[3,2,3,1,4,3,4,3,4,3,4,3]#2#1&7%1.5,m5⇅13%h,mQ⇅8%h,m5&7%(3/8),6-^8,mQ⇅7#5%h,6-^2]%8
 ⋎(ä[i4a%3.5,F[(1,-1),(7,0),(6,1)][hom(-^4)[[-2],[3,5],[2,5],[1,5]]%1]%1,mla[-3,1,4],mla[-3,2,4],hom(-^4)[[-2],[1,3],[-2],[2,4],[1,3]]%1.5]&(-9)%8)])%8]⊿0.8
am d=3-^d∡2∡5
amf=1-^υ∡2⋎(5-^1∡3)
vh v(c,d)=lp(ä[v-^12]:map(\t->ä[t⊿0%0.04,t%d])c,d)
aam=vh 11.am
aar=ä[1-^10,4-^10,6-^1]&4
eam=vh 10.em
dm=6-^1∡2⋎(11-^1)
em d=5-^d∡2⋎(9-^1)
cdM=ḋ[4-^8,3-^8,2.^8,3.^8,cdM%1]
cdT=ḋ[ä[3-^(8/3)∡7,10-^6,am 1,am 1,cdM&7%1,dm,aam 4.05%1,em(4/3),12-^4,am 1,am 1,cdM&7%1,dm,aam 1%1,eam 4%1]%12.5⋎(ä(sil%(11/24) : map((%1).(m3a&))[4,4,4,0,4,1,4,4,4,0,4,1])&(-18)%13.1)
 ,p(ä[ä[ä[8-^2]⊿2%h,aar%(3/8),10-^8,aar%1,aar%1,cdM&7%1,11-^1,vh 11(10-^4)%1,9-^(4/3)]%7⋎(ä(map m3ra[0,0,0,0,1,0,2])&(-7)%7)])%6.75
 ,ä[p(ä[12-^4])%(1/4),am 1,am 1,cdM&7%1,dm,aam 1%1,eam 4%1,amf,ä[3-^4,1-^υ,5-^4,1-^υ,3-^4,1-^4,3-^4,1-^4,5-^4,1-^2]%3.75∡7,ä[amf∡(-14)]%0.56,ä[amf∡(-14)]⊿0.8%1]%12⋎(ä(sil%(1/8):map((%1).(m3a&))[4,4,4,0,4,1,4,4,4]++[m3a&4%h,m3a&4%h,5-^(8/5)])&(-18)%12)]
type D=Double
data F=N Int D|F[(Int,D)][([F],D)]
φ⇸F a fs=F a$map(\(f,d)->(map φ f,d))fs
_⇸N i d=N i d
i##c
 |i<1=(i+7)##c/2
 |i>7=(i-7)##c*2
 |1>0=1.06**(c i+case i of{1->0;3->3;4->5;5->7;6->8;7->10;_->fri i})
pl dur acc(N n v)=(\ω η->map(sin.(\x->x+τ x^2/η). \i->v*exp(-i*η/s)*τ(i*v)*(0.8-τ((i-dur)/90))*sin(i*ω))[1..dur])(n##acc/15.5).exp$fri n/9
pl dur acc(F accm fs)=pl' dur (foldr(\(q,m)f i->if q==i then m else f i)acc accm) fs
pl' dur _ _|dur<=0 = []
pl' dur _ []=map(\_->0)[1..dur]
pl' dur acc((f,dr):fs)|n<-min dr dur=trans(round n)(foldr1(\a b->sum a`par`sum b`pseq`zw(+)a b)(map(pl(n+99)acc)f))$pl'(dur-dr)acc fs
trans n a b|(f,ol)<-splitAt n a,(or,l)<-splitAt 99 b=f++zw(+)ol or++l
fri=fromIntegral
F a fs#q=F((q,1):a)fs
N i d&n=N(n+i)d
f&n=(&n)⇸f
N i d⇅n=N(n-i)d
f⇅n=(⇅n)⇸f
N i d⇆_=N i d
F a fs⇆n=F a.reverse$take n fs
N i d⊿v=N i$d*v
f⊿v=(⊿v)⇸f
p=(⊿0.3)
n.^q=([F[][([N n 1],s/2/q)]],s/q)
n-^q=([N n 1],s/q)
(l,d)⋎(r,_)=(l++r,d)
(l,d)∡j=(l++map(\h->ä[h⊿0%0.01,h&j%100])l,d)
f%t=([f],s*t)
tr n=F[]$cycle[n-^15,(n+1)-^20]
ä=F[];ḋ=F$zip[6,3,7][1,1,1]
lp=ä.repeat
sil=N 0 0
tev f(l,d)=(map f l,d)
h=1/2
υ=4/3
s=4e+4
sq d=ä.map(-^d)
es=sq 8 
arp8 n@(N i v)=F[][([n,ä[n⊿0%(1/8),n&7⊿(v/υ)%100]],s)]
arp8 f=arp8⇸f
hom q=ä.map(foldr((⋎).q)$sil%1)
dθ l=2*asin l/pi:dθ(abs.sin$l*1e+9)
rev ls=(\z->z id(foldr(\m sg->(\v->z(*v)(map(*0)[0..m*14349]++sg)sg)$abs(cos$(m*3)^2)-0.6)ls.take 9$dθ 1)ls)$(.lwp 3 0).zw.((+).)
lwp ω c(x:l)=c:lwp ω((x+c*ω)/(ω+1))l
lwp _ _ _=[]
hgp ω l=zw(-)l$lwp ω 0 l
lime e(x:l)
 |abs(e*x)>1,e'<-((e*8+abs(1/x))/9)=e':lime e' l
 |1>0=e:lime((e*49999+1)/5e4)l
lime _[]=[]
lim ls=zw(\a u->τ$a/9+max(-2)(min 2$a*u)/6)(map(*0)[0..500]++ls).lwp 9 0.lime 1$hgp 9 ls
zw=zipWith
τ=tanh

$ করতে
ghc -o বিন / def0-HS def0.hs -O2 -fllvm -threaded
সংকলন প্রধান (def0.hs, def0.o) [1 1]
সংযোগস্থাপন বিন / def0-HS ...
সময় SH -c 'বিন / def0-hs + RTS -N4> hsoutp.pcm '
189.39user 138.41 সিস্টেম 2: 06.62 এলপাস्ड 258% সিপিইউ (0avgtext + 0avgdata 6440240 ম্যাক্সারসিডেন্ট) কে 0
ইনপুট + 0 আউটপুটস (0 মজোর + 403037 মিমি) পৃষ্ঠাফ্ল্যাপসম্প্লে -স্লাইপসাইক্লিক
-১০ সেপ্টেম্বর -ar 44.1k -ac 2 -i hsoutp.pcm hsoutp.ogg


এখানে আংশিকভাবে অমীমাংসিত ও মন্তব্য করা সংস্করণ: https://gist.github.com/leftaroundabout/5517198


ভাল চেষ্টা. 2970 ইউটিএফ -8 বাইট, 2826 কোড পয়েন্ট। যেহেতু এটি <600 পাইথন সংস্করণটির প্রতিযোগী নয়, এটি ভাল শব্দ / পলিফনি (উদাহরণস্বরূপ এটি 5000 বাইটের অধীনে রাখা) এর দিকে আরও ভালভাবে প্রস্তুত করা যেতে পারে।
vi।

1
@Vi। আপনি যদি "প্রোগ্রামের দৈর্ঘ্য" হিসাবে বিবেচনা করেন যখন ইউটিএফ -8 এনকোড করা হয়েছে তখন বাইট সংখ্যাটি মনে হয় তবে আমি মনে করি আপনার প্রশ্নের মধ্যে তা উল্লেখ করা উচিত। কেবল পরিষ্কার করার জন্য, যেহেতু কিছু লোক এই সংজ্ঞাটি ব্যবহার করে না (যেমন প্রতিটি এপিএল প্রোগ্রামার ...)
বাকুরিউ

@ বাকুরিউ হ্যাঁ, ঠিক LOL।
সোহম চৌধুরী

সেটা ছিল উন্মাদ! এই প্রোগ্রামটি কীভাবে কাজ করে আমি কিছু ধারণা পেতে চাই love
shiona

@ শিওনা: এটি আসলে অপ্রচলিত নয়, টাইপ স্বাক্ষরের সাথে হাস্কেল এবং বেসিক ডিএসপির সাথে পরিচিত কারও পক্ষে এটি বোঝার পক্ষে যথেষ্ট সহজ হওয়া উচিত।
পাল্টা ঘড়ির

7

পাইথন, 331 + 286 = 617 (প্রতি নোটে 0.548 বাইট)

আমার সমাধানটিতে একটি ডেটা ফাইল এবং একটি অজগর স্ক্রিপ্ট ব্যবহার করা হয়েছে। স্ক্রিপ্টের ইনপুট হিসাবে ডেটা ফাইলটি ব্যবহার করা উচিত। আমি aplay নেই, কিন্তু এটি কাজ করে যখন আমি কাঁচা ডেটা যেমন আমদানি Audacity স্বাক্ষরিত 16 বিট পিসিএম সঙ্গে, অল্প endian, এবং 2 চ্যানেল।

ডেটা ফাইলটি 331 বাইট। এখানে একটি অজগর লিপি রয়েছে যা এটির ফলাফল দেয়:

import sys
sys.stdout.write('\x08\x1c\x9d\xb9"\xc7\xea\xf0\xb7)\xc0D!u\x0bB~\'\x91S\xb2\x0c\xe9\xf8T;\xfd\xc13\xcf\xb9\xa6r>\xbc\xc5\xb4\xbb\xf8\xa4\x9a\x05H\xa0\x1d\x0eIq\t\\+\t\xdbn\x03\xc3&\x98\xa0\x11\xc5\xaa\xef\xbcSR^\x13\xe7\xc7\x0e\xc0\xa9^\x91Z\xfc\x02\x11\xb9\x1bE\xfc/=\xb8\xaf5<\x12\xa2\xc4\x02\xec\xdcO\xc2a\x04<Q\xfd\xe9L\xbc\xab%\xf5wX1F\xa6\x88\xddP\xfec(_#\xb4\x0bN\xba&m\xe3\xa4\x08Q\xdb\xd9\xf3<Q\xc6\xf6\x0e\xd7\xacd\x1f"g\xce\xae.\xb0\x90{|\x04\xc5X\xe6x>\xefE\xc8\xb0\xd2?N\x83?\x04\x86"a\xcc\x9b\x8fq\x9c\xce\xa2\xb6f\x9ab\x92\x9e:\xc0S\xcd\th\xb1\x87\xecT\x9d\xf4\n\xaf\xc9$`E5\xcc\xc5\xa0m\xcc\n8\xf8:\x03\xf5\x02H\xf3k\xe5\x86\xa64\x90\xa2\xc2w\xfa\xb7\xc0\x1e*2\x93\xca\x12\xe3^!\xd5yQ,LXW\xb4\x96D\x8dB\x9c`\xbf\x96`s;\xb7}\xeb\x8c\xebI\xa0o\x00\x08\xfe\xf1\xd2M3}\x8e\xd0\xda\x97\'\xca\x83-\x14\xda\xa1ET\n\xe8\xc7@\x1c\xa2a\xbb\xa7\x1b\x014\xdcz\xc7\xa6\xc4\x1d\x18\x04\r\xb1\x9e\xe3\xd0\x18<\x98`N?a\xe4\x8e\x9d\xd5\r\xe7Z[\xf4\xed\xf1PQ')

অজগর লিপিটি এখানে:

import sys
k=0
m=185
p=[]
q=[]
for c in sys.stdin.read():k=k*256+ord(c)
while k:
    v=k%m;k/=m
    if v<184:q+=[v]
    elif v-m+1:q+=p[v-184]
    else:m+=1;p+=[q];q=[]
for n in q:r=[1,2,3,4,6,8,12,15,16][n%9]*2000;sys.stdout.write(''.join(chr(int(i*1.06**(n/9)/4.3)%99)for i in range(r*3))+'\0'*r)

দ্রষ্টব্য: আপনি যদি উইন্ডোজ চালিয়ে যাচ্ছেন তবে -uস্টিডিন এবং স্টাডআউট উভয় স্ক্রিপ্টের জন্য স্যুইচটি ব্যবহার করুন বাইনারি ডেটা নিয়ে।


সাবাশ. 331 + 286 + 10 বিবেচনা করে (ফাইল এবং স্ক্রিপ্ট একসাথে বেঁধে রাখার জন্য) == 627.
vi।

এর os.read/writeপরিবর্তে আপনি কিছুটা ছোট করতে পারেন sys.stdin/stdout
বাকুরিউ

সুন্দর সংক্ষেপণ প্রকল্পের জন্য +50 + এন্ট্রপি এনকোডিং ব্যাকরণ ব্যাকরণ ভিত্তিক পদ্ধতির ব্যবহার আমি দৈর্ঘ্য বিবেচনায় না নিয়ে নোটের মানগুলিতে এই সংক্ষিপ্তটি পেতে পারি না।
পিটার টেলর

আপনি কীভাবে ডেটা সংকুচিত করবেন তা বর্ণনা করতে পারবেন? আপনি কীভাবে এটি এত ছোট পেয়েছেন তা জানতে আগ্রহী।
স্যার_লাগসালোট

1
@ স্যার_লাগসালোট: এটি মূলত একটি নেস্টেড / পুনরাবৃত্তির অভিধান, অর্থাত্ আপনার নোটগুলি সমন্বিত মোটিফগুলি রয়েছে (এক নম্বরে পিচ এবং দৈর্ঘ্য এনকোডড), তারপরে আপনার কাছে থিম রয়েছে যাতে এই মোটিফগুলি এবং / অথবা একক নোট রয়েছে, তারপরে থিমগুলি সমন্বিত অংশগুলি রয়েছে .. আমার প্রোগ্রামটি মূলত একই নীতিটি ব্যবহার করে (পরিবহন, বিপর্যয় ইত্যাদি দ্বারা প্রসারিত), কেবল কোনও শক্ত বাইনারি ফাইলের মধ্যে সংকুচিত হয় না; আমি কেবল তার পরিবর্তে সবকিছু শীর্ষ স্তরের ভেরিয়েবল সংজ্ঞা তৈরি করেছি।
পাল্টা

4

গল্ফস্ক্রিপ্ট (129 + 369 = 498 বাইট)

প্রোগ্রাম এবং ডেটা ফাইল উভয়েরই অরক্ষিত অক্ষর অন্তর্ভুক্ত রয়েছে, তাই আমি বেস 64 এবং এক্সএক্সডি উপস্থাপনা দেব।

প্রোগ্রাম (129 বাইট):

MjU2YmFzZSA2OWJhc2VbMDpOXS8oNDMse1xbMSQpXS9cMiQ9Kn0vXCwpey19KyUuLDIvL3ppcHt+
TisyNSU6Tid7goqSm6SuuMPP2+j2/0FFSU1SV1xcYWdtdCc9OmY7MTc2MCosey41MD4qZioxNy8u
Li59JScnOm4rcHV0c30v

0000000: 3235 3662 6173 6520 3639 6261 7365 5b30  256base 69base[0
0000010: 3a4e 5d2f 2834 332c 7b5c 5b31 2429 5d2f  :N]/(43,{\[1$)]/
0000020: 5c32 243d 2a7d 2f5c 2c29 7b2d 7d2b 252e  \2$=*}/\,){-}+%.
0000030: 2c32 2f2f 7a69 707b 7e4e 2b32 3525 3a4e  ,2//zip{~N+25%:N
0000040: 277b 828a 929b a4ae b8c3 cfdb e8f6 ff41  '{.............A
0000050: 4549 4d52 575c 5c61 676d 7427 3d3a 663b  EIMRW\\agmt'=:f;
0000060: 3137 3630 2a2c 7b2e 3530 3e2a 662a 3137  1760*,{.50>*f*17
0000070: 2f2e 2e2e 7d25 2727 3a6e 2b70 7574 737d  /...}%'':n+puts}
0000080: 2f                                       /

ডেটা (369 বাইট):

LoDJFvCRQqNdL7+JDvjtSkX4HBS2FwgvjfdxAHrF1/DcMIBtG/g7QZBLLYHpzgaWaM1TaHwbtxG+
l1lqsL3A8nuprtpPI20YbHm3lf7NxmYNdEIMTlhwTG+TlSn802DzN3YgIwbcKbtty9gWmF2nVS55
iJHQZd4HCcokoLRwH1g2XqP8Yo5xj5/YQm9DH85obUv47mii5n+PwsoJZ6yaz4eSpGps6dQMl+Pa
YP/WC6cVDBBGs3vq5cGe51H2u7oVArFuHrsI2sHkGNYHlhWudKn5RRvJhe3sxfrtQE/MekKRuZBt
f4B9qdyss66vFipSi1zf2MXF9A/CzwvMQ/t9PEtxw8kzxxikp2Ek3kc9TiamLl+iG2vjdWp84JzY
Mg6cE+3bFI4kVdn+d1NEnBR/S9HMnksgEc9sdAcyWsbSaGjwetwGTr7UXkpKO9aHF01D2i5pCO40
/keR0+a+NsBEOXZfatpXav44AJjalywtLeWu

0000000: 2e80 c916 f091 42a3 5d2f bf89 0ef8 ed4a  ......B.]/.....J
0000010: 45f8 1c14 b617 082f 8df7 7100 7ac5 d7f0  E....../..q.z...
0000020: dc30 806d 1bf8 3b41 904b 2d81 e9ce 0696  .0.m..;A.K-.....
0000030: 68cd 5368 7c1b b711 be97 596a b0bd c0f2  h.Sh|.....Yj....
0000040: 7ba9 aeda 4f23 6d18 6c79 b795 fecd c666  {...O#m.ly.....f
0000050: 0d74 420c 4e58 704c 6f93 9529 fcd3 60f3  .tB.NXpLo..)..`.
0000060: 3776 2023 06dc 29bb 6dcb d816 985d a755  7v #..).m....].U
0000070: 2e79 8891 d065 de07 09ca 24a0 b470 1f58  .y...e....$..p.X
0000080: 365e a3fc 628e 718f 9fd8 426f 431f ce68  6^..b.q...BoC..h
0000090: 6d4b f8ee 68a2 e67f 8fc2 ca09 67ac 9acf  mK..h.......g...
00000a0: 8792 a46a 6ce9 d40c 97e3 da60 ffd6 0ba7  ...jl......`....
00000b0: 150c 1046 b37b eae5 c19e e751 f6bb ba15  ...F.{.....Q....
00000c0: 02b1 6e1e bb08 dac1 e418 d607 9615 ae74  ..n............t
00000d0: a9f9 451b c985 edec c5fa ed40 4fcc 7a42  ..E........@O.zB
00000e0: 91b9 906d 7f80 7da9 dcac b3ae af16 2a52  ...m..}.......*R
00000f0: 8b5c dfd8 c5c5 f40f c2cf 0bcc 43fb 7d3c  .\..........C.}<
0000100: 4b71 c3c9 33c7 18a4 a761 24de 473d 4e26  Kq..3....a$.G=N&
0000110: a62e 5fa2 1b6b e375 6a7c e09c d832 0e9c  .._..k.uj|...2..
0000120: 13ed db14 8e24 55d9 fe77 5344 9c14 7f4b  .....$U..wSD...K
0000130: d1cc 9e4b 2011 cf6c 7407 325a c6d2 6868  ...K ..lt.2Z..hh
0000140: f07a dc06 4ebe d45e 4a4a 3bd6 8717 4d43  .z..N..^JJ;...MC
0000150: da2e 6908 ee34 fe47 91d3 e6be 36c0 4439  ..i..4.G....6.D9
0000160: 765f 6ada 576a fe38 0098 da97 2c2d 2de5  v_j.Wj.8....,--.
0000170: ae                                       .

ব্যাখ্যা

আমি 0 টি থেকে 24 পর্যন্ত মান সহ একক স্ট্রিংয়ে (আপডেট হওয়া) সরবরাহিত স্কোরকে (তার পরে আরও) ম্যাঙ্গেল করেছি note নোটের দৈর্ঘ্য প্রথমে আসে; তারপরে নোট মানগুলি, 25 টি মোড এবং পার্থক্য-এনকোডযুক্ত উপস্থাপন করবে। পার্থক্য এনকোডিংয়ের কারণটি হ'ল প্রতিস্থাপনে পুনরাবৃত্তি হওয়া প্যাসেজগুলি একই ক্রমে হ্রাস পাবে এবং সংকোচিত হতে পারে।

আমি তখন এটি স্ট্রিং-টু-গল্ফস্ক্রিপ্ট সংক্ষেপণ প্রোগ্রামের মাধ্যমে চালিয়েছিলাম যা আমি আগে উল্লেখ করেছি (এবং যা এই গল্ফের প্রতিযোগিতামূলক হওয়ার জন্য আমি উন্নত হয়েছিল) যা ডাটা ফাইলটি পাওয়ার জন্য, যা প্রোগ্রামটির প্রথম অংশটি সংকুচিত হয়:

256base 69base[0:N]/(43,{\[1$)]/\2$=*}/\,){-}+%

এটি এমন এক প্রকারের সাধারণ ব্যাকরণ সম্প্রসারণ যা ট্যাগ অনেক প্রশ্নের দিকে যারা তাকিয়ে থাকে তার সাথে পরিচিত ।

আমি তারপরে এই স্ট্রিংগুলিকে জোড়ায় বিভক্ত করে জোড়া [length note]দিয়ে পুনরাবৃত্তি করব। মুদ্রণযোগ্য অক্ষরগুলি একটি যাদু স্ট্রিং থেকে আসে যার মধ্যে নোটগুলির জন্য ফ্রিকোয়েন্সি প্যারামিটার থাকে: আমি গল্ফস্ক্রিপ্টের অন্তর্নির্মিত ট্র্যাঙ্কেশন মোড 256 সংখ্যার অ্যারে ব্যবহার করছি যা ত্রিভুজের তরঙ্গ তৈরি করতে স্ট্রিংগুলিতে রূপান্তরিত হয় * সুতরাং বেসের ফ্রিকোয়েন্সি 22050/256 Hz হয়। আমি পূর্ণসংখ্যার অনুপাত খুঁজতে একটি প্রোগ্রাম লিখেছিলাম যা একটি ভাল টিউনিং দেয়; ম্যাজিক স্ট্রিংয়ে সংখ্যক থাকে এবং ডিনোমিনেটর 17 সমস্ত নোটের জন্য একই। গড় সুরের ত্রুটি প্রায় 3.4 সেন্ট।

নোট দৈর্ঘ্য যেমন হয় প্রতিনিধিত্ব করা হয়, এবং স্কোর আগের সংস্করণ তুলনায় অনেক বেশি প্রশংসনীয়। যেমনটি আমার সন্দেহ হয়েছিল, গোলটি স্ট্রিংয়ে অযৌক্তিকতা বাড়িয়েছে এবং সংক্ষেপিত ডেটা ফাইলটি 30 বাইট দ্বারা সংক্ষিপ্ত করে দিয়েছে, অনুসন্ধান অ্যারে সংরক্ষণের কথা উল্লেখ না করে। তবে, এখনও কিছু প্যাসেজ রয়েছে যা আমি সন্দেহজনক বলে মনে করি:

72 13

অথবা

71 9
69 2
71 2

স্কোরের বারের চেয়ে আরও বেশি বারের মতো ক্রোশেটের ষষ্ঠটি বার দিন এবং

85 9
85 4
85 24
85 23

অথবা

83 18
88 7
85 24
85 23

বারগুলির একটি অবিচ্ছেদ্য সংখ্যা, তবে কিছু সন্দেহজনক অফসেট সহ।

প্রোগ্রামটি কিছুটা ছোট হতে পারে। আমি ইচ্ছাকৃতভাবে মৃত্যুদন্ডের সময়ের জন্য স্বল্পতার সাথে বাণিজ্য করতে বেছে নিয়েছি। আমি ডারেন স্মিথের কাছে জমা দিয়েছি এবং যা আমি বিশ্বাস করি যে তিনি কোনও সময়ে প্রকাশের পরিকল্পনা করছেন, তার বর্তমান সংস্করণটি আমার কম্পিউটারে 15 মিনিটেরও কম সময়ে চলে the যদি আমি putsপ্রতিটি নোট এটি তৈরির পরে না করি তবে এটি অনেক ধীর গতিতে চলে।

* আমি এখানে স্বীকার করে নিয়েছি যে বর্গাকার তরঙ্গ ব্যবহার করা প্রত্যেকের সম্পর্কে আমার মন্তব্যটি ভুল ছিল।


গল্ফস্ক্রিপ্ট কীভাবে সঠিকভাবে চালানো যায়? আমি base64 -d <<< 'MjU2Y.....9Lw==' | গল্ফস্ক্রিপ্ট চেষ্টা করি এবং এটি বলে golfscript:405:in 'scan': invalid byte sequence in UTF-8 (ArgumentError)(অবশ্যই যদি আমি প্রোগ্রামটি ফাইল করার জন্য সংরক্ষণ করি তবে অবশ্যই)
vi।

অপরিশোধিত অ্যালগরিদম ব্যবহার করে এমআইডিআই ফাইল থেকে নোটের দৈর্ঘ্য বের করা হয়েছে (প্লে.পিএলে মন্তব্য দেখুন)) বুদ্ধিমান হওয়ার জন্য আমি নোটগুলির দৈর্ঘ্য ঠিক করব।
vi।

সংক্ষিপ্ত আপডেট। এখন নোটের সর্বনিম্ন দৈর্ঘ্য 1
vi।

যদি আমি অনলাইন দোভাষী ব্যবহার করে চালানোর চেষ্টা করি (সন্নিবেশিত কোডটি দেখতে মনে হচ্ছে 㔲戶獡⁥㌷慢敳せ为⽝㐨ⰴ屻ㅛ⤤⽝㉜㴤紪尯⤬⵻⭽⸥㈬⼯楺筰乾㈫┵为笧誂鮒꺤쎸��䇿䥅前屗慜浧❴㨽㭦∩ĦĂ༃ጔ؏༆ณؕḧ⸘研��⒖✏㰢⭻⩽㐴Ⱚ⹻〵⨾⩦㜱ⸯ⸮╽✧渺瀫瑵絳/) তবে আমি undefined method নীল: নীলক্লাস`
vi এর

1
এবং অনলাইন দোভাষীটিতে এটি চালানোর কোনও উপায় নেই - এটি সময় হয়ে যাবে।
পিটার টেলর

2

x86 মেশিন কোড - 513 বাইট

এটি পুরোপুরি চ্যালেঞ্জটি পূরণ করতে পারে না, যেহেতু অ্যাপলে খাওয়ানোর উপযোগী ফর্ম্যাটে আউটপুট দেওয়ার পরিবর্তে এটি মিডিকে অভিনয় করে।

কার্যকরযোগ্য .COM ফাইল এবং asm উত্স কোড - সংগীতটি শুরু হতে 14 সেকেন্ড পর্যন্ত সময় নিতে পারে। এটিও কিছুটা ধীর গতিতে খেলবে, যেহেতু টাইমার রেজোলিউশনটি সেকেন্ডের 1/18 তম।

ফিবোনাচি কোডিং এবং আগের ডিকোড সংগীতের সমন্বিত একটি অভিধান ব্যবহার করে সংগীতটি 375 বাইটে এনকোড করা হয়েছে ।

সিউডোকোড ডিকোডিং অ্যালগরিদম:

store_pos=0;
if ( !readBit() ){
    note = FibonacciDecode() + 63;
    time = FibonacciDecode();
    store(note, time);
    store_pos++;
} else {
    pos = FibonacciDecode();
    run = FibonacciDecode();
    copy(store_pos-pos,store_pos,run);
    store_pos+=run;
}

সংগীতটি ডিকোড হয়ে গেলে এটি মিডি বন্দরে আউটপুট দেওয়ার একটি সহজ বিষয়।


1
এটি নিজস্ব সংস্থার পরিবর্তে বিদ্যমান সিন্থেসাইজারের (এই ক্ষেত্রে অডিও কার্ডের মধ্যে এমআইডিআই) উপর নির্ভর করে।
vi।

আপনি সিনথেসাইজারটিকে হ্যাক করতে পারেন এবং এটিকে সংশ্লিষ্ট পোর্টে বা স্টডআউট / ফাইলে (ডস বা লিনাক্স সিস্কল ব্যবহার করে) নমুনাগুলি তৈরি করতে পারেন। পৃথক চ্যালেঞ্জ হিসাবে আপনি সম্পূর্ণরূপে পলিফোনিক এমআইডিআই সহ একটি সংস্করণ তৈরি করতে পারেন (এখনও একটি সিওএম ফাইলে সংক্ষেপণ সহ) with
vi।

আমি কেবল চ্যালেঞ্জের 'কমপ্যাক্ট মোজার্ট সংগীত' বিষয়ে আগ্রহী, সংশ্লেষক নয়। আমি এটি পোস্ট করছি কারণ এটি মজাদার এবং চ্যালেঞ্জটি জয়ের চেয়ে অন্যদের কাছে আকর্ষণীয় হওয়া উচিত।
স্যার_লগসালোট

ঠিক আছে. আরডুইনো সংস্করণের জন্য অপেক্ষা করা হচ্ছে ...
vi
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.