ADLMIDI Player – এর বাজিমাত! এতে থাকা Yamaha OPL3 Emulator এবং Four-Operator Mode সমৃদ্ধ FM Chip যেন মিউজিক দুনিয়ার এক জীবন্ত আগ্নেয়গিরি! যা সাধারণ MIDI Player-গুলোকে ছারখার করে দেবে!

Level 31
সনিক টিউনার, টেকটিউনস, গাইবান্ধা

নস্টালজিয়া বা পুরনো দিনের স্মৃতি রোমন্থন করতে আমরা কে না ভালোবাসি? বিশেষ করে যারা নব্বইয়ের দশকের ক্লাসিক PC Games-গুলোর সেই বিশেষ ধরনের ইলেকট্রনিক সুর শুনে বড় হয়েছেন, তাদের কাছে সেই সাউন্ডগুলো কেবল মিউজিক নয়, বরং এক টুকরো শৈশব। আজ আমরা এমন একটি বিশেষ অ্যাপ্লিকেশন নিয়ে বিস্তারিত আলোচনা করবো যা আপনার স্মার্টফোনে সেই পুরনো দিনের জাদুকরী মিউজিক বা MIDI ফাইলগুলোকে একদম অরিজিনাল ফ্লেভারে জীবন্ত করে তুলবে। আমরা কথা বলছি ADLMIDI Player নিয়ে, যা বর্তমানে IzzyOnDroid F-Droid Repository-তে উন্মুক্ত করা হয়েছে। এটি সাধারণ কোনো প্লেয়ার নয়, বরং এটি একটি শক্তিশালী প্রযুক্তির সংমিশ্রণ।

ADLMIDI Player-এর জন্ম এবং এর পেছনের মূল কারিগরি শক্তি

ADLMIDI Player

ADLMIDI Player মূলত একটি শক্তিশালী Emulator-এর ওপর ভিত্তি করে তৈরি করা হয়েছে, যা বিখ্যাত Frequency Modulation Chip Yamaha OPL3-এর কার্যক্ষমতাকে সফটওয়্যারের মাধ্যমে নকল করে। যারা পুরনো দিনের সাউন্ড কার্ডের কথা জানেন, তারা নিশ্চয়ই Yamaha OPL3-এর নাম শুনেছেন। এই ছোট কিন্তু অত্যন্ত কার্যকর MIDI-Player-টি তৈরি করার জন্য একটি বিশেষ Library ব্যবহার করা হয়েছে। এই লাইব্রেরিটি মূলত Original ADLMIDI নামক একটি Console Program Implementation-এর একটি Fork বা উন্নত সংস্করণ। সহজ কথায়, এটি একটি প্রাচীন অডিও হার্ডওয়্যার প্রযুক্তির আধুনিক সফটওয়্যার রূপান্তর।

ADLMIDI Player

অফিসিয়াল ওয়েবসাইট @ ADLMIDI Player

কীভাবে ADLMIDI Player ব্যবহার করবেন?

কীভাবে ADLMIDI Player ব্যবহার করবেন?

১. প্রথমে আপনার স্মার্টফোনে Github থেকে অ্যাপটি ডাউনলোড করে ইন্সটল করুন।

Github থেকে অ্যাপটি ডাউনলোড করে ইন্সটল

২. অ্যাপটি ওপেন করে এর ইনবিল্ট ফাইল ম্যানেজার থেকে আপনার ডিভাইসে থাকা যেকোনো প্রিয় MIDI, RMI অথবা Wolfenstein 3D-এর মতো ক্লাসিক গেমের IMF ফাইলগুলো (IMF Files) নির্বাচন করে প্লে করুন।

অ্যাপটি ওপেন

৩. ফাইল প্লে হওয়ার পর এর শক্তিশালী OPL3 Emulation সিস্টেম এবং ফোর-অপারেটর মোড (Four-Operator Mode) ব্যবহার করে অত্যন্ত গভীর, প্রাণবন্ত এবং উন্নত মানের স্টেরিও সাউন্ড (Stereo Sound) উপভোগ করুন।

প্লেয়ারের অডিও সেটিংস

কেন এই প্লেয়ারটি মিউজিক প্রেমীদের জন্য বিশেষ?

কেন এই প্লেয়ারটি মিউজিক প্রেমীদের জন্য বিশেষ?

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

  • Stereo Sound & OPL3 Emulation: এটি আপনাকে উন্নত মানের Stereo Sound প্রদান করবে। এতে থাকা OPL3 Emulation সিস্টেমটি Four-Operator Mode Support করে, যার ফলে মিউজিকের গভীরতা এবং হারমোনিক্স অনেক বেশি প্রাণবন্ত হয়ে ওঠে।
  • Retro Gaming Experience: এই প্লেয়ারটিতে অনেকগুলো জনপ্রিয় এবং পরিচিত PC Games থেকে নেওয়া FM Patches অন্তর্ভুক্ত করা হয়েছে। ফলে আপনি যখন কোনো সুর শুনবেন, তখন আপনার মনে হবে আপনি সরাসরি সেই পুরনো গেমটি খেলছেন।
  • বিচিত্র ফাইল ফরম্যাট সাপোর্ট: সাধারণ MIDI ফাইলের পাশাপাশি এটি RMI এবং কাল্ট ক্লাসিক গেম Wolfinstein 3D-এর IMF Files Support করে। আপনি যদি এই অ্যাপটির পেছনের আরও গভীর তথ্য বা কোডিং নিয়ে আগ্রহী হন, তবে সরাসরি তাদের Source Repository ভিজিট করে বিস্তারিত জেনে নিতে পারেন।

আপনার ডিভাইসের সাথে সামঞ্জস্যতা (ABIs Support)

আপনার ডিভাইসের সাথে সামঞ্জস্যতা (ABIs Support)

ডেভেলপাররা নিশ্চিত করেছেন যে এই অ্যাপটি প্রায় সব ধরনের আধুনিক এবং পুরনো অ্যান্ড্রয়েড ডিভাইসে চলবে। এর জন্য এটি নিচের ABIs (Application Binary Interfaces) গুলো সাপোর্ট করে:

  • arm64-v8a
  • armeabi-v7a
  • x86
  • x86_64

অ্যাপটি কীভাবে আপনার ডিভাইসে সংগ্রহ করবেন?

অ্যাপটি কীভাবে আপনার ডিভাইসে সংগ্রহ করবেন?

আপনি চাইলে সরাসরি এই প্ল্যাটফর্ম থেকে APKs ফাইলগুলো ডাউনলোড করতে পারেন। তবে অ্যাপটিকে সবসময় সচল এবং Up-To-Date রাখার জন্য ডেভেলপাররা একটি F-Droid Client ব্যবহার করার পরামর্শ দেন।

আশ্চর্যের বিষয় হলো, কিছু Clients-এ এই Repo-টি আগে থেকেই ডিফল্ট হিসেবে Enabled থাকে। যেমন, Sunil-এর তৈরি করা Client। তবে আপনি যদি অন্য কোনো মাধ্যম বা ক্লায়েন্ট ব্যবহার করেন, তবে আপনাকে এই Repository-টি Manually Add করে নিতে হতে পারে। এটি করার জন্য নির্দিষ্ট পেজের উপরের দিকে একটি Hint বা নির্দেশনা দেওয়া আছে, যা দেখে আপনি সহজেই কাজটি করতে পারবেন।

কারিগরি ব্যবচ্ছেদ: অ্যাপের অন্দরে যা যা রয়েছে (In-Depth Technical Analysis)

In-Depth Technical Analysis

একটি অ্যাপ কেবল ওপরের ইন্টারফেস দিয়ে বিচার করা যায় না। ADLMIDI Player কেন এতোটা শক্তিশালী, তা বোঝা যায় এর তৈরিতে ব্যবহৃত আধুনিক সব Development Framework এবং Utility লাইব্রেরিগুলোর তালিকা দেখলে। নিচে প্রতিটি উপাদানের ভূমিকা ব্যাখ্যা করা হলো:

১. অ্যান্ড্রয়েড সাপোর্ট এবং কম্প্যাটিবিলিটি (Development Framework & Utility)

  • Android Support Library: প্রথমেই মনে রাখা প্রয়োজন যে, Android Support Library কোনো একটি সাধারণ লাইব্রেরি নয়। এটি আসলে অনেকগুলো লাইব্রেরির একটি বিশাল Collection। একে মূলত দুই ভাগে ভাগ করা যায়: Compatibility এবং Component Libraries। এই সম্পর্কে বিস্তারিত বুঝতে Understanding the Android Support Library গাইডটি সহায়ক হতে পারে।
  • Base Activity Subclass & Hooks: অ্যাপের গঠনকে মজুত করতে এবং একটি Composable Structure তৈরি করতে এটি Base Activity Subclass এবং প্রয়োজনীয় Hooks প্রদান করে।
  • Android Jetpack Annotations: ডেভেলপমেন্টের মান উন্নত করতে এবং ত্রুটিমুক্ত কোড লিখতে এতে Android Jetpack-এর Annotations ব্যবহার করা হয়েছে।
  • Arch Dependencies & JUnit: অ্যাপের ডাটা ম্যানেজমেন্ট এবং টেস্টিং-এর জন্য এতে JUnit Test Rules রয়েছে যা LiveData-এর সাথে চমৎকারভাবে কাজ করে। এটি মূলত Arch Dependencies-এর একটি অংশ।

২. পারফরম্যান্স এবং মাল্টি-থ্রেডিং (Utility)

  • AndroidX & Coroutines: অ্যাপটি যাতে ব্যবহারের সময় হ্যাং না করে বা স্লো না হয়ে যায়, সেজন্য এটি ভারী কাজগুলোকে Main Thread from সরিয়ে নিতে AndroidX Library এবং Coroutines-এর সাহায্য নেয়। পাশাপাশি এটি ListenableFuture-এর সুবিধাও প্রদান করে।
  • App Startup Library: অ্যাপটি যাতে দ্রুত ওপেন হয় এবং শুরুর দিকের কম্পোনেন্টগুলো যাতে দক্ষতার সাথে Initialize হতে পারে, তার জন্য এই বিশেষ লাইব্রেরি ব্যবহার করা হয়েছে।
  • Trace Events & Buffer: সিস্টেম লেভেলে কাজের গতিবিধি পর্যবেক্ষণ করতে এটি System Trace Buffer-এ Trace Events রাইট করার ক্ষমতা রাখে।

৩. ইউজার ইন্টারফেস এবং গ্রাফিক্স (UI Component)

  • Custom View & Material Design: ব্যবহারকারীর জন্য অ্যাপটিকে আকর্ষণীয় করতে এতে Material Design Drawer Widget এবং নিজস্ব Custom Views তৈরি করার মডিউল ব্যবহার করা হয়েছে।
  • Emoji Compatibility: অনেক সময় পুরনো ফোনে নতুন ইমোজিগুলো দেখা যায় না। এই সমস্যা সমাধানে এতে KitKat এবং তার পরবর্তী ভার্সনগুলোর জন্য Emoji Compatibility লাইব্রেরি যুক্ত করা হয়েছে, যা খালি ইমোজি বক্সের সমস্যা দূর করে।
  • Vector Graphics & Animation: ঝকঝকে ছবির জন্য এতে Vector Graphics রেন্ডার করার ক্ষমতা রয়েছে। এছাড়া পুরনো প্ল্যাটফর্মেও স্মুথ ট্রানজিশনের জন্য Animation Interpolators ব্যবহার করা হয়েছে।
  • ViewPager: ব্যবহারকারী যাতে সোয়াইপ করে বিভিন্ন পেজ বা Fragments দেখতে পারেন, সেজন্য এতে Swipeable Format-এর ViewPager যুক্ত করা হয়েছে।

৪. ডাটা ম্যানেজমেন্ট এবং কমিউনিকেশন (Utility)

  • Lifecycle Status: অ্যাপ্লিকেশনটি তার বিভিন্ন কম্পোনেন্ট যেমন Activities এবং Fragments-এর Lifecycle Status পরিবর্তন অনুযায়ী স্বয়ংক্রিয়ভাবে ব্যবস্থা নিতে পারে।
  • Configuration Changes: অনেক সময় ফোন রোটেট করলে বা সেটিংস পরিবর্তন করলে অ্যাপের ডাটা হারিয়ে যায়। কিন্তু এতে এমন Library ব্যবহার করা হয়েছে যা Configuration Changes-এর পরেও ডাটা টিকিয়ে রাখে।
  • Event Bus: অ্যাপের বিভিন্ন স্তরের মধ্যে তথ্য আদান-প্রদান সহজ করতে এটি একটি Application-Wide Event Bus ব্যবহার করে, যা Layer Violations-এর মাধ্যমে দ্রুত ডেটা ট্রান্সফার নিশ্চিত করে।
  • Binary Serialization: ডাটা যাতে নিরাপদে সংরক্ষিত থাকে এবং বিভিন্ন প্রসেসের মধ্যে পাঠানো যায়, সেজন্য একটি স্থিতিশীল ও কমপ্যাক্ট Binary Serialization Format ব্যবহার করা হয়েছে।

৫. গুগল এবং কোটলিন কোর লাইব্রেরি (Utility)

এই অ্যাপটির সক্ষমতা বহুগুণ বাড়িয়ে দিয়েছে Google Core Libraries for Java 6+। এর মধ্যে রয়েছে এক বিশাল ভাণ্ডার:

  • নতুন কালেকশন টাইপ যেমন Multimap এবং Multiset।
  • অপরিবর্তনীয় ডাটা সেট বা Immutable Collections এবং Graph Library।
  • Functional Types, In-Memory Cache এবং কনকারেন্সি নিয়ন্ত্রণের জন্য উন্নত APIs।
  • এছাড়াও I/O, Hashing, Primitives, Reflection, String Processing এবং আরও অনেক কিছুর ইউটিলিটি এতে বিদ্যমান।

সবশেষে, অ্যাপটি ডেভেলপ করার সময় Kotlin Coroutines-এর পূর্ণ সাপোর্ট রাখা হয়েছে এবং ডেভেলপমেন্টের কাজ সহজ করতে উন্নত IDE Integration-এর মতো Development Helper টুলসগুলো ব্যবহার করা হয়েছে। এমনকি ডেভেলপাররা যাতে Android Studio-এর Live Layout Inspector-এর মাধ্যমে সব Attributes সরাসরি দেখতে পারেন, তার ব্যবস্থাও এতে রয়েছে।

ADLMIDI Player কেবল একটি পুরনো মিউজিক স্টাইলকে ফিরিয়ে আনেনি, বরং আধুনিক সফটওয়্যার ইঞ্জিনিয়ারিংয়ের সেরা টুলগুলো ব্যবহার করে একটি শক্তিশালী প্ল্যাটফর্ম তৈরি করেছে। আপনি যদি অডিও প্রযুক্তি নিয়ে উৎসাহী হন, তবে এই অ্যাপটি আপনার জন্য একটি মাইলফলক হতে পারে।

Level 31

আমি মো আতিকুর ইসলাম। সনিক টিউনার, টেকটিউনস, গাইবান্ধা। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 5 বছর 6 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 766 টি টিউন ও 94 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 67 ফলোয়ার আছে এবং আমি টেকটিউনসে 3 টিউনারকে ফলো করি।

“আল্লাহর ভয়ে তুমি যা কিছু ছেড়ে দিবে, আল্লাহ্ তোমাকে তার চেয়ে উত্তম কিছু অবশ্যই দান করবেন।” —হযরত মোহাম্মদ (সঃ)


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস