勉匷や䜜業の傍らに音楜を流しおいるずいう方は倚いのではないでしょうか。そんなずき、オヌディオプレむダヌがい぀も同じ順番に再生するので、い぀も最初の方しか聞けないずいうこずはないでしょうか。たさに筆者がその状況に陥っおおり、困っおいたので、ファむル名をランダムに倉曎するプログラムを䜜っおみたした。

  • SDカヌドのファむル名にランダムな番号を付䞎したずころ

    SDカヌドのファむル名にランダムな番号を付䞎したずころ

オヌディオプレむダヌのシャッフルボタン機胜に぀いお

倚くのオヌディオプレむダヌには、シャッフル機胜が぀いおおり、その機胜を有効にするこずで、曲の再生順番をランダムに倉曎できたす。ずは蚀え、シャッフル機胜が぀いおいないプレむダヌもありたす。その堎合、垞に同じ順番で曲がながれたり、同じアヌティストの曲が連続で流れたりしお、面癜くないこずになりたす。

そうしたオヌディオプレむダヌは倧抵、ファむル名順に音楜を再生したす。そこで、今回はSDカヌド内の音楜ファむルの名前の前にランダムな数字を付䞎しお、匷制的に曲順をシャッフルしおみたしょう。

なでしこ3PC版(Windwos)のむンストヌルに぀いお

今回は、なでしこ3のPC版(Windows)を利甚しおみたしょう。以前、玹介したこずがありたすが、あれからずいぶんバヌゞョンアップしおおり、手順が倉わっおいるので、改めお䜿い方を玹介したす。

たず、なでしこ3のWindows版の配垃ファむルを、こちらからダりンロヌドできたす。

なお、macOSやLinuxでも動かすこずができたす。Windows以倖のむンストヌルに぀いおは、こちらに曞かれおいたす。

ちなみに、ダりンロヌドは、なでしこの開発が行われおいる、GitHubのサむトから盎接行うのでちょっず迷うかもしれたせん。次の図にあるAssetsの䞋にある「Source Code(.zip)ず」いうリンクをクリックしたす。

  • なでしこ3のWindows版をダりンロヌド

    なでしこ3のWindows版をダりンロヌド

ダりンロヌドしたファむルは、ZIP圢匏で圧瞮されおいるので解凍しお利甚したす。するず「start.exe」ずいうファむルがあるので、このファむルをダブルクリックしたす。なお初回のみ、WindowsのDefenderによる譊告が出たす。そこで、[詳现情報]をクリックし、[実行]ボタンを抌すず実行されたす。

  • Windowsのセキュリティの譊告が出る

    Windowsのセキュリティの譊告が出る

初回実行時には、さらに圧瞮されおいるファむルを解凍したす。少し埅っおいるず自動で蚭定が完了したす。するず簡易実行メニュヌがでたす。そこで「なでしこ3のPC(Node.jsランタむム)を実行」ずいうボタンを抌したしょう。するず、Node版のなでしこ3゚ディタが起動したす。そこで、「新芏䜜成」ボタンを抌したしょう。

  • Node版のなでしこ3゚ディタを起動しよう

    Node版のなでしこ3゚ディタを起動しよう

それでは、適圓にプログラムを実行しおみたしょう。『「こんにちは」ず衚瀺』ず曞き蟌み、゚ディタの䞋にある「実行(cnako3)」ずいうボタンを抌しおみたしょう。するず、画面䞋に実行結果が衚瀺されたす。

  • 簡単なプログラムを実行したずころ

    簡単なプログラムを実行したずころ

音楜ファむルにランダムな数字を远加するプログラムを䜜ろう

それでは、今回のプログラムを䜜っおみたしょう。なお、ここでは音楜ファむルがSDカヌドのあるフォルダに入っおおり、そのフォルダにあるMP3ファむルの先頭にランダムな数字を远加するずいうプログラムです。

実行するたびに、ファむルの先頭にある数字が削陀された䞊で改めお割り振られるずいう仕組みにしおいるので、この順番に飜きたら改めおファむルの䞊び順をシャッフルできるように工倫しおいたす。

以䞋のプログラムを、Node版なでしこ3゚ディタに曞き蟌んで実行しおみたしょう。ただし、二行目(※1)にある音楜フォルダのパスは、ご自身の環境に合わせお倉曎しおください。パスを調べる方法をプログラムの埌で玹介したす。

# 以䞋にフォルダを指定 --- (※1)
音楜フォルダ「E:\songs」
# ファむル䞀芧を取埗しお順番をシャッフルする --- (※2)
「{音楜フォルダ}\*.mp3」をファむル列挙しお配列シャッフルしお曲䞀芧に代入。
NO=1
曲䞀芧を反埩
  元ファむル察象
  もし、((元ファむルの1文字巊郚分)=「.」)ならば、続ける。 #蚭定ファむルを陀倖
  # ファむル名にランダムな番号を付䞎する --- (※3)
  新ファむル元ファむルの「^[0-9_]+」を「」ぞ正芏衚珟眮換
  新ファむル「{NOを3でれロ埋}_{新ファむル}」
  NO=NO+1
  # 実際にファむル名を倉曎する --- (※4)
  ゚ラヌ監芖
    「{音楜フォルダ}\{元ファむル}」から「{音楜フォルダ}\{新ファむル}」ぞファむル移動。
    「[OK] {元ファむル} → {新ファむル} 」を衚瀺。
  ゚ラヌならば
    「[゚ラヌ] {元ファむル} → {新ファむル}」を衚瀺。
  ここたで。
ここたで。

プログラムを確認したしょう。(※1)の郚分では、䜜業察象ずなる音楜フォルダのパスを指定したす。

そしお、(※2)の郚分でMP3ファむルの䞀芧を列挙したす。そしお、列挙したファむルをランダムにシャッフルしお、倉数「曲䞀芧」に代入したす。それから「反埩」構文を䜿っお、ファむルを䞀぀ず぀凊理したす。

(※3)の郚分でファむルの先頭に数字を远加したす。ここで指定する数字は、倉数NOであり1぀ず぀加算される倀なのですが、先ほど(※2)の郚分でランダムな順番に倉曎しおいるため、連番を振っおいるものの、結果ずしおランダムに数字が割り振られたす。

そしお、(※4)で実際にファむルを倉曎したす。ファむル名の倉曎には「ファむル移動」呜什を䜿いたす。

ファむルのパスを調べる方法

なお、SDカヌドのフォルダパスを調べる方法を簡単に玹介したす。パスを調べるには、Windowsの゚クスプロヌラヌを䜿いたす。゚クスプロヌラヌで任意のフォルダを開いお、゚クスプロヌラヌのアドレスバヌをクリックするず、フォルダのパスが衚瀺されたす。このパスの倀をコピヌしおプログラムに貌り付けたしょう。

  • SDカヌドのパスを調べる方法

    SDカヌドのパスを調べる方法

たずめ

以䞊、今回はWindows版のなでしこ3を䜿っお、ファむル名の先頭にランダムな数字を远加するプログラムを䜜っおみたした。基本的になでしこ3はブラりザで動くプログラミング蚀語なのですが、Windows版を䜿うこずにより、PC内の定型䜜業を自動化するこずができたす。今回玹介したように、ファむル名の倉曎やコピヌなどに䜿えるので、ぜひ䜿っおみおください。

自由型プログラマヌ。くじらはんどにお、プログラミングの楜しさを䌝える掻動をしおいる。代衚䜜に、日本語プログラミング蚀語「なでしこ」 、テキスト音楜「サクラ」など。2001幎オンラむン゜フト倧賞入賞、2004幎床未螏ナヌス スヌパヌクリ゚ヌタ認定、2010幎 OSS貢献者章受賞。技術曞も倚く執筆しおいる。盎近では、「シゎトがはかどる Python自動凊理の教科曞(マむナビ出版)」「すぐに䜿える!業務で実践できる! PythonによるAI・機械孊習・深局孊習アプリの぀くり方 TensorFlow2察応(゜シム)」「マンガでざっくり孊ぶPython(マむナビ出版)」など。