"ট্যাপস" খেলুন


31

আজ, নভেম্বর 11, 2015, মার্কিন যুক্তরাষ্ট্রের ভেটেরান্স দিবস । " ট্যাপস " হ'ল মার্কিন সামরিক জানাজায় প্রদত্ত বগল কল :

( ভিটিমিলার থেকে সাউন্ডক্লাউডে "ট্যাপস" )

এটি একটি সাধারণ সুর, কেবল চব্বিশটি নোট দীর্ঘ এবং কেবলমাত্র চারটি নোট ব্যবহার করা। শীট সংগীত এখানে:

শীট সংগীত ট্যাপস ( উত্স )

চ্যালেঞ্জ

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

সমস্ত চব্বিশটি নোট অবশ্যই সঠিক পিচ, সময়কাল এবং ব্যবধানের সাথে খেলতে হবে। "টেপস" এর সাথে পরিচিত এমন কেউ আপনার কোডটি চালাতে সক্ষম হবে এবং গানটি বাজানো হচ্ছে তা সহজেই চিনতে পারে।

সুরের সময়কাল (প্রথম নোটের শুরু থেকে শেষ নোটের শেষে) 30 থেকে 70 সেকেন্ডের মধ্যে হতে হবে। আপনার সাউন্ড ফাইলটির শুরু এবং / অথবা শেষের প্যাডিংয়ের বিকল্পটি 5 সেকেন্ড অবধি থাকতে পারে, তাই 80 সেকেন্ডের ফাইলটি সবচেয়ে দীর্ঘতম অনুমোদিত।

আপনি অবশ্যই গানটি অনলাইনে কোথাও ডাউনলোড করতে পারবেন না বা এটি কোনও অডিও লাইব্রেরি থেকে নমুনা হিসাবে পাওয়া যায় from তবে আপনি অডিও লাইব্রেরিগুলি ব্যবহার করতে পারেন যা স্বতন্ত্র নোটগুলি প্লে / রচনা করতে এবং অডিও ফাইলগুলি তৈরি করতে পারে।

স্কোরিং

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর ins তবে, এই বিশেষ চ্যালেঞ্জের জন্য আমি আপনাকে উত্সাহিত করি আপনার বাইট গণনা, বিশেষত শব্দ মানের ব্যয়ে ense আপনার জমাগুলিকে গল্ফ করুন তবে আপনার নিজের পছন্দ বা সাউন্ড আউটপুট পদ্ধতিতে নিজেকে সৃজনশীল হতে দিন। এই চ্যালেঞ্জটি অভিজ্ঞদের সম্মান জানানো সম্পর্কে বোঝানো হয়েছে, "টেপস" এর সবেমাত্র স্বীকৃত সংস্করণটি খুঁজে বের করার বিষয়ে নয়।

মনে রাখবেন যে আপনি খালি লাইনে লিঙ্কটি আটকে দিয়ে সরাসরি পোস্টগুলিতে সাউন্ডক্লাউড অডিও ফাইলগুলি এম্বেড করতে পারেন । আপনার যদি একটি সাউন্ডক্লাউড অ্যাকাউন্ট থাকে তবে এটি আপনার আউটপুটটি ভাগ করে নেওয়ার দুর্দান্ত উপায়।


আমি চুক ভাবছি।
The_Basset_Hound

4
ক্যালভিন, যদি আপনি কিছু মনে করেন না, আমি পুরানো বেসিকের কয়েকটি গোলফ উত্তর পোস্ট করব এবং পিপিসিজির বাইরে ভেটেরান্স চ্যারিটির জন্য অনুদান দেব make আপনি আমাকে এটি করতে অনুপ্রাণিত করেছেন। ইউকেতে বিটিডব্লিউ আমাদের স্মরণে রবিবার, নভেম্বরের দ্বিতীয় রবিবার, যার অর্থ এই বছর এটি গত রবিবার ছিল। আমার প্রথম দিকের একটি স্মৃতি পপ্পিজ দ্বারা বেষ্টিত একটি স্মৃতিস্তম্ভের পাশে দাঁড়িয়ে আছে যেখানে 2 মিনিটের নীরবতা পালন করা হয়েছিল। আমার বয়স প্রায় ৩. যখন আমি মাকে জিজ্ঞাসা করলাম কেন কেউ কথা বলছে না, তিনি আমাকে চুপ থাকতে বলেছিলেন।
স্তর নদী সেন্ট

ফারমাতার দৈর্ঘ্যের জন্য কোনও নিয়ম আছে?
স্যার পাইথন

@ সিরপাইথন আমি জানি না যে এই চিহ্নটি কী বোঝায়! এন.ইউইকিপিডিয়া.আর / উইকি / ফারমাতার মতে "ঠিক কতটা সময় এটি রাখা হয় তা অভিনয়কারীর বিবেচনার উপর নির্ভর করে।" আউটপুটে বিচক্ষণতা ব্যবহার করা কোডগল্ফের সাথে সত্যই ফিট করে না, তাই এটি লিখিত হিসাবে খেললাম। আমি দেখতে পাচ্ছি আপনি কোথায় যাচ্ছেন ... বিন্দুযুক্ত দ্বিতীয় নোটটি দীর্ঘায়িত করা বিন্দুযুক্ত অষ্টম নোটটি একটি ষোড়শ নোটকে সংকুচিত করতে পারে, জিনিসগুলি সহজ করে তোলে। তবে আমি মনে করি এটি প্রতারণা করছে :-)
লেভেল রিভার সেন্ট

উত্তর:


4

qb64, 100 84 বাইট

পুরানো কিবাসিকের আপডেট হওয়া সংস্করণ, http://www.qb64.net/ এ ডাউনলোডযোগ্য

গণনা শূন্যস্থানগুলি বাদ দেয়, যা প্রয়োজনীয় নয় এবং কেবল সেখানে স্পষ্টতার জন্য ডেটা তিন নোট বাক্যাংশগুলিতে বিভক্ত করতে।

PLAY"T99L4C.L8CL1F. L4C.L8FL1A. L4CFL2A L4CFL2A L4CFL1A. L4F.L8AL1>C< L2AFL1C. L4C.L8CL1F."

প্লে স্ট্রিং কমান্ড

T99     set tempo to 99 quarter notes per minute (default is 120, only just too short)
CDEFGAB play notes in the current octave
><      up or down one octave
Lx      following notes are of note of 1/x duration
.       extend previous note duration by 50%

গল্ফিংয়ের ইতিহাস:

প্রথম পোস্ট: 4/4 সময় থেকে 4/2 সময়, যার অর্থ আমার কাছে কিছু সম্পূর্ণ নোট আছে তবে ষোলতম নোট নেই।

সম্পাদনা 1: কী সি (রেঞ্জ জিজি) থেকে এফ (রেঞ্জ সিসি) এ পরিবর্তিত হয়েছে। এখন আমাকে কেবলমাত্র অষ্টক পরিবর্তন একবারেই করতে হবে, উচ্চ সি এর জন্য যা কেবল একবারই ঘটে, আগের মতো সমস্ত নিম্ন জি এর চেয়ে বেশি।

এই সমস্ত অষ্টক পরিবর্তনগুলি থেকে মুক্তি পেয়ে আমি মনে করি না যে গল্ফের আর কিছু আছে। এখানে মোট 20 Lটি রয়েছে তবে সেগুলি এড়াতে কোনও সুস্পষ্ট উপায় নেই।

শেষ বাক্যাংশ (১১ টি অক্ষর) প্রথমটির মতো একই, তবে এটি 11 অক্ষরের নীচে দুবার .োকানোর কোনও উপায় নেই। প্রারম্ভিকটি L4বাদ দেওয়া হলে পুনরাবৃত্ত তথ্যগুলি কেবল 9 টি অক্ষর হবে (এটি অপ্রয়োজনীয় বলে মনে হয় ডিফল্ট নোট দৈর্ঘ্যটি চতুর্থাংশ নোট বলে মনে হচ্ছে, তবে এটি নথিবদ্ধ নয় তাই আমি এটি রেখে দিয়েছি))


9

জাভাস্ক্রিপ্ট, 203 198 196 195 বাইট

with(new AudioContext)for(t=i=0;n="301093301396202346202346202396331699464390301093"[i++];)with(createOscillator())i%2?l=n/2:(frequency.value=392+n*44,connect(destination),start(t+.1),stop(t+=l))

5 বাইট ধন্যবাদ সংরক্ষিত Dendrobium এবং 1 @PatrickRoberts ধন্যবাদ।

ব্যাখ্যা

with(new AudioContext)        // use HTML5 audio
  for(                        // iterate through the note pitches and lengths
    t=i=0;                    // t = current time to place the note
    n=                        // n = note pitch (or temporarily length)

    // This string contains the values of each note alternating between length and pitch
    //     (l1, p1, l2, p2, etc...)
    // Length value is in 16th notes (1 = 1/16th note, 2 = 1/8th, etc...)
    //     The longer notes are limited to 9 but I think it still sounds OK
    // Pitch value 0 = G4, 3 = C5, 6 = E5, 9 = G5 (multiples of 3 saves 1 byte)
    "301093301396202346202346202396331699464390301093"

  [i++];)
    with(createOscillator())  // create the note oscillator
      i%2?                    // alternate between length and pitch characters
        l=n/2                 // l = length (stored for use in the next iteration)
                              // dividing it by 2 sets the speed to 60 beats per minute
                              //     and casts it to a number
      :(
        frequency.value=392   // base note = G5 (392hz)
          +n*44,              // there is (conveniently) roughly 132hz between each note
        connect(destination), // send the note's sound through the speakers
        start(t               // schedule the note to sound
          +.1),               // short delay to distinguish two notes of the same pitch
        stop(t+=l)            // schedule the end of the note and increment the time
      )

এটি এখানে ব্রাউজারে পরীক্ষা করুন! HTML5 ওয়েব অডিও API সমর্থন করে এমন কোনও ব্রাউজারে কাজ করে ।


1
-5 বাইট: সি = নতুন অডিওকন্টেক্সট (); এর জন্য (টি = আই = 0; এন = "301093301396202346202346202396331699464390301093" [i ++];) আই% 2? L = n / 2: (ফ্রিকোয়েন্সি) সহ। মান = 392 + এন * 44, সংযুক্ত (সি। নির্ধারণ), শুরু (টি + .1), স্টপ (টি + = l))
ডেনড্রোবিয়াম

আমি বলতে চাই যে সময়কাল (12 ইউনিট পরিবর্তন করে 9 করা) সঠিক নয়; এটিকে আরও খারাপ করা হয়েছে যে বিন্দুযুক্ত অর্ধ নোটগুলির মধ্যে ফার্মাটা রয়েছে এবং সত্যই 12 বা তার বেশি হওয়া উচিত ।
lirtosiast

@ থমাসকওয়া হ্যাঁ, এটি নিখুঁত নয়, তবে প্রয়োজনীয়তাটি সহজেই স্বীকৃত হওয়া উচিত যাতে আমি বলি এটি পাস হয়ে গেছে। (এছাড়াও প্রশ্নের মধ্যে সাউন্ডক্লাউড ট্র্যাকটি শুনুন, প্রথম বিন্দুযুক্ত অর্ধ নোট হুবহু 10/16 ম এর তাই আমরা যদি সেই সংস্করণটি অনুসরণ করি তবে এটি খুব কাছাকাছি
!:

8

গণিত, 361 287 285 বাইট

আমি এখানে নির্ভুলতার জন্য গিয়েছিলাম। আউটপুট হুবহু স্কোর হিসাবে বর্ণিত, শিংগা সঙ্গে খেলা। আপনি ফাইলটি এখানে খুঁজে পেতে পারেন ।

"G"
e="E5";c="C5";EmitSound@Sound[SoundNote[#,5/#2,"Trumpet",SoundVolume->#3/17]&@@@{%,8,17,%,24,20,c,2,23,%,8,26,c,24,29,e,2,32,%,12,35,c,12,38,e,6,41,%,12,44,c,12,47,e,6,50,%,12,53,c,12,56,e,2,59,c,8,62,e,24,65,"G5",3,68,e,6,170/3,c,6,136/3,%,2,34,%,8,34,%,24,34,c,2,34}~Partition~3]

গল্ফিং পরামর্শের জন্য @ মার্টিনব্যাটনারকে ধন্যবাদ।


4
লিঙ্কটি আমাকে গান শুনতে দেয় না। অনুমতিগুলির কারণে এটি মুছে ফেলা বা শোনার জন্য উপলব্ধ নয় বলে মনে হচ্ছে।
d0nut

2
অতিরিক্ত পেডেন্টিক হওয়ার জন্য, আপনি ফেরামাতাদের জন্য অ্যাকাউন্ট করেন নি!
wchargin

"সুরের সময়কাল 30 থেকে 70 সেকেন্ডের মধ্যে হতে হবে।" এটি 24 সেকেন্ডে কিছুটা ছোট।
ক্যালভিনের

4
@ ক্যালভিনের শখগুলি অপেক্ষা করুন ... আমি প্রস্তাবিত 50 বিপিএম এ সব করছি ... আমি আপনাকে দোষ দিচ্ছি: |
LegionMammal978

1
%1, %2এবং %%আসলে কোনও বাইটগুলি ওভারে সংরক্ষণ করবেন না x="E5"-> x(বাস্তবে আপনি কতবার ব্যবহার করেন তা দেখে ভেরিয়েবলগুলি ব্যবহার করে আসলে আপনার যথেষ্ট পরিমাণে সঞ্চয় করা উচিত)। তারপরে আপনি EmitSount@Sound[SoundNote[#,5/#2,"Trumpet",SoundVolume->#3/17]&@@@{{%%,8,17},{%%,24,20},...}সর্বাধিক ব্যবহৃত নোটটি ব্যবহার করে এবং সঞ্চয় করে টন বাইট সংরক্ষণ করতে পারেন %। এবং 24 নোটে এটি একটি সমতল তালিকা বিভাজন করা এখনও কম হতে পারে:SoundNote[#,5/#2,"Trumpet",SoundVolume->#3/17&@@@{%%,8,17,%%,24,20,%2,2,23,...}~Partition~3
মার্টিন ইন্ডার

5

সোনিক পাই, 899 বাইট

সময়টি একটু বন্ধ, তবে আমার মনে হয় এটি ঠিক আছে।

হালকা গল্ফড:

use_synth: ফলক
use_synth_defaults বজায় রাখে: 0.70, প্রকাশ: 0.0
খেলা: G4, বিজ্ঞপ্তিঃ 0.05
0.75 অপেক্ষা করুন
খেলা: G4, টিকিয়ে: 0.25
0.25 অপেক্ষা করুন
হোল্ড = rrand_i (3,4)
খেলা: C5 এ, টিকিয়ে: হোল্ড, রিলিজ: 0.5
অপেক্ষা + + 0.5
খেলা: G4, বিজ্ঞপ্তিঃ 0.05
0.75 অপেক্ষা করুন
খেলা: C5 এ, টিকিয়ে: 0.25
ঘুম 0.25
হোল্ড = rrand_i (3,4)
খেলা: E5, টিকিয়ে: হোল্ড, বিজ্ঞপ্তিঃ 1.25
ঘুম ধরে + 1.25
খেলা: G4
ঘুম 0.70
খেলা:, C5
ঘুম 0.70
2.টাইমস
  খেলা: E5, টিকিয়ে: 1, বিজ্ঞপ্তিঃ 0.25
  ঘুম 1.25
  খেলা: G4
  ঘুম 0.7
  খেলা:, C5
  ঘুম 0.7
শেষ
হোল্ড = rrand_i (3,5)
খেলা: E5, টিকিয়ে: হোল্ড, রিলিজ: 0.75
ঘুম +1
খেলা: C5 এ, বিজ্ঞপ্তিঃ 0.05
ঘুম 0.75
খেলা: E5, টিকিয়ে: 0.25
ঘুম 0.25
খেলা: G5, টিকিয়ে: 2.45, বিজ্ঞপ্তিঃ 0.05
ঘুম 2.5
খেলা: E5, টিকিয়ে: 1, বিজ্ঞপ্তিঃ 0.25
ঘুম 1.25
খেলা: C5 এ, টিকিয়ে: 1, বিজ্ঞপ্তিঃ 0.25
ঘুম 1.25
হোল্ড = rrand_i (3,5)
খেলা: G4, টিকিয়ে: হোল্ড, রিলিজ: 0.5
ঘুম ধরে + 0.5
খেলা: G4, বিজ্ঞপ্তিঃ 0.05
ঘুম 0.75
খেলা: G4, টিকিয়ে: 0.25
ঘুম 0.25
হোল্ড = rrand_i (3,5)
খেলা: C5 এ, টিকিয়ে: হোল্ড, রিলিজ: 1.5

হ্যাঁ, কেউ সোনিক পাই ব্যবহার করছেন!
মেগা ম্যান

এইচ দিয়ে নাম পরিবর্তন করে রিলিজ: ০.০ প্রকাশের জন্য পরিবর্তন করুন: 0 এবং স্পেসগুলি অপসারণ করে সামান্য গল্ফ করা যেতে পারে।
মেগা ম্যান

4

ম্যাটল্যাব, 338 327 262 258 230 বাইট

o=@(L,f)sin(pi*.11*2^(f/12))*(1:600*L))
sound([o(3,-1) o(1,-1) o(12,2) o(3,-1) o(1,2) o(12,4) o(2,-1) o(2,2) o(4,4) o(2,-1) o(2,2) o(4,4) o(2,-1) o(2,2) o(12,4) o(3,2) o(1,4) o(8,6) o(4,4) o(4,2) o(12,-1) o(3,-1) o(1,-1) o(12,4)])

2

স্মাইলব্যাসিক, 73 বাইট

BGMPLAY"@56T50L2.G8.G16B+G8.<C16E>[G8<C8E4>]2G8<C8EC8.E16G2E4C4>GG8.G16B+

সমস্ত নোট এবং সময় সঠিক। আমি একটি শিঙ্গা ব্যবহার করেছি কারণ এটি এমআইডিআইয়ের নিকটতম জিনিস

<audio autoplay controls src="//12me21.github.io/resources/taps.mp3"></audio>


1

পাওয়ারশেল, 183 175 159 বাইট

নস্টালজিয়া ট্রিপ, কে বিপ পছন্দ করে না ?!

foreach($i in 0..23){[console]::beep((196,262,330,392)[(001012012012012123210001-split'')[$i]],(3,1,12,3,1,12,2,2,4,2,2,4,2,2,12,3,1,8,4,4,12,3,1,12)[$i]*400)}


ব্যাখ্যা (ধরণের)

foreach($i in 0..23) { # foreach loop which ranges from 0 to 23
    [console]::beep( # [console]::beep(Pitch, Duration)
        (196,262,330,392) # the notes in Hertz
            [ # select which note to use
                (001012012012012123210001-split'') # -split '' creates an array of [0,0,1,0,1 ...], spaces can be omitted
                [$i] # select the n-th element
            ],
        (3,1,12,3,1,12,2,2,4,2,2,4,2,2,12,3,1,8,4,4,12,3,1,12) # array of durations
        [$i]*400 # duration in milliseconds * 400
    )
}


এটি প্রায় 45 সেকেন্ডে খেলবে।

উইন্ডোজ 'পাওয়ারশেল ব্যবহার করে এটি আমার প্রথমবার, এটি গল্ফ করার বিষয়ে কোনও পরামর্শ স্বাগত।


পুরানো সংস্করণ

175

foreach($i in(0..23)){[console]::beep((196,262,330,392)[(0,0,1,0,1,2,0,1,2,0,1,2,0,1,2,1,2,3,2,1,0,0,0,1)[$i]],(3,1,12,3,1,12,2,2,4,2,2,4,2,2,12,3,1,8,4,4,12,3,1,12)[$i]*400)}

183

$d=3,1,12,3,1,12,2,2,4,2,2,4,2,2,12,3,1,8,4,4,12,3,1,12;$n=0,0,1,0,1,2,0,1,2,0,1,2,0,1,2,1,2,3,2,1,0,0,0,1;foreach($i in(0..23)){[console]::beep((196,262,330,392)[$n[$i]],$d[$i]*400)}

1

বিবিসি বেসিক, 111

Http://www.bbcbasic.co.uk/bbcwin/bbcwin.html এ দোভাষী ডাউনলোড করুন

স্কোরটি হোয়াইটস্পেস এবং নিউলাইনগুলি বাদ দেয়, যা অপ্রয়োজনীয় এবং পাঠযোগ্যতার জন্য যুক্ত করা হয়

FORk=1TO24
  x=ASC(MID$("')F'Lb(Ke(Ke(KbJhxeI#')F",k))
  SOUND1,-9,x DIV7*4+60,INT(12/1.4^(x MOD7))*5
  SOUND1,0,1,1
NEXT

মোটামুটি স্ট্যান্ডার্ড সংকোচন, নোট প্রতি 1 ASCII অক্ষর প্যারামিটারগুলি SOUNDনিম্নরূপ:

Channel (always 1 for the purposes of this challenge)
Amplitude (negative for on, 0 for off, positive is an envelope index)
Pitch (in increments of 1/4 semitone, with middle C at 100)
Duration (20ths of a second)

গানের পরিসরটি 13 টি নোট, যদিও কেবল 4 টি ব্যবহৃত হয়। প্রিন্টযোগ্য এএসসিআইআইয়ের 95-সংখ্যার ব্যাপ্তিতে এই ব্যাপ্তিটি পেতে, আমি সময়কালটি 7 এর পূর্ণসংখ্যার পরিসরে নিয়ে গিয়েছিলাম এবং এটি 7 মডিউল নিতে হয়েছিল, নিম্নলিখিত সময়কালগুলি (ষোড়শতম) ব্যবহৃত হয় (6 ব্যতীত যা কখনও হয় না) ব্যবহৃত): 1,2,3,4,6,8,12। এই সংখ্যাগুলি তৈরি করার জন্য, আমি একটি পাওয়ার sqrt(2)( 12. প্রায় দ্বারা 1.4) দ্বারা কেটে এবং কাটা দ্বারা 12 ভাগ করার ধারণাটিকে লক্ষ্য করেছি ।

SOUND1,0,1,112 বাইট খোয়াতে একটি বিরক্তি নেই। অভিন্ন পিচের নোটগুলির মধ্যে একটি বিরতি প্রদান করা প্রয়োজন।


1

রুবি + বীপ, 178 বাইট

f=[260,346,416,499]
n=[12,*1..4]
l=(a="001012012012012123210001310310224224220318440310".chars.map(&:to_i))[24..-1]
`beep#{24.times.map{|i|" -f#{f[a[i]]} -l#{n[l[i]]}00"}*" -n"}`

এটি করতে আমাকে কিছুক্ষণ সময় নিয়েছিল, আমি মনে করি আমি নৌকাটি মিস করেছি, তবে যাই হোক না কেন।

fব্যবহৃত চারটি ফ্রিকোয়েন্সি ধরে রাখে। n১th তম নোটের গুণকগুলিতে ব্যবহৃত পাঁচটি নোট দৈর্ঘ্য ধারণ করে।

a="00101...সমস্ত অ্যারে নোট পিচগুলি অনুসরণ করে সমস্ত নোটের দৈর্ঘ্য, সংশ্লিষ্ট অ্যারেগুলিতে সূচক হিসাবে। lতারপরে 24 তম ইনডিসে এবং তার পরেও সেট করা আছে a। তারপরে উপরের সমস্তটি দিয়ে পুনরুক্ত করে একটি বীপ কমান্ড তৈরি করা হয় এবং সম্পাদন করা হয়


0

সি - (কাঁচা: 318 | ডব্লিউএভি: 437)

8-বিট (স্বাক্ষরবিহীন) মনো পিসিএম 44800 হার্জেড, 33.60 সেকেন্ডে।

মেজো ফোর্ট, ফোর্টিসিমো এবং ফোর্ট ডায়নামিক্স কিছুটা শৈল্পিকভাবে প্রয়োগ করা হয়েছে। ফেরমেটস আরও ভাল হতে পারে।

কোড unsigned long long8 টি অক্টেট এবং সিস্টেমের সামান্য এডিয়ান হওয়ার উপর নির্ভর করে ।

#include<stdio.h>
#include<math.h>
#ifdef RAW
main(){unsigned long long D[]={0x422422c13c13,0xc13c44813c22},X[]={27863,37193,46860,55727},O=0x406e64924910,i=0,j;float Z,A,U=40,P;for(;i<24;D[i++/12]>>=4){Z=X[O&3]/1e6;P=0;O>>=2;A=i>18?--U:i<14?U+i/2:U+30;for(j=(D[i/12]&15)*13440;j;A-=--j<7e3&&A>0?.01:0)putchar(A*sin(P+=Z)+128);}}
#else
main(){unsigned long long D[]={0x422422c13c13,0xc13c44813c22},X[]={27863,37193,46860,55727},O=0x406e64924910,i=0,j;float Z,A,U=40,P;int W[]={0x46464952,1570852,0x45564157,544501094,16,65537,44800,44800,524289,0x61746164,1505280};fwrite(W,4,11,stdout);for(;i<24;D[i++/12]>>=4){Z=X[O&3]/1e6;P=0;O>>=2;A=i>18?--U:i<14?U+i/2:U+30;for(j=(D[i/12]&15)*13440;j;A-=--j<7e3&&A>0?.01:0)putchar(A*sin(P+=Z)+128);}}
#endif

সংকলন করুন এবং এর মতো কিছু দিয়ে চালান:

gcc -std=c99 -o taps taps.c -lm
./taps > taps.wav
play taps.wav

যোগ -DRAWকাঁচা বৈকল্পিক জন্য কম্পাইল-লাইন।

কাঁচা আউটপুট যেমন SoX এর সাথে খেলানো যায় play:

play -c 1 -b 8 -r 44800 -t u8 <file>
       |    |       |       |
       |    |       |       +--- Unsigned 8-bit
       |    |       +----------- Sample rate
       |    +------------------- 8 Bits
       +------------------------ 1 Channel
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.