{"id":66,"date":"2013-04-11T21:08:51","date_gmt":"2013-04-11T19:08:51","guid":{"rendered":"http:\/\/dh.mideal.de\/?p=66"},"modified":"2013-04-19T20:21:58","modified_gmt":"2013-04-19T18:21:58","slug":"linux-script-zum-zusammenstellen-von-mixed-musik-cds","status":"publish","type":"post","link":"http:\/\/dh.mideal.de\/?p=66","title":{"rendered":"Linux-Skript zum Zusammenstellen von Mixed-Musik-CDs"},"content":{"rendered":"<p>Eine ganze CD zu Hause f\u00fcr das Auto zu <em>kopieren<\/em>, ist leicht.<\/p>\n<p>Wenn man aber eine CD aus einer zuf\u00e4lligen Auswahl von Songs seiner Festplatte zusammenstellen will, ist man ziemlich aufgeschmissen &#8211; Unterst\u00fctzung seitens Software wie Rythmbox, Brasero o.\u00e4. gibt es daf\u00fcr leider nicht.<\/p>\n<p>Darum hab ich ein Skript erstellt, welches genau das erledigt, oder besser gesagt, vorbereitet. Es liest alle MP3-Dateien im Verzeichnis &#8222;\\home\\user\\Musik&#8220; in eine Tabelle ein und mischt diese kr\u00e4ftig durch. Danach wird ein Verzeichnis (&#8222;shufflecd.jjjjmmtt-hhmmss&#8220;) angelegt, in die so viele Titel kopiert werden, wie auf eine CD passen. Standardm\u00e4\u00dfig verwende ich 700MB-CDs, der entsprechende Wert kann leicht eingestellt werden.<\/p>\n<p>Dieser Vorgang dauert auf meinem vier Jahre altem Thinkpad weniger als eine Minute.<\/p>\n<p>Ich hatte in meinem Musik-Verzeichnis auch H\u00f6rb\u00fccher und \u00e4hnliches gespeichert. Wer das \u00fcblicherweise ebenso h\u00e4lt, sollte die entsprechenden Unterverzeichnisse zumindest bis nach dem Brennen in einen anderen (&#8222;\\home\\<em>user<\/em>\\Musi&#8220;) verschieben, das ist eine Sache von Sekunden. Auch wenn man z.B. auf den neuen Mix-CDs etwa keine Klassik m\u00f6chte &#8211; einfach schnell verschieben.<\/p>\n<p>Meistens brenne ich gleich drei-vier CD nacheinander &#8211; w\u00e4hrend Brasero die erste CD brennt, laufen schon die n\u00e4chsten shuffle-Durchg\u00e4nge.<\/p>\n<p>Leider verweigert WordPress mir das Ablegen des Skripts f\u00fcr den Download (&#8222;Tut mir leid, aber aus Sicherheitsgr\u00fcnden ist dieser Dateityp nicht erlaubt.&#8220;), also m\u00fcsst Ihr wohl selbst eine leere Datei anlegen.<\/p>\n<p>Edit 19.4.: &#8222;shuf&#8220; erledigt das shuffeln automatisch (bei &#8222;find&#8220; eingebaut), entsprechend ist der Block &#8222;Mischen&#8220; weggefallen.<\/p>\n<p>&nbsp;<\/p>\n<p>Auf gehts:<\/p>\n<pre>#!\/bin\/bash\r\n#.\/shufflecd\r\n#\r\n\r\n#Erstmal das akutelle Verzeichnis sichern\r\naktP=${PWD}\r\n\r\n#auf Home\\User gehen\r\ncd ~\r\n\r\n# Kleines Format 650MB-CD\r\n#\u00a0 682000000\r\n# Standardgr\u00f6\u00dfe 700MB-CD\r\n#\u00a0 735000000 hat noch Luft nach oben, aber \r\n#\u00a0 737280000 war in 2 von 8 F\u00e4llen zu gro\u00df\r\n#\u00a0 und ergab unvollst\u00e4ndig gebrannte CDs\r\nGG=735000000\r\n\r\n#Standardzielverzeichnis anlegen\r\nVerz=\"shufflecd.$(date +%Y%m%d-%H%M%S)\"\r\n#echo ${Verz}\r\nmkdir ${Verz}\r\n\r\n#Standardquellverzeichnis f\u00fcr die Suche ist ~\/Musik\r\ncd ~\/Musik\r\n\r\n#alle Unterordner-mp3s gemischt (geSHUFfelt) ausgeben\r\nfind . -name \"*.mp3\" | shuf --output=shuffle.txt\r\n\r\n#Datei in ein Array ausgeben\r\nIFS=$'\\n\\t' Songs=( $(cat shuffle.txt) )\r\nIFS=$'\\n\\t' Zufal=( $(cat shuffle.txt) )\r\nIFS=$'\\n\\t' Groes=( $(cat shuffle.txt) )\r\nunset IFS\r\n\r\n#ganzes Array ausgeben ohne Umbr\u00fcche\r\n#echo ${Songs[*]}\r\n\r\n#Anzahl Elemente ermitteln\r\nAnzahl=${#Songs[*]}\r\n#echo ${Anzahl}\r\n\r\n#Liste ausgeben\r\n#for ((i=0;$i&lt;${Anzahl};i++)); do\r\n#\u00a0 echo ${Songs[$i]};\r\n#done\r\n\r\n#Dateigroessen ermitteln\r\nfor ((i=0;$i&lt;${Anzahl};i++)); do\r\n\u00a0\u00a0 Dire=($(ls -lg \"${Songs[$i]}\"))\r\n\u00a0\u00a0 #echo ${Dire[3]}\r\n\u00a0\u00a0 G=${Dire[3]}\r\n\u00a0\u00a0 Groes[$i]=$(((1+G\/32768)*32768));\r\ndone\r\n#Groessenliste ausgeben\r\n#for ((i=0;$i&lt;${Anzahl};i++)); do\r\n#\u00a0 echo ${Groes[$i]}; \r\n#done\r\n\r\ni=0\r\nsumme=0\r\n#echo ${GG}\r\nuntil ((${summe}&gt;${GG})); do\r\n\u00a0\u00a0 #kopieren\r\n\u00a0\u00a0 #echo \"${Songs[$i]}\"\r\n\u00a0\u00a0 #echo \"..\/${Verz}\"\r\n\u00a0\u00a0 cp \"${Songs[$i]}\" \"..\/${Verz}\"\r\n\u00a0\u00a0 #verbrauchten Speicher summieren\r\n\u00a0\u00a0 summe=$((summe+${Groes[$i]}))\r\n\u00a0\u00a0 #echo \"${Groes[$i]}\" - \"${summe}\" - \"${Songs[$i]}\"\r\n\u00a0\u00a0 i=$((i+1));\r\ndone\r\n\r\ni=$((i-1))\r\n#Letzter Song passt leider nicht\u00a0 \/ l\u00f6schen\r\nrm \"..\/${Verz}\/${Songs[$i]##*\/}\"\r\n\r\n#wieder auf's alte Verzeichnis\r\ncd ${aktP}\r\n\r\n#endlich\r\n\r\necho Fertig.<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Eine ganze CD zu Hause f\u00fcr das Auto zu kopieren, ist leicht. Wenn man aber eine CD aus einer zuf\u00e4lligen Auswahl von Songs seiner Festplatte zusammenstellen will, ist man ziemlich aufgeschmissen &#8211; Unterst\u00fctzung seitens Software wie Rythmbox, Brasero o.\u00e4. gibt es daf\u00fcr leider nicht. Darum hab ich ein Skript erstellt, welches genau das erledigt, oder &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/dh.mideal.de\/?p=66\" class=\"more-link\"><span class=\"screen-reader-text\">&#8222;Linux-Skript zum Zusammenstellen von Mixed-Musik-CDs&#8220;<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[9,10,18,5,16],"tags":[37,30,40,34,35,33,62,41,28,32,31,38,36,29,39],"_links":{"self":[{"href":"http:\/\/dh.mideal.de\/index.php?rest_route=\/wp\/v2\/posts\/66"}],"collection":[{"href":"http:\/\/dh.mideal.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/dh.mideal.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/dh.mideal.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/dh.mideal.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=66"}],"version-history":[{"count":7,"href":"http:\/\/dh.mideal.de\/index.php?rest_route=\/wp\/v2\/posts\/66\/revisions"}],"predecessor-version":[{"id":70,"href":"http:\/\/dh.mideal.de\/index.php?rest_route=\/wp\/v2\/posts\/66\/revisions\/70"}],"wp:attachment":[{"href":"http:\/\/dh.mideal.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=66"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/dh.mideal.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=66"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/dh.mideal.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}