人気ブログランキング | 話題のタグを見る
OS X Mavericks afplay でランダム・連続再生
OS X Mavericks afplay でランダム・連続再生_f0021035_22112792.jpg


OS X Mavericks無料ダウンロードを記念してafplay.plを見直してみた。
なにゆえに無料なのかわからんが、小生はSnow LeopardのDVDを購入しておいたので、HDDを増設してインストールしてMavericksにヴァージョンアップしてみた。まあ、レオパードと驚く程の違いはなさそうなのですぐに使う事はないと思う。

afplay.plは、下記のテキストをテキストファイルとして afplay.pl の名前(変えてもいい)で保存してユーザフォルダの自分のフォルダに置く事で、コンソール画面からコマンド

mac:~ yourname$ perl afplay.pl -def -max=100 -alist -list

などと入力して、音楽ファイルをafplayで連続再生できるスクリプトである。

afplay は、ウィンドウズマシンでいうところのASIOやらWASAPIに相当する高音質再生であるらしい。理屈は小生にはよくわからんのでググっていただけばいろいろと紹介されている。

オプション -def で $defaulturls = "ここにURLを設定"; に設定したフォルダ内の音楽ファイルを探してランダム演奏する。音楽ファイルのURLはコンソール画面に音楽ファイルをドラッグ&ドロップすると表示される。フォルダを指定しない場合は、afplay.plスクリプトのあるフォルダ内の曲を探して再生する。

一曲ずつ選択して聴くのであれば、コンソール画面に afplay "musikufile/music.aif" などと入力して直接afplayで再生できる。"musikufile/music.aif"の部分は afplay と打ち込んだ後ろに音楽ファイルをドロップすればOKである。

4月14日
藤井サンからコメントを頂いていたので、見直したところ再生リストの表示が再生数のマックスを反映していなかったので修正しました。まだ不備なりご要望がありましたらコメントでお知らせください。
ランダム再生もあやしかったので、かなり書き直してチェックしました。ついでにこちらに使い方もアップした。



## afplay.pl #####################################ここから
#!/usr/bin/perl


## -def オプションで再生したいフォルダー。
$defaulturl = "";

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

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

@type = (".aif",".wav",".aiff",".wave");
$dir = "./";
$udir = "0";
$list = 0;
$alist = 0;
$noran = 0;
$down = 0;


if ($ARGV[0]){
foreach $_ (@ARGV){
if($_ =~ /\-aif/i){@type = (".aif", ".aiff");}
if($_ =~ /\-wav/i){@type = (".wav",".wave");}
if($_ =~ /\-mp3/i){@type = (".mp3");}
if($_ =~ /\-all/i){@type = (".aif", ".aiff",".wav",".wave",".mp3");}


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;}
}
}
else{
$dir = "./";
@type = (".aif",".wav",".aiff",".wave",".mp3");
}

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


print "\n********************************************\n";
print "afplay.pl は afplay でのランダム演奏用です。\n";
print "ex: perl afplay.pl -alist -list -dir=./sound\n";
print "------------------------------------------------\n";
print "-aif (AIFのみ演奏)\n";
print "-wav (WAVのみ演奏)\n";
print "-mp3 (MP3のみ演奏)\n";
print "-all (AIF・WAV・MP3を演奏)\n";
print "無指定の場合、AIFとWAVを再生します\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 ++;print "**$listii** $_\n"; if($listii == $max){last;}}

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

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

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

if($list){print "NowPlay**$listi**$lists\n";}

if($list){print "------------------------------------------------\n\n";}
#if($lists){system("afplay $lists");}
if($lists){system("afplay -q 1 $lists");}
else{print "--NoFile--\n\n";}

if($listi == $max){last;}
}

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

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

opendir(IN,$ndir) or die "opendir $dir エラー : $!";
@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);}
}

}

################################################# ここまで
by digressive | 2013-12-26 22:14 | プアオーディオ | Comments(2)
Commented by 藤井康弘 at 2014-04-04 16:58 x
maxで設定した曲数が反映されないのですが、どうしたらよいですか。
Commented by digressive at 2014-04-15 00:49
藤井様、再生一覧がおかしかったので修正しました。お知らせいただき、ありがとうございました。
<< HAPPY NEW YEAR ... ボーダーラインの年末気分 >>




フリーページあります。

non6 museum

non6 tools

non6 memo



人間は、考える足である。
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
カテゴリ
全体
熟年マカー失業録
DTPに花束を
すみません、取り乱しました。
マカーはケチだから
Ubuntu
プアオーディオ
ペンタブしよう
non6 nuseum
リンク
_f0021035_17382547.gif



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



NON6 MUSEUM ANEX


■□■□■□




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





WEBカラーネーム

WEBカラーチャート

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

世に倦む日々
無料版です

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


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

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

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

pixiv

お気に入りブログ
世に倦む日日
絵と音楽のコラボレーショ...
ライフログ
検索
タグ
ブログパーツ
  • 仕様の関係で、右クリックできません。