ভালো কম্পন


20

দ্য বিচ বয়েজ গানের গুড ভাইব্রেশনগুলিতে থিমিনের শব্দটি অমর হয়ে উঠেছে । অনেকে স্টার ট্রেকের মূল সিরিজের থিমের সাথে এর সাউন্ডও যুক্ত করে , যদিও সম্ভবত এটি একটি সোপ্রানোর অনুকরণ ছিল

এই চ্যালেঞ্জ একটি বাস্তবায়ন করতে হবে theremin

ইনপুট

  • মাউস বা অন্যান্য ইনপুট ডিভাইস থেকে 2 মাত্রিক ইনপুট নিন (যেমন আপনি জোয়স্টিক ব্যবহার করতে পারেন), যা নীচে অডিও আউটপুট ডিভাইস থেকে একটি স্বন উত্পাদন করবে:
    • এক্স বাড়ানো এক্স স্বরের ফ্রিকোয়েন্সি বাড়িয়ে তুলবে। নোট করুন যে সঙ্গীত নোটের সাহায্যে ফ্রিকোয়েন্সি তাত্পর্যপূর্ণভাবে বৃদ্ধি পায়, সুতরাং আপনাকে অবশ্যই মাউস এক্স অবস্থান এবং সংগীত নোটের মধ্যে একটি লিনিয়ার সম্পর্ক প্রয়োগ করতে হবে, এবং
    • বর্ধমান y টোনটির আয়তন বাড়িয়ে তুলবে।
  • সেখানে উপস্থিত হতে পারে তরঙ্গাকৃতি একটি বাস্তব theremin দ্বারা উত্পাদিত সংক্রান্ত বিভ্রান্তির তাই সরলীকরণের জন্য, একটি সাইন ওয়েভ (অথবা তার ঘনিষ্ঠ পড়তা) ব্যবহার করা আবশ্যক।

বিধি

  • উত্পাদিত টোনটির অবশ্যই কমপক্ষে একটি 2-অক্টেজের ব্যাপ্তি থাকতে হবে। আরও পরিসীমা গ্রহণযোগ্য। A-440 অবশ্যই সীমার মধ্যে থাকা উচিত।
  • ধারাবাহিকভাবে পরিবর্তনশীল ফ্রিকোয়েন্সি এবং প্রশস্ততার শ্রুতি উপস্থিতি তৈরি করতে, ইনপুট ডিভাইস থেকে উভয় মাত্রায় বিবেচিত মানগুলির সীমাটি কমপক্ষে 500 হওয়া উচিত মাউস কার্সারের অবস্থান থেকে ইনপুট পড়তে উইন্ডো (কমপক্ষে 500x500 পিক্সেল) খুলতে হবে। বা উইন্ডো না খোলার পরে স্থানাঙ্কগুলি সরাসরি মাউস বা অন্যান্য ইনপুট ডিভাইস থেকে পড়তে পারে।
  • প্রোগ্রামটি বন্ধ করার জন্য একটি সহজ উপায় থাকতে হবে - কী-সংমিশ্রণ, মাউস-ক্লিক বা অন্যান্য সাধারণ ইনপুট ডিভাইস। সিটিআরএল-সি যথেষ্ট।
  • যে কোনও স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার করা যেতে পারে, যতক্ষণ না তারা সম্পূর্ণরূপে সমাধান না করে অন্য কোনও কাজ না করে।
  • কোড গল্ফ এবং I / O এর জন্য মানক নিয়ম
  • আপনি মাউস বা ইনপুট ডিভাইসটি ইনপুট বাক্সের উপর ফোকাস হারিয়ে ফেললে থামতে পারেন।

মন্তব্য

  • আউটপুট স্বনটি গতিশীলভাবে উত্পাদিত হওয়ার কারণে, স্বনটি একটি ধারাবাহিক তরঙ্গরূপ এটি নিশ্চিত করার জন্য যত্ন নেওয়া উচিত; এটি হ'ল কোনও শ্রাব্য ক্লিক বা পপস হঠাৎ করে পর্ব বা প্রশস্ততার পরিবর্তনের ফলে ঘটে।
  • আপনি ইনপুট আকারের অঞ্চলটিকে 500 দ্বারা 500 এর মধ্যে সীমাবদ্ধ করতে পারেন তবে এটি আরও বড় হতে পারে।

এটি , সুতরাং যে কোনও ভাষার মধ্যে সংক্ষিপ্ত উত্তর।

বিশেষ ধন্যবাদ

এই চ্যালেঞ্জটি তৈরি করার জন্য এবং এটি সিক্রেট সান্তার স্যান্ডবক্সে পোস্ট করার জন্য ডিজিটাল ট্রমা কে বিশেষ ধন্যবাদ। আমি কয়েকটি সম্পাদনা করেছি এবং আসল পোস্ট এখানে

উত্তর:


10

জাভাস্ক্রিপ্ট ES6, 215 188 বাইট

এটি ক্রোম এবং এজতে ভালভাবে কাজ করছে বলে মনে হচ্ছে। ফায়ারফক্স এবং সাফারি তেমন কিছু নয়।

with(new AudioContext)o=createOscillator(onmousemove=e=>{o.frequency.value=9/innerWidth*e.x**2,v.gain.value=1-e.y/innerHeight}),v=createGain(),v.connect(destination),o.start(),o.connect(v)

সংরক্ষিত 27 বাইটকে @arrylyeo ধন্যবাদ

এটি অনলাইন চেষ্টা করুন!

with(new AudioContext)o=createOscillator(onmousemove=e=>{o.frequency.value=9/innerWidth*e.x**2,v.gain.value=1-e.y/innerHeight}),v=createGain(),v.connect(destination),o.start(),o.connect(v)
<button onClick="o.stop()">Stop</button>


1
এটা বেশ ভাল! আমি বেশ মজা পেয়েছি
ক্রিস্টোফার

2
ধন্যবাদ। আমি মনে করি বর্গাকার তরঙ্গ
-15 এর মার্চগুলি

1
এটি চেষ্টা করে দেখুন এবং একটি কানের কান্ড হারিয়ে গেছে
ক্রিস্টোফার

o.type='sine'এটি ডিফল্ট হওয়ার কারণে অপ্রয়োজনীয়। আপনি সরল document.onmousemoveকরতে পারেন onmousemove
darrylyeo

215 থেকে 188 বাইটে with(new AudioContext)o=createOscillator(onmousemove=e=>{o.frequency.value=9/innerWidth*e.x**2,v.gain.value=1-e.y/innerHeight}),v=createGain(),v.connect(destination),o.start(),o.connect(v)
গল্ফড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.