ラズパイスタンド2号用 アンプ付きACアダプター
f0021035_19580205.jpg
f0021035_19575485.jpg
raspberry pi と raspbian によるサウンドデータのランダム再生とTBS等とインターネットラジオの再生ができるラズパイスタンドが不調なのでUSBダックを i2s dac にして作りなおしたところ、モニターが大きくなったので、ACアダプターとアンプは別になった。
f0021035_19580572.jpg
f0021035_19580027.jpg
hifiberry-dacにはボリューム機能がないので、ボリューム付きのヘッドホン用の出力もつけてみた。これでまたラジオが聞ける。

[PR]
# by digressive | 2017-10-06 20:06 | プアオーディオ | Comments(0)
 
Raspbian で i2s DAC
f0021035_14561326.jpg
最近のRaspbianにはi2sダックのドライバーが最初から入っているということで、壊れたラズパイスタンドのUSBダックをi2sにして作りなおした。3.5インチのタッチパネルは GPIO ピンを使っているので、i2sダックと物理的に干渉してしまう。ドライバーの競合も心配である。HDMIでi2sダックと競合しないタッチパネルで一番安いのは7インチのこれになった。ぎりぎり使えるが、タッチペンが使えないというおかしな特徴がある(まあ、そりゃそうだろうと思って、100均でDS用ではなくスマホ用のタッチペンを買ってきたら使えました。)。解像度は5インチパネル相当だが、文字が大きいのでシニアには嬉しい。もっと高解像度のモノもあるので、たいして価格も変わらないし、ヤングにはそちらをオススメする。i2sダックは ES9023 はすでに所有しているので、PCM5102A の安いやつをヤフオクで落札した、
f0021035_14561567.jpg
チップコンデンサばかりのチープな小型基板だが、いいチップコンデンサを使用しているそうで、みかけによらないカッチリとした重厚な音がした。このあたりの安い i2sダックのドライバーはたいがい HiFiberry-Dac である。今回使用した Raspbian のバージョンは 2017-09-17 にも入っていた。

pi@raspberrypi:/lib/modules/4.9.50-v7+/kernel/sound/soc/bcm $ ls -l
合計 360
-rw-r--r-- 1 root root 7684 9月 18 16:11 snd-soc-adau1977-adc.ko
-rw-r--r-- 1 root root 12528 9月 18 16:11 snd-soc-allo-boss-dac.ko
-rw-r--r-- 1 root root 10656 9月 18 16:11 snd-soc-allo-digione.ko
-rw-r--r-- 1 root root 21576 9月 18 16:11 snd-soc-allo-piano-dac-plus.ko
-rw-r--r-- 1 root root 8592 9月 18 16:11 snd-soc-allo-piano-dac.ko
-rw-r--r-- 1 root root 13248 9月 18 16:11 snd-soc-audioinjector-octo-soundcard.ko
-rw-r--r-- 1 root root 10104 9月 18 16:11 snd-soc-audioinjector-pi-soundcard.ko
-rw-r--r-- 1 root root 14976 9月 18 16:11 snd-soc-bcm2835-i2s.ko
-rw-r--r-- 1 root root 16092 9月 18 16:11 snd-soc-digidac1-soundcard.ko
-rw-r--r-- 1 root root 8704 9月 18 16:11 snd-soc-dionaudio-loco-v2.ko
-rw-r--r-- 1 root root 7872 9月 18 16:11 snd-soc-dionaudio-loco.ko
-rw-r--r-- 1 root root 8628 9月 18 16:11 snd-soc-fe-pi-audio.ko
-rw-r--r-- 1 root root 9896 9月 18 16:11 snd-soc-googlevoicehat-codec.ko
-rw-r--r-- 1 root root 8240 9月 18 16:11 snd-soc-googlevoicehat-soundcard.ko
-rw-r--r-- 1 root root 7848 9月 18 16:11 snd-soc-hifiberry-amp.ko
-rw-r--r-- 1 root root 8028 9月 18 16:11 snd-soc-hifiberry-dac.ko
-rw-r--r-- 1 root root 11424 9月 18 16:11 snd-soc-hifiberry-dacplus.ko
-rw-r--r-- 1 root root 11020 9月 18 16:11 snd-soc-hifiberry-digi.ko
-rw-r--r-- 1 root root 11180 9月 18 16:11 snd-soc-iqaudio-dac.ko
-rw-r--r-- 1 root root 10508 9月 18 16:11 snd-soc-iqaudio-digi.ko
-rw-r--r-- 1 root root 9204 9月 18 16:11 snd-soc-justboom-dac.ko
-rw-r--r-- 1 root root 9180 9月 18 16:11 snd-soc-justboom-digi.ko
-rw-r--r-- 1 root root 26244 9月 18 16:11 snd-soc-pisound.ko
-rw-r--r-- 1 root root 9528 9月 18 16:11 snd-soc-raspidac3.ko
-rw-r--r-- 1 root root 23584 9月 18 16:11 snd-soc-rpi-cirrus.ko
-rw-r--r-- 1 root root 7628 9月 18 16:11 snd-soc-rpi-dac.ko
-rw-r--r-- 1 root root 8312 9月 18 16:11 snd-soc-rpi-proto.ko


ひとそろい入っているようである。hifiberry-dacplus とかだと、簡単にドライバーが選べて機能するらしいが、hifiberry-dac ではカード0でデフォルトのALSA(PCM2835)と競合してしまうらしく、いろいろとググらないと動かなかった。

普通は /boot/config.txt

dtoverlay=hifiberry-dac

と追加するといいのだが、hifiberry-dac の場合はさらに

# Enable audio (loads snd_bcm2835)
dtparam=audio=on




# Enable audio (loads snd_bcm2835)
#dtparam=audio=on

とbcm2835をコメントアウトし

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on

#dtparam=i2s=on
#dtparam=spi=on




# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
dtparam=i2s=on
#dtparam=spi=on


とコメントアウトを外して i2s を有効にする。

そして /etc/modules

snd_soc_hifiberry_dac

と追加してやっと音が出た。
f0021035_14560850.jpg
タッチペンは使えない(たぶん今のペンが静電気式じゃないからだとは思う)が、画面がやく4倍に大きくなったので、指でなんとかなる。

f0021035_14561176.jpg
この7インチディスプレーは機能や品質はギリギリなのに、やたらと電気を食う。5AのACアダプターでやっとまともに動いた。単3電池4本でも1時間位はいけるだろうか?

[PR]
# by digressive | 2017-09-22 15:39 | プアオーディオ | Comments(0)
 
Raspbian ウブンツでAIFFもFLACもランダム再生-3
f0021035_00564153.png
splay.pl をターミナルを使わずにワンタッチで起動する pi.pl (改訂版)である。必要なアプリをインストールする。

sudo apt-get install perl-tk

sudo apt-get install gnome-terminal

sudo apt-get install mplayer

sudo apt-get install rtmpdump

sudo apt-get install swftools

sudo apt-get install libxml2-utils

f0021035_01032161.gifraspA.gif







radio(解凍する)

play_radiko.sh、play_nhk-radio.sh を GitHub から入手する。

2017-10-8 スクリプトミス 一部修正しました




pi.pl は以下




#!/usr/bin/perl

use Tk;
use Encode;

## pi.pl# 改訂版 初期設定 ###################################################

my $msg = "yes"; #シャットダウン時にメセージを表示する yes/no

my $geometry = "+10+40"; #表示位置
my $minsize1 = 460; #サイズW
my $minsize2 = 140; #サイズH
my $tmGeometry = "42x3+10+210"; #gnorm-terminal サイズ/表示位置
my $pVol = "75"; #初期ボリューム
my $font = "MS ゴシック 8 bold"; #フォント

my $bt0Img = "./raspA.gif"; #aplayボタン 画像
my $bt0Bac = "#fffacd"; #aplayボタン 背景色
my $bt0ABac = "#ffff00"; #aplayボタン アクティブ背景色

my $nextTxt = "▶"; #ネクストボタン テキスト(Aplay 専用)
my $nextFont = "MS ゴシック 18 bold"; #フォント
my $nextFore = "#333333"; #ネクストボタン 文字色
my $nextAFore = "#ffffff"; #ネクストボタン アクティブ文字色

my $stopTxt = "×"; #ストップボタン テキスト(gnorm-terminal を閉じる)
my $stopFore = "#333333"; #ストップボタン 文字色
my $stopAFore = "#ffffff"; #ストップボタン アクティブ文字色
my $stopABase = "#113355"; #ストップボタン アクティブ背景色

my $swTxt = "◯"; #シャットダウン テキスト
my $swFont = "MS ゴシック 18 bold"; #シャットダウン フォント
my $swBac = "#555555"; #シャットダウン 背景色
my $swABac = "#b50008"; #シャットダウン アクティブ背景色
my $swFore = "#dddddd"; #シャットダウン 文字色
my $swAFore = "#ffffff"; #シャットダウン アクティブ文字色

my $volFore = "#333333"; #ボリューム 文字色
my $volBac = "#fff0f5"; #ボリューム 背景色
my $volABac = "#da70d6"; #ボリューム アクティブ色

my $bt1Id = "TBS"; #Radico1 ID (http://www.norikistudio.com/station-id-list)
my $bt1Txt = "TBS"; #Radico1 テキスト
my $bt1Fore = "#333333"; #Radico1 文字色
my $bt1Bac = "#40e0d0"; #Radico1 背景色
my $bt1AFore = "#dedede"; #Radico1 アクティブ文字色
my $bt1ABac = "#333333"; #Radico1 アクティブ背景色

my $bt2Id = "FMJ"; #Radico2 ID (http://www.norikistudio.com/station-id-list)
my $bt2Txt = "FMJ"; #Radico2 テキスト
my $bt2Fore = "#333333"; #Radico2 文字色
my $bt2Bac = "#87cefa"; #Radico2 背景色
my $bt2AFore = "#dedede"; #Radico2 アクティブ文字色
my $bt2ABac = "#333333"; #Radico2 アクティブ背景色

my $bt3Id = "r1"; #らじるらじる1 ID=r1:NHKラジオ第1/r2:NHKラジオ第2/fm:NHK FM
my $bt3Txt = "NHK1"; #らじるらじる1 テキスト
my $bt3Fore = "#333333"; #らじるらじる1 文字色
my $bt3Bac = "#ffd700"; #らじるらじる1 背景色
my $bt3AFore = "#dedede"; #らじるらじる1 アクティブ文字色
my $bt3ABac = "#333333"; #らじるらじる1 アクティブ背景色

my $bt4Id = "fm"; #らじるらじる2 ID=r1:NHKラジオ第1/r2:NHKラジオ第2/fm:NHK FM
my $bt4Txt = "N-FM"; #らじるらじる2 テキスト
my $bt4Fore = "#333333"; #らじるらじる2 文字色
my $bt4Bac = "#ffe4e1"; #らじるらじる2 背景色
my $bt4AFore = "#dedede"; #らじるらじる2 アクティブ文字色
my $bt4ABac = "#333333"; #らじるらじる2 アクティブ背景色

#SHOUTcastボタン
#ID アクティブ背景色 文字色 背景色 アクティブ文字色 テキスト
my $s1Id = "1734059"; my $s1Ab = "#333333"; my $s1Fo = "#333333"; my $s1Ba = "#98fb98"; my $s1Af = "#dedede"; my $s1Tx = "WNCS";#WNCS The Point!
my $s2Id = "1331549"; my $s2Ab = "#333333"; my $s2Fo = "#333333"; my $s2Ba = "#da70d6"; my $s2Af = "#dedede"; my $s2Tx = "Jamm";#Jamm FM
my $s3Id = "297368"; my $s3Ab = "#333333"; my $s3Fo = "#333333"; my $s3Ba = "#db7093"; my $s3Af = "#dedede"; my $s3Tx = "smooth";#Smooth Jazz Florida Plus
my $s4Id = "15953"; my $s4Ab = "#333333"; my $s4Fo = "#333333"; my $s4Ba = "#ffa500"; my $s4Af = "#dedede"; my $s4Tx = "EI";#El Tocadiscos

my $s5Id = "1108330"; my $s5Ab = "#333333"; my $s5Fo = "#333333"; my $s5Ba = "#c0c0c0"; my $s5Af = "#dedede"; my $s5Tx = "NST";#Nonstop Casiopea
my $s6Id = "1477271"; my $s6Ab = "#333333"; my $s6Fo = "#333333"; my $s6Ba = "#dda0dd"; my $s6Af = "#dedede"; my $s6Tx = "BEST";#BEST SMOOTH JAZZ - UK (LONDON) HOST ROD LUCAS
my $s7Id = "1323717"; my $s7Ab = "#333333"; my $s7Fo = "#f8f8ff"; my $s7Ba = "#dc143c"; my $s7Af = "#dedede"; my $s7Tx = "LOUNGE";#PulsRadio LOUNGE
my $s8Id = "1292701"; my $s8Ab = "#333333"; my $s8Fo = "#333333"; my $s8Ba = "#f0e68c"; my $s8Af = "#dedede"; my $s8Tx = "Lounge";#Nonstop Casiopea

my $s9Id = "1563396"; my $s9Ab = "#333333"; my $s9Fo = "#333333"; my $s9Ba = "#fff5ee"; my $s9Af = "#dedede"; my $s9Tx = "Gloval";#SmoothJazz.com Global
my $s10Id = "419932"; my $s10Ab = "#333333"; my $s10Fo = "#333333"; my $s10Ba = "#da70d6"; my $s10Af = "#dedede"; my $s10Tx = "WSJE";#WSJE-DB - Smooth Jazz Expressions
my $s11Id = "1077152"; my $s11Ab = "#333333"; my $s11Fo = "#333333"; my $s11Ba = "#9acd32"; my $s11Af = "#dedede"; my $s11Tx = "World";#The world
my $s12Id = "1586446"; my $s12Ab = "#333333"; my $s12Fo = "#333333"; my $s12Ba = "#da70d6"; my $s12Af = "#dedede"; my $s12Tx = "Jpop";#J-Pop Sakura 17

my @Id = ($s1Id,$s2Id,$s3Id,$s4Id,$s5Id,$s6Id,$s7Id,$s8Id,$s9Id,$s10Id,$s11Id,$s12Id);
my @Tx = ($s1Tx,$s2Tx,$s3Tx,$s4Tx,$s5Tx,$s6Tx,$s7Tx,$s8Tx,$s9Tx,$s10Tx,$s11Tx,$s12Tx);
my @Ab = ($s1Ab,$s2Ab,$s3Ab,$s4Ab,$s5Ab,$s6Ab,$s7Ab,$s8Ab,$s9Ab,$s10Ab,$s11Ab,$s12Ab);
my @Af = ($s1Af,$s2Af,$s3Af,$s4Af,$s5Af,$s6Af,$s7Af,$s8Af,$s9Af,$s10Af,$s11Af,$s12Af);
my @Ba = ($s1Ba,$s2Ba,$s3Ba,$s4Ba,$s5Ba,$s6Ba,$s7Ba,$s8Ba,$s9Ba,$s10Ba,$s11Ba,$s12Ba);
my @Fo = ($s1Fo,$s2Fo,$s3Fo,$s4Fo,$s5Fo,$s6Fo,$s7Fo,$s8Fo,$s9Fo,$s10Fo,$s11Fo,$s12Fo);

my $padxi = 0;
my $padyi = 0;

#####################################################################

my $bTi = 0;

$mw = new MainWindow();
$mw->minsize($minsize1,$minsize2);
$mw->geometry("$geometry");

$main = $mw->Frame();
$main->pack(
-side => "top",
-fill => "both",
-expand => "yes",
);

$mainL = $main->Frame();
$mainL->pack(
-side => "left",
);

$image = $mainL->Photo( -file => "$bt0Img" );
$bt0 = $mainL->Button(
-image => $image,
-relief => "flat",
-background => "$bt0Bac",
-activebackground => "$bt0ABac",
-padx => 0,
-pady => 0,
-command => \&Ap,
);
$bt0->pack(
-side => "left",
-fill => "both",
-expand => "yes",
);

$mainL2 = $mainL->Frame();
$mainL2->pack(
-side => "left",
-fill => "both",
-expand => "yes",
);

$next = $mainL2->Button(
-relief => "flat",
-text => decode("utf8", "$nextTxt"),
-font => "$nextFont",
-activeforeground => "$nextAFore",
-foreground => "$nextFore",
-background => "$bt0Bac",
-activebackground => "$bt0ABac",
-padx => 0,
-pady => 0,
-command => \&Next,
);
$next->pack(
-side => "top",
-fill => "both",
-expand => "yes",
);

$stop = $mainL2->Button(
-relief => "flat",
-text => decode("utf8", "$stopTxt"),
-font => "$font",
-activeforeground => "$stopAFore",
-foreground => "$stopFore",
-background => "$bt0Bac",
-activebackground => "$stopABase",
-padx => 0,
-pady => 0,
-command => \&Chk,
);
$stop->pack(
-side => "top",
-fill => "both",
-expand => "yes",
);

$mainR = $main->Frame();
$mainR->pack(
-side => "left",
-fill => "both",
-expand => "yes",
);

$mainR1 = $mainR->Frame(
-padx => $padxi,
-pady => $padyi,
);
$mainR1->pack(
-side => "top",
-fill => "both",
-expand => "yes",
);

$bt1 = $mainR1->Button(
-relief => "flat",
-text => decode("utf8", "$bt1Txt"),
-font => "$font",
-activebackground => "$bt1ABac",
-activeforeground => "$bt1AFore",
-background => "$bt1Bac",
-foreground => "$bt1Fore",
-padx => $padxi,
-pady => $padyi,
-command => \&Nr1,
);
$bt1->pack(
-side => "left",
-fill => "both",
-expand => "yes",
);

$bt2 = $mainR1->Button(
-relief => "flat",
-text => decode("utf8", "$bt2Txt"),
-font => "$font",
-activebackground => "$bt2ABac",
-activeforeground => "$bt2AFore",
-background => "$bt2Bac",
-foreground => "$bt2Fore",
-padx => $padxi,
-pady => $padyi,
-command => \&Nr2,
);
$bt2->pack(
-side => "left",
-fill => "both",
-expand => "yes",
);

$bt3 = $mainR1->Button(
-relief => "flat",
-text => decode("utf8", "$bt3Txt"),
-font => "$font",
-activebackground => "$bt3ABac",
-activeforeground => "$bt3AFore",
-background => "$bt3Bac",
-foreground => "$bt3Fore",
-padx => $padxi,
-pady => $padyi,
-command => \&Nr3,
);
$bt3->pack(
-side => "left",
-fill => "both",
-expand => "yes",
);

$bt4 = $mainR1->Button(
-relief => "flat",
-text => decode("utf8", "$bt4Txt"),
-font => "$font",
-activebackground => "$bt4ABac",
-activeforeground => "$bt4AFore",
-background => "$bt4Bac",
-foreground => "$bt4Fore",
-padx => $padxi,
-pady => $padyi,
-command => \&Nr4,
);
$bt4->pack(
-side => "left",
-fill => "both",
-expand => "yes",
);


for($i = 0; $i < 12; $i++){
if($i == 0||$i == 4||$i == 8){
if($i == 0){$fii = 1;}elsif($i == 4){$fii = 2;}elsif($i == 8){$fii = 3;}
$mainRs[$fii] = $mainR->Frame(
-padx => $padxi,
-pady => $padyi,
);
$mainRs[$fii]->pack(
-side => "top",
-fill => "both",
-expand => "yes",
);
}


$sh[$i] = $mainRs[$fii]->Button(
-relief => "flat",
-text => decode("utf8", "$Tx[$i]"),
-font => "$font",
-activebackground => "$Ab[$i]",
-activeforeground => "$Af[$i]",
-background => "$Ba[$i]",
-foreground => "$Fo[$i]",
-padx => $padxi,
-pady => $padyi,
-command => [ \&Scast,$Id[$i] ],
);
$sh[$i]->pack(
-side => "left",
-fill => "both",
-expand => "yes",
);
}

$mvol = $mw->Frame();
$mvol->pack(
-side => "top",
-fill => "both",
-expand => "yes",
);

$sc = $mvol->Scale(
-orient => "horizontal",
-from => 0,
-to => 100,
-variable => \$vol,
-command => \&Cv,
-activebackground => "$volABac",
-background => "$volBac",
-foreground => "$volFore",
);

$sc->set($pVol);

$sc->pack(
-side => "left",
-fill => "both",
-expand => "yes",
);

$sw = $mvol->Button(
-text => decode("utf8", "$swTxt"),
-font => "$swFont",
-relief => "flat",
-text => decode("utf8", "$swTxt"),
-font => "$font",
-activeforeground => "$swAFore",
-activebackground => "$swABac",
-background => "$swBac",
-foreground => "$swFore",
-padx => 0,
-pady => 0,
-command => \&Sdown,
);
$sw->pack(
-side => "left",,
);

MainLoop;

#####################################################################

sub Ap{
&Chk;
$bTi = 8;
system("gnome-terminal --geometry=$tmGeometry -e \"perl splay.pl -def -list\"");
}

sub Chk{
if($bTi){system("killall -s HUP gnome-terminal-server"); $bTi = 0;};
#Terminal Window Close
}

sub Next{
system("killall -s HUP aplay mpg321 vlc");
}

sub Nr1{
&Chk;
$bTi = 8;
system("gnome-terminal --geometry=$tmGeometry -e \"/home/pi/play_radiko.sh $bt1Id\""); #ID
}

sub Nr2{
&Chk;
$bTi = 8;
system("gnome-terminal --geometry=$tmGeometry -e \"/home/pi/play_radiko.sh $bt2Id\""); #ID
}

sub Nr3{
&Chk;
$bTi = 8;
system("gnome-terminal --geometry=$tmGeometry -e \"/home/pi/play_nhk-radio.sh $bt3Id\""); #ID
}

sub Nr4{
&Chk;
$bTi = 8;
system("gnome-terminal --geometry=$tmGeometry -e \"/home/pi/play_nhk-radio.sh $bt4Id\""); #ID
}

sub Scast{
&Chk;
$bTi = 8;
system("gnome-terminal --geometry=$tmGeometry -e \"mplayer -playlist http://yp.shoutcast.com/sbin/tunein-station.pls?id=$_[0]\""); #ID
}

sub Cv{
system("amixer -c 0 sset PCM $vol\%"); #ヴォリューム USB (ライン出力の場合は 1 を 0 に)
}

sub Sdown{
if($msg eq "yes"){
my $msgbox = $mw->messageBox(
-title => "really",
-icon => "question",
-type => "OkCancel",
-default => "Cancel",
-message => decode("utf8", "シャットダウン!?"),
);
if($msgbox eq 'Ok'){system("sudo shutdown -h now");}else{return;
}
}
else{system("sudo shutdown -h now");} #Stop
}

###########/home/pi/pi.pl 改訂版 ##################ここまで


すべて同じフォルダに置く

$ sudo chmod 755 play_radiko.sh
$ sudo chmod 755 play_nhk-radio.sh
$ sudo chmod 777 radio
$ sudo chmod 755 pi.pl

ラズベリーパイを起動して、ログインした画面にデーモン小暮として Perl/TK による操作画面を表示するには、

/home/pi/.profile

の下の方に Perl/TK のスクリプトファイル( pi.pl )を起動するように記述する。

sudo -u pi perl /home/pi/pi.pl &

ターミナルで

perl pi.pl

でもよい


[PR]
# by digressive | 2017-09-11 01:21 | プアオーディオ | Comments(0)
 
Raspbian ウブンツでAIFFもFLACもランダム再生-2
f0021035_23170298.png
あまりに便利すぎる VLC なので、aplay.plを少し修正して機能を制限してみた。Linux (ubuntu,raspbian)で mp3 wave aiff aac wma flac alac をランダム再生する。 splay.pl とする。


2017−10−8 一部修正しました




#!/usr/bin/perl

## -def オプションで再生したいフォルダー。ほぼ必須。
#$defaulturl = "/media/pi"; #Raspbian(外部メディア)の場合
$defaulturl = "";

## 追加フォルダー。ここに書き込んだフォルダー内の該当音楽ファイルは必ず再生されます。
#$defaulturls = "";

$max = 0; #再生曲数 0で無制限

$dir = "./";
$udir = "0";
$list = 0;
$alist = 0;
$noran = 0;
$down = 0;
$vlc = 0;
$vlcs = " ";


if ($ARGV[0]){
foreach $_ (@ARGV){

if($_ =~ /\-dir\=/i){
$_ =~ s/\-dir\=//; $dir = $_;
$udir = 8;
}

if($_ =~ /\-max\=/i){$_ =~ s/\-max\=//; $max = $_;}

if($_ =~ /\-def/i){$dir = "$defaulturl"; $udir = 88;}

if($_ =~ /\-list/i){$list = 8;}
if($_ =~ /\-alist/i){$alist = 8;}
if($_ =~ /\-noran/i){$noran = 8;}
if($_ =~ /\-down/i){$down = 8;}
if($_ =~ /\-vlc/i){$vlc = 8;}
}
}
else{
$dir = "./";
print "オプションがないい場合は、同じフォルダ内を演奏しています。\n";
}

@type = (".mp3",".wav",".wave",".aif",".aiff",".wave",".aac",".wma",".flac",".m4a","alac");

&getlist($dir);
if($defaulturls ne ""){&getlist($defaulturls);}


print "\n********************************************\n";
print "splay.pl は aplay(WAVE) / mpg321(MP3) / cvlc(AIFF 他) でのランダム演奏用です。\n";
print "(フォーマット=WAVE.AIFF.MP3.AAC.WMA.FLAC.ALAC)\n";
print "ex: perl aplay.pl -list -def\n";
print "------------------------------------------------\n";
print "-vlc (全てVLCで再生)\n";
print "-def (設定したデフォルト\"" . $defaulturl . "\"を再生)\n";
print "-alist (再生一覧リストを表示)\n";
print "-list (再生リストを表示)\n";
print "-noran (ランダム再生しない)\n";
print "-down (逆順に再生)\n";
print "-dir=URL (URLのフォルダー内を演奏)\n";
print "-max=数字 (最大演奏回数、無指定で無制限)\n";
print "演奏中 次の局 Ctrl + C\n";
print "演奏中 中止 Ctrl + Z\n\n";


if($noran){@new = @files; print "\**NORANDOM**\n\n";}
elsif($down){@new = sort {$b cmp $a} @files; print "\**DOWN**\n\n";}
else{
foreach (@files){
my $r = rand @new+1;
push(@new, $new[$r]);
$new[$r] = $_;
}
print "\**RANDOM**\n\n";
}

if($alist){
$listii = 0; print "再生予定リスト\n------------------------------------------------\n";

foreach (@new){
$listii ++;
$wlists = $_;
$wlists =~ s/$defaulturl//g;
$wlists =~ s/$defaulturls//g;
$wlists =~ s/\.mp3//ig;
$wlists =~ s/\.wa.+//ig;
$wlists =~ s/\.ai.+//ig;
print "$listii*$wlists\n";
if($listii == $max){last;}}

print "------------------------------------------------\n\n\n";
}

$listi = 0;
foreach (@new){
$listi ++;

$lists = " \"$_\"";

if($list){
$wlists = $_;
$wlists =~ s/$defaulturl\//\($listi\)/g;
$wlists =~ s/$defaulturls\//\($listi\)/g;
$wlists =~ s/\.mp3//ig;
$wlists =~ s/\.wa.+//ig;
$wlists =~ s/\.ai.+//ig;
}

if($list){print "------------------------------------------------\n\n";}
if($vlc){
if($list){print "NowPlay$listii*$wlists\n";}
if($lists){system("cvlc -q $lists --play-and-exit");}
else{print "--NoFile--\n\n";}
}

else{
if($lists =~ /\.mp3/ig){
if($lists){system("mpg321 -q $lists");}
else{print "--NoFile--\n\n";}
}
elsif($lists =~ /\.wa.+/ig){
if($list){print "NowPlay$listii*$wlists\n";}
if($lists){system("aplay -q $lists");}
else{print "--NoFile--\n\n";}
}
else{
if($list){print "NowPlay$listii*$wlists\n";}
if($lists){system("cvlc -q $lists --play-and-exit");}
else{print "--NoFile--\n\n";}
}
if($listi == $max){last;}
}
}

if($vlc){system("cvlc $vlcs --play-and-exit");}

exit;
#-----------------------------------------------------------------------

sub getlist{
my $ndir = $_[0];
my @get;

#opendir(IN,$ndir) or die "opendir $dir エラー : $!";
opendir(IN,$ndir) or return;
@get = readdir IN;
closedir(IN);

foreach $files (@get){
next if $files =~ /^\.\.$/;
next if $files =~ /^\.$/;


foreach (@type) {
if($files =~ /$_$/i){
if($ndir =~ /^\.\/.+/i){push @files, "$ndir" . "/$files";}
elsif($udir){$ndir =~ s/\/$//i; push @files, "$ndir" . "/$files";}
else{push @files, "$files";}
}
}


if($ndir =~ /^\.\/.+/i){$nndir = $ndir . "/$files";}
elsif($udir){$ndir =~ s/\/$//i; $nndir = "$ndir" . "/$files";}
else{$nndir = $ndir . "$files";}

#print "$nndir\n";#TEST用
if(-d $nndir){&getlist($nndir);}
}

}

################################################# ここまで

-vlc オプションで全てvlcで再生する。多少音質が違うようである。小生は好みだが、好き嫌いもあるだろう。

必要なアプリもインストールする。

sudo apt-get install mpg321

sudo apt-get install vlc

[PR]
# by digressive | 2017-09-10 23:30 | すみません、取り乱しました。 | Comments(0)
 
Raspbian ウブンツでAIFFもFLACもランダム再生-1
f0021035_10101025.gif
aplayは基本英にWAVEファイル専用だし、mpg321はやはりMP3再生用のような気がするし、AIFFをLinux(ubuntu.Raspberry Pi)で再生するのは難しいかと思っていたら、VLCを忘れていた!コマンドライン用のcvlcで再生してみると、小生の耳ではaplayに負けてはいない音質である、多くのフォーマットに対応するし、vlcだけでフォルダーの一括ランダム再生も可能である。あまりになんでもできてかえって難しい

利用方法: vlc [オプション] [ストリーム] ...
コマンドライン上で複数のストリームを指定することが可能です。
指定されたストリームはプレイリストにキューイングされます。
最初に指定されたものから順に再生されます。

オプションの指定形式:
--option プログラムの長さを指定するグローバルオプション
-option グローバルオプション --option の一文字バージョン
:option ストリームに直接適用するオプション、前の設定は上書きされます。

ファイル入力 (filesystem)
ディレクトリ:
--recursive {none,collapse,expand}
サブディレクトリの振る舞い
サブディレクトリが展開されるべきかどうか選択します。 none:
プレイリストにサブディレクトリは表示されません。 collapse:
最初の再生時にサブディレクトリが展開されます。 expand:
すべてのサブディレクトリは展開されます。
--ignore-filetypes <文字列>
除外する拡張子
ディレクトリを開いた時、ここで指定されている拡張子のファイルはプレイ
リストに追加されません。
プレイリストファイルを含むディレクトリを追加する場合に有用です。除外
するファイルの拡張子をカンマ区切りで指定します。
--directory-sort {collate,version,none}
ディレクトリのソート順
ディレクトリから項目が追加された時に使用されるソートアルゴリズムを定
義します。

ALSAオーディオキャプチャー (access_alsa)
デフォルトのALSAキャプチャーデバイスをオープンする場合は alsa:// 、または特定のデバイス(名前: SOURCE)をオープンする場合は alsa://SOURCE を指定します。
--alsa-stereo, --no-alsa-stereo
ステレオ (デフォルトで有効)
ステレオ (デフォルトで有効)
--alsa-samplerate {192000 (192000 Hz), 176400 (176400 Hz), 96000 (96000 Hz), 88200 (88200 Hz), 48000 (48000 Hz), 44100 (44100 Hz), 32000 (32000 Hz), 22050 (22050 Hz), 24000 (24000 Hz), 16000 (16000 Hz), 11025 (11025 Hz), 8000 (8000 Hz), 4000 (4000 Hz)}
サンプリングレート
サンプリングレート


注釈: 詳細設定オプションしか持たないため、3のモジュールが表示されませんでした。

長すぎて読む気もしない…上記は本当にほんの一部である。

[PR]
# by digressive | 2017-09-10 23:14 | プアオーディオ | Comments(0)
 
raspbian インストールの巻き
f0021035_19453095.jpg
TBSが聴けてハイレゾ(小生の場合はプアオーディオ的にmp3の320Kbpsのことである)もネットラジオもワンタッチで聴ける、超お気に入りのラズパイスタンドであるが、家にいるときはほぼ鳴っていた。ついにアンプの出力の接触が悪くなったらしく、片方から音がしなくなったので修理しようとしたところ、どこかショートさせたらしく、ACアダプターのヒューズを飛ばしてしまったらしい!これは分解して全面修理である。億劫である。
そこで気まぐれにOS(raspbian)について調べてみると、あきらめていた3.5インチディスプレーでの最新版インストールも、さらにI2S接続もできるようになったらしい!
インストールにはアマゾンのKUMANの3.5インチタッチパネルのタカチャさんのレヴューが大変に参考になった。あまりに助かったので全文引用してしまう。

付属のイメージ以外でインストールする(後からLCDのドライバを入れる方法)が正しい方法でインストールしないと起動時にフリーズするようになり再インストールになります。随分苦労したので書きます。試して取り合えず成功したのはRaspbian公式イメージでインストールlocaleはまだ触ってはだめです。ファームウェア更新
sudo rpi-update
sudo apt-get update
sudo apt-get upgrade
linuxの日本語フォント、入力システムをインストール。(GUI環境にてtakaoで検索したら出てくるフォント色々と。、CUI環境にて
sudo apt install fcitx-mozc --install-recommends
と入れて取り合えずfcitx-mozc をインストール)ここで再インストール後?locale変更、
sudo raspi-config
にて本体設定ここからドライバのインストール手順今稼働しているパソコンとかから適当にダウンロードして来てはだめです。3.5inch RPi LCD (A) Wave share wikiでgoogle検索、ドライバのリンクのアドレスを確認CUIにて
wget (ダウンロードファイルのアドレス)cd /home/pi/tar zxvf (落としたファイルのファイル名。
多分LCD-show-161112.tar.gzとか)ここから説明書の手順に従うって感じでしたが、Linuxとか触った事ない自分にはまるっきりちんぷんかんぷんでコマンドを検索したりちょっと難しい作業でした。もうちょっと説明が欲しかったですね。残念な感じがして星×3にしました。長くなりましたが、今後ご購入の方はご参考にしていただけたらと思います

ちなみに最新のRsspbianでは、ドライバーは LCD-show-170703.tar.gzにしないと動かなかった。
無事インストールはできたが、アップデートの度に設定ファイルを編集する必要があるというなにげにヘビーな問題点は残る。

Note: this LCD won't work after apt-get upgrade, in such cases, please edit the config.txt file in the SD card and remove this statement: dtoverlay=ads7846

なんとか3.5インチパネルに表示できた。pi.plなどを入れると、今までどおりにつかえる、radikoがコマンドで再生できる play_radiko.sh であるが、radikoの仕様変更になって使えないという問題が頻発しているが、使えていたradioフォルダを流用すればなんとか当面はごまかせるらしい。
f0021035_19254071.png
なんだか、普通になってしまった。画面上で右クリックすればデスクトップの編集ができる。
f0021035_19254328.png
やっぱりこうか?



[PR]
# by digressive | 2017-08-26 19:28 | プアオーディオ | Comments(0)
 
bluetooth ヘッドホン BS19 feat SQ5
f0021035_15563798.jpg
f0021035_15564094.jpg
メガドンキで安いような演出にクラクラと購入したブルートゥースヘッドホンのBS19だが、ラジオを聴いているうちに侮れない音になってきた。受信部分は機能は絞られているが、なかなかしっかりとしたモノではないかと思える。それにしてもイヤホンを耳に突っ込むのは倒錯的で気色悪いのでスピーカー部分を引っこ抜いてミニプラグのジャックを付けてみた。この方が商品価値があるかも?

ハードオフのジャッンクコーナーで見つけたヘッドホンをアルコールで拭き清めてホットボンドで仮付けしてやった。ジャンクでありながら500円もしたが、たまたま持っていたiPhone4で試聴してみると、解像度はぼんやりだが、優しく豊かな音で、軽くて装着感もいい感じの聴き疲れしないっぽい素敵なヘッドホンであったので思い切って購入した。
f0021035_15560900.png
f0021035_15561239.png
ダンゼン音が良くなった!気分はウタダである。



[PR]
# by digressive | 2017-08-26 16:13 | プアオーディオ | Comments(0)
 
bluetooth ヘッドホン BS19
f0021035_22193771.jpg
bluetooth ヘッドホン BS19 である。iPhone用のヘッドセット対応イヤホンである。駅前のメガドンキをうろうろしていて発見した。832円である。質感としては200円でも驚かないレヴェルである。音質はどうかというより、音が出るかどうかが心配な、パチモンの王道を行くテイストである。秋葉原で段ボールに積まれている感が懐かしくて思わず購入してしまった。
試してみると、windows8.1では音が途切れ途切れになり、ubuntuとマックでは接続できなかった。カメラ代わりにしているiPhone4では再生ができた。音質は100均のヘッドホンの低音をさらに切り落とした感じで音楽は苦しいが、そこそこにクリアな音でヘッドセットとしてはいい感じではなかろうか。ただ、コントロールのボタン類がすべて後頭部に来るので。四十肩のシトにはお勧めできない。
f0021035_22195877.jpg
わかってはいたが、こりゃ使えんですわ。じゃあ、なんで買ったのだろう?

追記
iphone4にradicoをインストールして家事をしながらラジオを聞いていたら、音楽もだんだん聞けるようになってきた。100均のヘッドホン(プアオーディオ標準)と同等以上になってきた。やはり最低限のエージングというものが必要だったみたいである。とりあえずiphonneでなら使えなくはないぞ!

[PR]
# by digressive | 2017-08-20 22:34 | プアオーディオ | Comments(0)
 
カーオーディオをCDプレーヤーにする-2
f0021035_09292347.png
前回作ったカーオーディオのCDプレーヤー用にスピーカーボックスつきケースを作った。8ℓ程のバスレフである。昔10cmフルレンジとしてヤフオクで出品されていたのを、おまけのドロンコーンが欲しくて落札したユニットが、届いてみると実際は9cmであったのを取り付けて聞いてみると、実際はウーファーだったのでやむなく9cmで綺麗に開けた穴をヤスリや彫刻刀でシコシコシコシコシコシコシコシコシコシコシコシコシコシコシコシコシコシコと5ミリ広げて10センチのTangBandのお気に入りのフルレンジと交換した。
f0021035_09292076.png
けしてハイファイではないが緩いドンシャリで聴きやすいのではなかろうか。市販のプラのCDプレーヤーではけして出ない音ではある。アマゾンでFM/AM用と売っていたロッドアンテナが激安だったので購入してみたが、届いてみるとどう見てもただの安物のFMロッドアンテナであるが、つけてみると、やはりFMしか入らなかった。安物買いの………
f0021035_09292617.png
どうやって神戸に持って行こうか??!!!

[PR]
# by digressive | 2017-08-04 09:46 | マカーはケチだから | Comments(0)
 
カーオーディオをプレーヤーにする-1
f0021035_21093816.png
最近テレビを見ていると、事実だとか道義だとか礼儀や知性や責任や使命などにウジウジとこだわっていては出世はできないということが実感として感じられる。やはり偉くなるヤツにまともなヤツはいない。まあ、それを選ぶヤツが一番悪い。そんなこんなはどうでもいいとしてカーオーディオである。
神戸の母親が、CDプレーヤーが壊れたというので、AMAZONで購入して直接神戸に送ろうとCDプレーヤーを見ていて、なぜかしらヤフオクでスズキアルトのカーオーディオを落札してしまった。もっと高機能なものも(DVDやTVまで見られる)あるが、アナログな感じのこれにした。病気だろうか?カーオーディオをCDプレーヤーにするには色々とパーツがいる。
f0021035_21094929.png
f0021035_21093070.png
スズキは20pinの逆ハーネス(逆カプラ)である。赤線(アクセサリー)プレーヤー起動時の12Vである。オレンジ/白色の線(イルミネーション)はボタンのLEDライトである。黄色(メイン・バッテリー)は電源につなぎっぱなしで設定を維持できる。赤線とイルミネーションはお好みでスイッチをつけてもいい。電源は5Aもあればいいだろうか。トランスがいいという話もあるが、なかなかナイだろうから、スイッチング電源でいいようである。黒線が共通のグランドになる。グランドは本体にも落とすのがお作法であるようだ。
白線;フロントスピーカー L +
白/黒:フロントスピーカー L -
灰:フロントスピーカー R +
灰/黒:フロントスピーカー - R
緑線;リアピーカー L +
緑/黒:リアスピーカー L -
紫:リアスピーカー R +
紫/黒:リアスピーカー - R
メーカーや機種によっていろんな形があるのでよく確認する必要がある。

純正ではなく、カーオーディオメーカーの場合は、いらないようである。

f0021035_21094401.png
必要ならスイッチ
f0021035_21094744.png
アンテナをつなぐ端子、アンテナはカーラジオ用がいい。針金のハンガーを伸ばしてもいいらしい。

f0021035_21094274.png
f0021035_21092322.png
外部入力端子がないので、ハンズフリー用のカプラにステレオミニジャックをつないでやった。専用の逆カプラもあるが今回は余っていたジャンパーワイヤで代用した。1K〜1.5Kの抵抗はなくてもいいが、つけるとリアスピーカーが使えて、TELではなくAUXと表示してくれるらしい。
f0021035_21093384.png
f0021035_21093590.png
f0021035_21094097.png
これでラジオつきのCDプレーヤーになる。手間だが安くて丈夫である。意味はないが、車の振動にも強い。

[PR]
# by digressive | 2017-07-29 22:03 | プアオーディオ | Comments(0)
 



人間は、考える足である。
by ラーメン
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
カテゴリ
リンク

おやつ会

人との交流が人を育てます。


ホームページ作成
WEBデザイン(Perl PHP MySQL)
グラフィックデザイン
CI 各種印刷物 広告 SP
はじめました。

■□■□■□






RandomReading《読書記録》
通勤電車が私の書斎さ。
■□■□■□






WEBカラーネーム

WEBカラーチャート

「もう一つの日本」
どう展開するのか、見えませんが楽しみです。

放射NO! 防御プロジェクト
フェイスブック発、自分の身は自分で守ろう

植草一秀の『知られざる真実』
頑張れミラーマン

世に倦む日々
無料版です

奥の横道(写真)
携帯で写真を撮りだすとクセになる。

マニア・マニア
何が彼らをそこまで駆り立てるのか?

天木直人.com
多少偏向していそうだが、
文春よりは参考になる


きっこのブログ
謎のブログ、リンクしていいのかな?

とりまきメモ
ブログというより、日記帳ですね。

LINK MEMO
小生の勝手なリンク集


小金井市の地域SNSです
WEB デザイン モリ のページもあります。

アメブロもよろしく。

pixiv

twitterフォロー ミー

上のボタンが好きな背景色で作れます


青空文庫


お気に入りブログ
ライフログ
以前の記事
2017年 10月
2017年 09月
2017年 08月
2017年 07月
2017年 06月
2017年 05月
2017年 04月
2017年 03月
2017年 02月
2017年 01月
2016年 12月
2016年 10月
2016年 09月
2016年 08月
2016年 06月
2016年 04月
2016年 03月
2016年 02月
2016年 01月
2015年 12月
2015年 11月
2015年 10月
2015年 09月
2015年 08月
2015年 07月
2015年 06月
2015年 05月
2015年 04月
2015年 03月
2015年 02月
2015年 01月
2014年 12月
2014年 11月
2014年 10月
2014年 09月
2014年 08月
2014年 07月
2014年 06月
2014年 05月
2014年 04月
2014年 03月
2014年 02月
2014年 01月
2013年 12月
2013年 11月
2013年 10月
2013年 09月
2013年 08月
2013年 07月
2013年 06月
2013年 05月
2013年 04月
2013年 02月
2013年 01月
2012年 12月
2012年 11月
2012年 10月
2012年 09月
2012年 08月
2012年 07月
2012年 06月
2012年 05月
2012年 04月
2012年 03月
2012年 02月
2012年 01月
2011年 12月
2011年 11月
2011年 10月
2011年 09月
2011年 08月
2011年 07月
2011年 06月
2011年 05月
2011年 04月
2011年 03月
2011年 02月
2011年 01月
2010年 12月
2010年 11月
2010年 10月
2010年 08月
2010年 07月
2010年 06月
2010年 05月
2010年 04月
2010年 03月
2010年 02月
2010年 01月
2009年 12月
2009年 11月
2009年 10月
2009年 09月
2009年 08月
2009年 07月
2009年 06月
2009年 05月
2009年 04月
2009年 03月
2009年 02月
2009年 01月
2008年 12月
2008年 11月
2008年 10月
2008年 09月
2008年 08月
2008年 06月
2008年 05月
2008年 04月
2008年 03月
2008年 02月
2008年 01月
2007年 12月
2007年 11月
2007年 10月
2007年 09月
2007年 08月
2007年 07月
2007年 06月
2007年 05月
2007年 04月
2007年 03月
2007年 02月
2007年 01月
2006年 12月
2006年 11月
2006年 10月
2006年 09月
2006年 08月
最新のコメント
GoogleのAPIで叩..
by かえる at 16:27
たいていのブログに準備さ..
by digressive at 22:48
つまり、グーグル(全体の..
by かえる at 10:39
ワードからgoogleの..
by digressive at 19:06
googleの検索フォー..
by digressive at 18:59
これは...グーグル指定..
by かえる at 11:14
仕事でやらされたこともあ..
by digressive at 22:52
もしや、スカイプやってま..
by かえる at 15:19
プア派としては、100均..
by digressive at 22:11
ことしの夏には、グーグル..
by かえる at 11:20
最新のトラックバック
Macの音楽をオーディオ..
from ちょっとOldなMacの話
グランベリーモール町田
from アウトレットモール・パーク【..
「セオリー」アウトレット
from 町田アウトレット【グランベリ..
アロワナ
from アロワナ
進行中の環境問題
from バナナペーパー!?環境問題を..
バナナが地球を救う。
from バナナが紙に!?そんなバナナ..
インクジェットプリンター..
from ネット専用商社 特選館
【携帯】 アップルの「i..
from 【究極の宗教】Physica..
お得なえびの高原温泉に関..
from 宮崎エリアnavi
TOEIC勉強法
from TOEIC勉強法
検索
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧