<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های رامان تندرو</title><link>https://virgool.ir/feed/@ramantondro</link><description>دانشجوی مهندسی کامپیوتر و توسعه‌دهنده سیستم‌های نهفته و میکروکنترلرها (ESP32) | توسعه‌دهنده پروژه‌های منبع‌باز Sepotify و RuView&#xA;&#xA;https://rmno21.github.io&#xA;https://github.com/RMNO21</description><language>fa</language><pubDate>2026-11-10 23:03:03</pubDate><image><url>https://files.virgool.ir/upload/users/4947368/avatar/2iWquT.png</url><title>رامان تندرو</title><link>https://virgool.ir/@ramantondro</link></image><item><title>چرا پلیرهای ویندوز ناامیدم کردند؟ داستان ساخت RMN-Player برای عاشقان فیلم</title><link>https://virgool.ir/@ramantondro/github-rmno21-rmn-player-njbscdsvijam</link><description>اگر اهل فیلم و سریال دیدن روی ویندوز باشید، احتمالاً پلیرهای مختلفی از VLC و PotPlayer گرفته تا KMPlayer را امتحان کرده‌اید. اما به عنوان کسی که حساسیت زیادی روی کیفیت تصویر، عمق رنگ مشکی و راحتی کاربری دارد، همیشه چند مشکل آزارم می‌داد:۱. وقتی کیبورد روی زبان فارسی بود، هیچ‌کدام از کلیدهای میانبر (مثل Space یا کلیدهای جهت‌نما) کار نمی‌کردند و مدام باید Alt+Shift می‌زدم!۲. مانیتورهای مدرن و OLED به خاطر نوارهای سیاه بالا و پایین فیلم (Letterbox) دچار هدررفت تصویر یا خستگی چشم در اتاق تاریک می‌شدند.۳. فایل‌هایی که از سایت‌های دانلود فیلم ایرانی دانلود می‌کردم پر از نام‌های تبلیغاتی و پسوندهای آزاردهنده بودند.۴. پخش خودکار قسمت‌های بعدی سریال معمولاً نامرتب بود و فایل‌ها را درست پشت سر هم پیدا نمی‌کرد.به جای ساخت یک پلیر سنگین از صفر با فریم‌ورک‌های وب و رم بالا (مثل الکترون)، تصمیم گرفتم بر پایه هسته بی‌نهایت قدرتمند و فوق‌سریع MPV و تلفیق اسکریپت‌های Lua و شیدرهای GLSL، پلیری بسازم که دقیقاً همان چیزی باشد که نیاز داشتم: RMN-Player.چه ویژگی‌هایی RMN-Player را متفاوت می‌کند؟۱. نور امبینت زنده و بلور هوشمند (Dynamic Ambilight)برای پر کردن نوارهای سیاه بالا و پایین ویدیو، یک الگوریتم پخش نور دوبعدی (2D Diffused Halo) پیاده کردم که رنگ لبه‌های فیلم را به صورت آنی و روان تحلیل کرده و هاله‌ای نوری پشت تصویر ایجاد می‌کند. این ویژگی در اتاق تاریک حس غوطه‌وری سینمایی فوق‌العاده‌ای به تماشاگر می‌دهد و در صورت خاموش بودن، هیچ سربار پردازشی روی سیستم ندارد.۲. پشتیبانی هم‌زمان از کیبورد انگلیسی و فارسی (Dual EN/FA Support)یکی از مشکلات اعصاب‌خردکن کاربران ایرانی این است که موقع تایپ، زبان کیبورد روی فارسی می‌ماند و بعد کلیدهای پلیر کار نمی‌کنند. در RMN-Player تمام کلیدهای میانبر به صورت دوگانه مپ شده‌اند؛ یعنی چه کیبورد روی انگلیسی باشد چه فارسی، کلید Space برای توقف، کلیدهای پیکان برای پرش ۳ ثانیه‌ای با تاخیر صفر (Zero-delay Seek) و کلیدهای تنظیم صدا بی‌نقص کار می‌کنند.۳. پاک‌سازی خودکار عنوان‌ها (Title Sanitizer)اسکریپت اختصاصی پلیر به صورت هوشمند تگ‌های تبلیغاتی سایت‌های دانلود ایرانی و خارجی (مثل ValaMovie و نمونه‌های مشابه) را از عنوان ویدیو فیلتر می‌کند تا نام تمیز و بدون شلوغی فیلم روی صفحه و در منوها نمایش داده شود.۴. خط لوله ۱۰ بیتی رنگ و رندرینگ بهینه برای OLEDبا استفاده از فیلترهای ضد شکستگی گرادینت رنگ (Debanding) در کتابخانه libplacebo و تنظیمات رنگ مشکی واقعی (True Black)، تصویر نهایی روی مانیتورها نهایت شارپنس و کیفیت را دارد.۵. ردگیری هوشمند قسمت‌های سریالاگر پوشه سریال‌ها با نام‌گذاری‌های متفاوتی باشد، سیستم به صورت هوشمند سریال‌ها را از فیلم‌های تکی تشخیص داده و بدون نیاز به ساخت دستی پلی‌لیست، اپیزود بعدی را مرتب و آماده پخش نگه می‌دارد.نصب آسان و متن‌باز بودنبرای اینکه نصب آن نیازی به تنظیمات پیچیده نداشته باشد، یک اسکریپت نصب و آپدیت خودکار پاورشل (Install-RMN.bat) نوشتم که کل پیکربندی را به صورت کاملاً پرتابل و نیتیو روی ویندوز ۱۰ و ۱۱ پیاده می‌کند.پروژه به صورت کاملاً متن‌باز تحت لایسنس GPL v3 منتشر شده و حتی در لیست مخزن جهانی Awesome-mpv هم ثبت شده است.🎬 سورس‌کد و دانلود RMN-Player در گیت‌هاب: github.com/RMNO21/RMN_Player🌐 وب‌سایت شخصی و سایر پروژه‌های من: rmno21.github.io💻 صفحه گیت‌هاب من: github.com/RMNO21خوشحال می‌شوم اگر اهل تماشای فیلم هستید آن را تست کنید و نظرات یا پیشنهادهایتان را با من در میان بگذارید!</description><category>رامان تندرو</category><author>رامان تندرو</author><pubDate>Wed, 30 Sep 2026 03:19:21 +0330</pubDate></item><item><title>ساخت موزیک پلیر sepotify</title><link>https://virgool.ir/@ramantondro/github-rmno21-sepotify-uhqygdjg9jyb</link><description>شاید در نگاه اول نوشتن یک موزیک‌پلیر در سال ۲۰۲۶ کار تکراری به نظر برسد؛ با وجود انبوهی از اپلیکیشن‌های استریم مثل اسپاتیفای و پلیرهای مختلف در گوگل پلی، چرا یک توسعه‌دهنده باید وقتش را صرف بازنویسی چرخ کند؟واقعیت این است که انگیزه اصلی من از ساخت Sepotify از یک نارضایتی روزمره شروع شد: سنگینی بیش از حد اپلیکیشن‌های امروزی، مصرف بیهوده باتری و وابستگی عمیق به اینترنت و سرویس‌های واسط.خیلی وقت‌ها فقط می‌خواستم یک فایل صوتی با کیفیت بالا (Lossless FLAC) را بدون لگ، بدون لودینگ‌های اضافه، و با کمترین مصرف حافظه رم در پس‌زمینه پخش کنم. بیشتر پلیرهای موجود پر از انیمیشن‌های سنگین، تبلیغات یا کدهای کرش‌ریپورتری بودند که به شکل محسوسی پردازنده را درگیر می‌کردند. همین موضوع باعث شد تصمیم بگیرم با کاتلین (Kotlin) و معماری استاندارد اندروید، یک پلیر سبک، مستقل و متمرکز بر سرعت توسعه دهم.چالش‌های فنی که در مسیر حل کردم۱. مدیریت بهینه حافظه در پردازش فرمت‌های با نرخ بیت بالا (Hi-Res)دیکود کردن فایل‌های صوتی سنگین مثل FLAC و WAV در پس‌زمینه اندروید چالش مدیریت Garbage Collector و مصرف باتری دارد. برای حل این مشکل، پایپ‌لاین صوتی را تا جای ممکن بهینه‌سازی کردم تا از allocations بیهوده در حافظه در طول استریم صدا جلوگیری شود.۲. سرویس پس‌زمینه و عدم بسته شدن توسط سیستم‌عاملسیستم‌عامل اندروید در نسخه‌های جدید مدیریت بسیار سخت‌گیرانه‌ای روی Background Services دارد. پیاده‌سازی اصولی یک Media Session پایدار که هماهنگ با اعلان‌های سیستم و کنترل‌های سخت‌افزاری هندزفری کار کند، نیازمند رعایت دقیق چرخه حیات (Lifecycle) در معماری مدرن بود.۳. تمرکز بر سادگی و کارایی رابط کاربریبه جای رابط‌های شلوغ، اولویت را روی پاسخ‌دهی سریع (Zero-delay) و دسترسی آسان به آرشیو آفلاین آهنگ‌ها گذاشتم؛ بدون هیچ درخواست اینترنتی پنهان یا لاگ‌های غیرضروری.پیوند میان نرم‌افزار و سخت‌افزارعلاقه اصلی من پیوند میان معماری‌های سطح پایین سخت‌افزاری و نرم‌افزارهای کاربردی است؛ از کدنویسی C/++C روی میکروکنترلرهای تعبیه‌شده مثل ESP32 گرفته تا پردازش سیگنال‌های بی‌سیم و توسعه نیتیو اندروید. پروژه Sepotify تجربه بسیار خوبی بود تا ثابت کنم نرم‌افزارهای مدرن همچنان می‌توانند سبک، سریع و وفادار به منابع سخت‌افزاری باقی بمانند.مشاهده سورس‌کد و پروژه‌هاپروژه Sepotify به صورت کاملاً متن‌باز (Open Source) در گیت‌هاب در دسترس است و خوشحال می‌شوم اگر اهل اندروید یا موسیقی باکیفیت هستید، نگاهی به کدها بیندازید و نظرتان را بگویید:🔗 مخزن پروژه در گیت‌هاب: github.com/RMNO21/Sepotify🌐 وب‌سایت و پورتفولیوی رسمی من: rmno21.github.io💻 سایر پروژه‌ها و سیستم‌های من در گیت‌هاب: github.com/RMNO21اگر شما هم تجربه بهینه‌سازی صدا در اندروید یا پروژه‌های مشابهی داشتید، خوشحال می‌شوم در بخش نظرات در موردش گپ بزنیم.</description><category>رامان تندرو</category><author>رامان تندرو</author><pubDate>Wed, 30 Sep 2026 03:15:54 +0330</pubDate></item></channel></rss>