صفر و یک - برنامه نویسی - لینوکس

دست نوشته های شخصی من در مورد نرم افزار، سیستم عامل و برنامه نویسی لینوکس

صفر و یک - برنامه نویسی - لینوکس

دست نوشته های شخصی من در مورد نرم افزار، سیستم عامل و برنامه نویسی لینوکس

لیدورا یک وبلاگ تخصصی برنامه نویسی یا لینوکس نیست. بیشتر محلیه برای ثبت چیزهایی که قراره بیشتر از یه بار خونده بشن. اگه به درد شما هم خورد که زکات دانش ما پرداخت شده، شکر.

آخرین نظرات

نویسندگان

راهنمای نصب mpd به همراه ncmpcpp در آرچ لینوکس

يكشنبه, ۱۶ فروردين ۱۳۹۴، ۰۳:۴۸ ب.ظ

همون طور که قبلا در اینجا نوشته بودم، من برای پخش موسیقی از ncmpcpp استفاده می‌کنم. توی لینوکس برنامه‌های حرفه‌ای زیادی برای پخش موسیقی مثل Banshee، Rhythmbox، Clementine، Nuvola یا Deadbeef وجود دارن که دست کاربر رو برای انتخاب باز می‌گذارن اما برای من تا به امروز بهترین گزینه MPD به همراه ncmpcpp بوده و هست.

MPD یا Music Player Daemon یه دیمن برای گوش دادن به موسیقیه. دیمن یعنی برنامه ای که به صورت یه سرویس توی پشت زمینه سیستم در حال اجراست و برنامه‌های کاربردی می‌تونن از اون استفاده کنند.

mpd

 

همونطور که توی تصویر بالا مشخصه برای کار با MPD نیاز به یه MPD Client دارید. کلاینت های زیادی برای MPD نوشته شدن. کلاینت‌های خط فرمانی مثل mpc ، کلاینت‌های کنسول مثل ncmpc و ncmpcpp و در نهایت کلاینت‌های گرافیکی مثل gmpc و ario . نصب و استفاده‌ی کلاینت های گرافیکی خیلی راحته اما برای کسایی که مثل من کلاینت‌های کنسول رو ترجیح می‌دن ncmpcpp بهترین گزینه خواهد بود.

 

۱- نصب mpd, mpc و ncmpcpp در آرچ‌لینوکس

# pacman -S mpd mpc ncmpcpp

 

۲- پیکره‌بندی mpd

به پوشه خانه کاربر فعلی برید.

$ cd

پوشه تنظیمات mpd رو بسازید.

$ mkdir .mpd

حالا یه پوشه برای playlist بسازید.

$ mkdir -p ~/.mpd/playlists

فایل‌های مورد نیاز برنامه رو بسازید.

$ touch ~/.mpd/{mpd.db,mpd.log,mpd.pid,mpdstate}  

حالا فایل تنظیمات mpd رو بسازید.

$ nanp ~/.mpd/mpd.conf

و این خطوط رو توش بنویسید.

music_directory "/your/music/folder" 
playlist_directory "/home/username/.mpd/playlists"  
db_file      "/home/username/.mpd/mpd.db" 
log_file      "/home/username/.mpd/mpd.log" 
pid_file      "/home/username/.mpd/mpd.pid" 
state_file     "/home/username/.mpd/mpdstate" 
audio_output { 
     type  "alsa" 
     name  "whatever name you want" 
}  

کسایی که به جای alsa از pulse audio استفاده می‌کنن باید alsa رو با pulse جایگزین کنن.

music_directory "/your/music/folder" 
playlist_directory "/home/username/.mpd/playlists"  
db_file      "/home/username/.mpd/mpd.db" 
log_file      "/home/username/.mpd/mpd.log" 
pid_file      "/home/username/.mpd/mpd.pid" 
state_file     "/home/username/.mpd/mpdstate" 
audio_output { 
     type  "pulse" 
     name  "whatever name you want" 
}  

توی خط اول مسیر آهنگ‌هاتون رو وارد کنید.

به جای username نام کاربر خودتون رو بنویسید.

 

۳- اسکریپت راه‌انداز mpd

یه فایل متنی بسازید و این خطوط رو توش کپی کنید.

 #!/bin/bash 
mpd  

و مجوز اجرایی بهش بدین و توی استارت‌آپ بذاریدش.

کسانی که از محیط‌های دسکتاپ استفاده می‌کنند می‌تونن یا session-manager محیط خودشون mpd رو توی لیست استارت آپ بذارن.

 

۴- تنظیمات ncmpcpp

فایل تنظیمات رو بسازید.

$ nano ~/.ncmpcpp/config

و این خطوط رو توش کپی کنید.

mpd_music_dir = "your/music/folder"

# Visualizer
visualizer_fifo_path = "/tmp/mpd.fifo"
visualizer_output_name = "fifo"
visualizer_type = "wave" (spectrum/wave)

cyclic_scrolling = "yes"
progressbar_look = "~∎~"

مسیر mpd_music_dir با مسیر موجود توی فایل تنظیمات mpd باید یکسان باشه.
این تنظیمات خیلی ابتدایی هستند و شما می‌تونید توی اینترنت تنظیمات خیلی بهتری برای ncmpcpp پیدا کنید.

 

تبریک می گم کارمون تموم شد. حالا سیستم رو دوباره راه اندازی کنید و یه ترمینال باز کنید و ncmpcpp رو اجرا کنید.

 

لیست کلیدهای کنترلی ncmpcpp

     Up k    : Move Cursor up  
     Down j   : Move Cursor down  
     Page Up   : Page up  
     Page Down  : Page down  
     Home    : Home  
     End     : End  
     Tab     : Switch between playlist and browser  
     1 F1    : Help screen  
     2 F2    : Playlist screen  
     3 F3    : Browse screen  
     4 F4    : Search engine  
     5 F5    : Media library  
     6 F6    : Playlist editor  
     7 F7    : Tag editor  
     0 F10    : Clock screen  
   Keys - Global  
  -----------------------------------------  
     s      : Stop  
     P      : Pause  
     >      : Next track  
     <      : Previous track  
     f      : Seek forward  
     b      : Seek backward  
     Left -   : Decrease volume  
     Right +   : Increase volume  
     t      : Toggle space mode (select/add)  
     T      : Toggle add mode  
     |      : Toggle mouse support  
     v      : Reverse selection  
     V      : Deselect all items  
     A      : Add selected items to playlist/m3u file  
     r      : Toggle repeat mode  
     Z      : Shuffle playlist  
     i      : Show song's info  
     I      : Show artist's info  
     L      : Toggle lyrics database  
     l      : Show/hide song's lyrics  
     q Q     : Quit

اینم چند تا اسکرین شات

 

another searching media library

 

artist's info song info  

منبع : + و + و +

نظرات  (۵)

عالی بود، من خودم عاشق کلمنتاینم، البته از وقتی تصمیم گرفتم رو سیستم بسته‌های Qt بیس نصب نکنم گذاشتمش کنار و از deadbeef استفاده میکنم، توانایی تغییر تگ هم داره.

موزیک پلیر ترمینالی با قابلیت تغییر اکولایزر سراغ نداری؟!
خیلی‌هاشون رو تست کردم، ولی هیچ‌کدوم نمی‌تونستن، شایدم من دقت نکردم یا سوادم نرسیده به اون حد کافی برای کانفیگشون.
پاسخ:
ممنون محمد جان که همیشه سر می‌زنی.

همین ncmpcpp اکولایزر هم داره با انواع مختلف. کلید 8 رو بزن تا بره تو مود اکولایزر. تگ ها رو می‌تونی باهاش تغییر بدی. مطمئن باش از این کامل تر چیزی گیرت نمیاد.

اینم اسکرین شات‌های مختلف.
ممنون

نمیدونم این سایت رو قبلا دیدی یا نه، مربوط به کانفیگ ابزارهای خطی و دسکتاپ‌های مینیمال
http://dotshare.it
یه عکس هم از همه کانفیگ‌ها جلوی هر لینک هست، جالبه.
پاسخ:
بله محمد جان کانفیگای جالبی داره مخصوصا برای i3 و dwm
سلام علیرضا جان
دو تا سوال داشتم . اونجا که گفتی باید براش پوشه playlist بسازیم به نظرت دستورش درسته ؟
در آخر هم گفتی اسکریپت راه انداز mpd بسازیم با بش هست . اگه از zsh استفاده کنیم باید خط اول مسیر zsh باشه یا نه ؟
تشکر
پاسخ:
ممنون روزبه جان بابت تصحیح. اون خط اصلاح شد.
استفاده از bash هم مشکلی پیس نمیاره چون zsh میره و بش رو صدا می‌زنه تا این اسکریپت رو اجرا کنه.
سلام علیرضا جان
وقتی میخوام ncmpcpp رو اجرا کنم صدا کار نمیکنه و N/A نشون میده . با اجرای دستور mpd هم خط زیر نشون داده میشه :

socket: Failed to bind to '[::]:6600': Address already in use

بعد من دستور sudo service mpd stop و دوباره دستور mpd رو میزنم خروجی زیر میاد :
server_socket: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded)

الان توی دبیان هستم ولی توی مانجارو هم مشکل همین بود . بعد از این مرحله میتونم با ncmpcpp موزیک گوش بدم . خیلی دنبال راه حل بودم نتونستم کاری کنم که درست بشه . نظرت چیه ؟
متشکرم
پاسخ:
سلام روزبه جان
منم این مشکل رو داشتم.
اول این راه رو امتحان کن که فکر نکنم جواب بده
اول تمام سرویس mps رو stop کن بعد تمام mpd ها رو kill کن بعد دوباره راهش بنداز

راه دوم :
از کانفیگ من استفاده کن ببین مشکل حل می شه؟

music_directory         "~/Music"   # path to your Music directory
playlist_directory      "~/.mpd/playlists"
db_file             "~/.mpd/database"
log_file            "~/.mpd/log"
pid_file            "~/.mpd/pid"
state_file          "~/.mpd/state"

audio_output {
    type        "alsa"
    name        "my alsa device"
    mixer_type    "hardware"
}
       
audio_output {
    type                    "fifo"
    name                    "my_fifo"
    path                    "/tmp/mpd.fifo"
    format                  "44100:16:2"
}
هر کدوم از اون پوشه ها رو نداری بسازشون
سلام دوباره
جواب رو پیدا کردم دو روز وقتمو گرفت !
لطفا راه حل رو چک کن اگه درست بود و خواستی اضافه کن به توضیحات اصلی .
باید اون تغییراتی که برای کانفیگ mpd گفتی ، توی فایل موجود در /etc/mpd.conf صورت بگیره یعنی اون ویرایش بشه . بعد یک کپی ازش توی مسیر "~ / . mpd / " اضافه بشه . یعنی فایل های کانفیگ باید مثل همدیگه باشن . برای من جواب داد و الان مثل بچه آدم اجرا میشه :)

پاسخ:
نه بعضی وقتا حتی با انجام این کار هم باز مشکل پا برجاست متاسفانه.
اما خوشحالم که مشکلت حل شد.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی