<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Slacy's Blog &#187; mp3</title>
	<atom:link href="http://slacy.com/blog/tag/mp3/feed/" rel="self" type="application/rss+xml" />
	<link>http://slacy.com/blog</link>
	<description>This site is solar powered!</description>
	<lastBuildDate>Fri, 27 Jan 2012 04:33:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Simple script to copy id3 tags from one file to another.</title>
		<link>http://slacy.com/blog/2010/11/simple-script-to-copy-id3-tags-from-one-file-to-another/</link>
		<comments>http://slacy.com/blog/2010/11/simple-script-to-copy-id3-tags-from-one-file-to-another/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 04:32:53 +0000</pubDate>
		<dc:creator>slacy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[id3]]></category>
		<category><![CDATA[lame]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tagging]]></category>

		<guid isPermaLink="false">http://slacy.com/blog/?p=1382</guid>
		<description><![CDATA[I use lame for batch transcodes of mp3 files, for when I want to put them on a CD-R, or on my phone.  I transcode them down to a much lower bitrate than what I store on my server. But, &#8230; <a href="http://slacy.com/blog/2010/11/simple-script-to-copy-id3-tags-from-one-file-to-another/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I use lame for batch transcodes of mp3 files, for when I want to put them on a CD-R, or on my phone.  I transcode them down to a much lower bitrate than what I store on my server.</p>
<p>But, if I just use lame for this transcoding, it dosen&#8217;t copy the id3 tags properly.  I needed to write a script to copy the id3 tags from the source file to the new, lower bitrate file.  Here&#8217;s the script:</p>
<pre>
#!/usr/bin/python
import sys
from mutagen.id3 import ID3

source = ID3(sys.argv[1])
dest = ID3(sys.argv[2])
for key in source:
    dest[key] = source[key]
dest.save()
</pre>
<p>There&#8217;s two tricks to using this properly:<br />
1. The file being tagged (&#8220;dest&#8221; above) must already have some id3 header in it.<br />
2. The mutagen library writes out id3 v2.4 tags that many programs don&#8217;t understand, so I use a second program to copy the id3 v2.4 tags to id3 v2.3.  Here&#8217;s the complete transcoding script with the call to &#8220;cpid3.py&#8221; which is above:</p>
<pre>
#!/bin/bash
TMPFILE=$(mktemp).mp3
lame --add-id3v2 --pad-id3v2-size 1024 --quiet -f --preset fast medium "$1" "$TMPFILE"
~/bin/cpid3.py "$1" "$TMPFILE"
eyeD3 --to-v2.3 "$TMPFILE"
mv -f $TMPFILE "$1"
echo "Done with: $1"
</pre>
]]></content:encoded>
			<wfw:commentRss>http://slacy.com/blog/2010/11/simple-script-to-copy-id3-tags-from-one-file-to-another/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>Download Palm Pre WebOS sound effects and ringtones</title>
		<link>http://slacy.com/blog/2010/02/download-palm-pre-webos-sound-effects/</link>
		<comments>http://slacy.com/blog/2010/02/download-palm-pre-webos-sound-effects/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 05:33:56 +0000</pubDate>
		<dc:creator>slacy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[nexus one]]></category>
		<category><![CDATA[sound]]></category>
		<category><![CDATA[webos]]></category>

		<guid isPermaLink="false">http://slacy.com/blog/?p=1121</guid>
		<description><![CDATA[One of the things that impressed me most about the Palm Pre (and WebOS) are the built in sound effects and system sounds.  The &#8220;I&#8217;ve just been plugged in&#8221; sound (alert.mp3, below) is especially great. So, when I saw that &#8230; <a href="http://slacy.com/blog/2010/02/download-palm-pre-webos-sound-effects/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the things that impressed me most about the Palm Pre (and WebOS) are the built in sound effects and system sounds.  The &#8220;I&#8217;ve just been plugged in&#8221; sound (alert.mp3, below) is especially great.</p>
<p>So, when I saw that a <a href="http://www.precentral.net/pre-developer-rom-uncovered-could-lead-hackingcustomization">WebOS root image had been leaked</a>, I thought it would be great to download it and extract all the sound files so I could use them on my Android Nexus One as ringtones or notification sounds.   It was a pretty straightforward process, although the files were nested in several containers (a jar containing a tar containing a tar).  Many of the files were in PCM or WAV format, and for your convenience, I&#8217;ve converted them all to high-bitrate mp3 files.  This includes the <a href="http://www.precentral.net/palm-pre-default-ringtone-leaks-out">default ringtone, which has gotten a bunch of press recently</a>, that&#8217;s available as Pre.mp3, below, as well as all the system &#8220;alert&#8221; sounds like the ones I mentioned above.  They&#8217;re great.</p>
<p>Here&#8217;s the complete list of files:</p>
<p><a href="http://slacy.com/blog/wp-content/webOsSounds/Anticipation.mp3">Anticipation.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/Discreet.mp3">Discreet.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/Dulcimer.mp3">Dulcimer.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/Flurry.mp3">Flurry.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/Guitar.mp3">Guitar.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/Older%20Phone.mp3">Older Phone.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/Pre.mp3">Pre.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/Rain%20Dance.mp3">Rain Dance.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/Scamper.mp3">Scamper.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/Triangle.mp3">Triangle.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/alert.mp3">alert.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/alert_buzz.mp3">alert_buzz.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/appclose.mp3">appclose.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/back_01.mp3">back_01.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/browser_01.mp3">browser_01.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/card_01.mp3">card_01.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/card_02.mp3">card_02.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/card_03.mp3">card_03.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/card_04.mp3">card_04.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/card_05.mp3">card_05.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/default_425hz.mp3">default_425hz.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/delete_01.mp3">delete_01.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/discardingapp_01.mp3">discardingapp_01.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/down2.mp3">down2.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/dtmf_0.mp3">dtmf_0.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/dtmf_1.mp3">dtmf_1.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/dtmf_2.mp3">dtmf_2.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/dtmf_3.mp3">dtmf_3.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/dtmf_4.mp3">dtmf_4.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/dtmf_5.mp3">dtmf_5.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/dtmf_6.mp3">dtmf_6.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/dtmf_7.mp3">dtmf_7.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/dtmf_8.mp3">dtmf_8.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/dtmf_9.mp3">dtmf_9.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/dtmf_asterisk.mp3">dtmf_asterisk.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/dtmf_pound.mp3">dtmf_pound.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/error_01.mp3">error_01.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/error_02.mp3">error_02.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/error_03.mp3">error_03.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/focusing.mp3">focusing.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/launch_01.mp3">launch_01.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/launch_02.mp3">launch_02.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/launch_03.mp3">launch_03.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/notification.mp3">notification.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/notification_buzz.mp3">notification_buzz.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/pagebacwards.mp3">pagebacwards.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/pageforward_01.mp3">pageforward_01.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/phone.mp3">phone.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/ringtone.mp3">ringtone.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/ringtone_buzz.mp3">ringtone_buzz.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/shuffle_02.mp3">shuffle_02.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/shuffle_03.mp3">shuffle_03.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/shuffle_04.mp3">shuffle_04.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/shuffle_05.mp3">shuffle_05.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/shuffle_06.mp3">shuffle_06.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/shuffle_07.mp3">shuffle_07.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/shuffle_08.mp3">shuffle_08.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/shuffling_01.mp3">shuffling_01.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/shutter.mp3">shutter.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/switchingapps_01.mp3">switchingapps_01.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/switchingapps_02.mp3">switchingapps_02.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/switchingapps_03.mp3">switchingapps_03.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/tones_3beeps_otasp_done.mp3">tones_3beeps_otasp_done.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/unassigned.mp3">unassigned.mp3</a><br />
<a href="http://slacy.com/blog/wp-content/webOsSounds/up2.mp3">up2.mp3</a></p>
]]></content:encoded>
			<wfw:commentRss>http://slacy.com/blog/2010/02/download-palm-pre-webos-sound-effects/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/Anticipation.mp3" length="1550109" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/Discreet.mp3" length="1317096" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/Dulcimer.mp3" length="1308737" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/Flurry.mp3" length="999447" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/Guitar.mp3" length="452966" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/Older%20Phone.mp3" length="248166" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/Pre.mp3" length="1241864" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/Rain%20Dance.mp3" length="1116476" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/Scamper.mp3" length="1288884" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/Triangle.mp3" length="1295154" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/alert.mp3" length="81111" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/alert_buzz.mp3" length="54269" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/appclose.mp3" length="10019" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/back_01.mp3" length="12882" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/browser_01.mp3" length="28310" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/card_01.mp3" length="10065" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/card_02.mp3" length="10117" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/card_03.mp3" length="7823" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/card_04.mp3" length="7405" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/card_05.mp3" length="9335" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/default_425hz.mp3" length="9534" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/delete_01.mp3" length="6518" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/discardingapp_01.mp3" length="14495" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/down2.mp3" length="1043" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/dtmf_0.mp3" length="4197" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/dtmf_1.mp3" length="4277" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/dtmf_2.mp3" length="4250" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/dtmf_3.mp3" length="4485" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/dtmf_4.mp3" length="4329" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/dtmf_5.mp3" length="4302" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/dtmf_6.mp3" length="4355" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/dtmf_7.mp3" length="4355" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/dtmf_8.mp3" length="4381" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/dtmf_9.mp3" length="4380" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/dtmf_asterisk.mp3" length="4487" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/dtmf_pound.mp3" length="4433" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/error_01.mp3" length="25493" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/error_02.mp3" length="1668" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/error_03.mp3" length="7044" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/focusing.mp3" length="8612" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/launch_01.mp3" length="29568" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/launch_02.mp3" length="33133" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/launch_03.mp3" length="18433" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/notification.mp3" length="28626" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/notification_buzz.mp3" length="41222" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/pagebacwards.mp3" length="9230" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/pageforward_01.mp3" length="7928" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/phone.mp3" length="88108" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/ringtone.mp3" length="209815" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/ringtone_buzz.mp3" length="44981" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/shuffle_02.mp3" length="7719" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/shuffle_03.mp3" length="1929" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/shuffle_04.mp3" length="6519" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/shuffle_05.mp3" length="25667" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/shuffle_06.mp3" length="18935" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/shuffle_07.mp3" length="15544" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/shuffle_08.mp3" length="16379" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/shuffling_01.mp3" length="19405" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/shutter.mp3" length="9471" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/switchingapps_01.mp3" length="33471" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/switchingapps_02.mp3" length="40545" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/switchingapps_03.mp3" length="41587" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/tones_3beeps_otasp_done.mp3" length="30341" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/unassigned.mp3" length="16654" type="audio/mpeg" />
<enclosure url="http://slacy.com/blog/wp-content/webOsSounds/up2.mp3" length="1147" type="audio/mpeg" />
	
	</item>
		<item>
		<title>transcoding mp3-to-mp3 in mt-daapd</title>
		<link>http://slacy.com/blog/2009/08/transcoding-mp3-to-mp3-in-mt-daapd/</link>
		<comments>http://slacy.com/blog/2009/08/transcoding-mp3-to-mp3-in-mt-daapd/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 20:44:16 +0000</pubDate>
		<dc:creator>slacy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[lame]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[mt-daapd]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[transcoding]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[vbr]]></category>

		<guid isPermaLink="false">http://slacy.com/blog/?p=935</guid>
		<description><![CDATA[Introduction mt-daapd is an iTunes daap-protocol server for Unix systems.  I&#8217;m using mt-daapd on by Ubuntu 9.04 system to stream music over the internet to my workplace.   The issue is that many of my mp3 files are 256kbps mp3 files, &#8230; <a href="http://slacy.com/blog/2009/08/transcoding-mp3-to-mp3-in-mt-daapd/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>mt-daapd is an iTunes daap-protocol server for Unix systems.  I&#8217;m using mt-daapd on by Ubuntu 9.04 system to stream music over the internet to my workplace.   The issue is that many of my mp3 files are 256kbps mp3 files, and streaming these takes up more bandwidth than necessary.</p>
<p>mt-daapd includes a transcoding system called &#8220;ssc&#8221; for &#8220;Server Side Conversion&#8221;.  This system works by either a shared-object plugin (i.e. ssc_ffmpeg) or via an external script file (i.e. ssc_script).</p>
<p>using the ssc_script functionality, one can invoke &#8216;lame&#8217; (the mp3 encoder) to transcode high bitrate mp3 files into lower bitrate mp3 files.  The setup for this in mt-daapd wasn&#8217;t very obvious, so I&#8217;ll document it here.</p>
<h2>Install mt-daapd</h2>
<p>The version of mt-daapd provided by Ubuntu 9.04 includes support for transcoding, so you can just run:<br />
<code><br />
$ sudo apt-get install mt-daapd</code></p>
<h2>Turn on ssc</h2>
<p>Edit your /etc/mt-daapd.conf file, and make sure you have the following lines in the correct places:</p>
<blockquote><p>ssc_codectypes = mpeg</p>
<p>always_transcode = mpeg</p>
<p>ssc_prog = /path/to/script/shown/below/mt-daapd-mp3-ssc.sh</p>
<p>[plugins]</p>
<p>plugins = ssc-script.so</p></blockquote>
<h2>Create mt-daapd-mp3-ssc.sh</h2>
<p>You&#8217;ll need to create a shell script to do the transcoding via ssc_scrpit / ssc_prog.  Here&#8217;s the script I&#8217;m using:</p>
<blockquote><p>#!/bin/bash</p>
<p>FILE=$1<br />
OFFSET=0</p>
<p>if [ "$2" == "" ]; then<br />
OFFSET=0<br />
else<br />
OFFSET=$2<br />
fi</p>
<p>if [ "$3" == "" ]; then<br />
FORGELEN=$3<br />
fi</p>
<p>lame -V6 &#8211;quiet &#8220;$FILE&#8221; -</p></blockquote>
<p>Note that I&#8217;m looking at the 2nd and 3rd args, but I&#8217;m not doing anything with them.  These arguments are used to make sure that seeking works properly in your daap client.  I don&#8217;t care about seeking, and doing it properly is somewhat hard, so I&#8217;ve just ignored those arguments.  I think that this could be accomplished properly using the program &#8216;mp3splt&#8217; but I haven&#8217;t looked into it enough to see what it would take.</p>
<p>Make sure the script above is put somewhere accessible by the user specified as &#8216;runas&#8217; in your mt-daapd.conf.   Make sure the script is executable by this user as well.</p>
<h2>Restart mt-daapd and see if it works</h2>
<p>Restart mt-daapd via:</p>
<blockquote><p>$ sudo /etc/init.d/mt-daapd restart</p></blockquote>
<p>Then reconnect your daap client (I use rhythmbox).  You can see if the script is working by running &#8220;ps auwxww | grep lame&#8221; just after pressing play on a song.  You should see your script executing lame and doing realtime transcoding.</p>
]]></content:encoded>
			<wfw:commentRss>http://slacy.com/blog/2009/08/transcoding-mp3-to-mp3-in-mt-daapd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
	</item>
		<item>
		<title>Running amazonmp3 downloader on Ubuntu 9.04 amd64 (Jaunty) via a chroot</title>
		<link>http://slacy.com/blog/2009/08/running-amazonmp3-downloader-on-ubuntu-9-04-amd64-jaunty-via-a-chroot/</link>
		<comments>http://slacy.com/blog/2009/08/running-amazonmp3-downloader-on-ubuntu-9-04-amd64-jaunty-via-a-chroot/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 21:22:50 +0000</pubDate>
		<dc:creator>slacy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[amazon mp3]]></category>
		<category><![CDATA[amazonmp3]]></category>
		<category><![CDATA[chroot]]></category>
		<category><![CDATA[intrepid]]></category>
		<category><![CDATA[jaunty]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[schroot]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://slacy.com/blog/?p=920</guid>
		<description><![CDATA[The one biggest (and most annoying) missing package for Ubuntu 9.04 amd64 is the amazon mp3 downloader package.  This is critical being able to download special cheap albums from amazon, and is only available as a 32-bit package for Ubuntu &#8230; <a href="http://slacy.com/blog/2009/08/running-amazonmp3-downloader-on-ubuntu-9-04-amd64-jaunty-via-a-chroot/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The one biggest (and most annoying) missing package for Ubuntu 9.04 amd64 is the amazon mp3 downloader package.  This is <strong>critical</strong> being able to download special cheap albums from amazon, and is only available as a 32-bit package for Ubuntu 8.04 (Intrepid).</p>
<p>There are several descriptions on the net on how to hack around missing library dependencies and download them (via getlibs) or to tweak out the pkgconfig file to shoe horn the amazonmp3.deb file into an amd64 system.</p>
<p>I like to keep my installs really pristine, and avoid workarounds like getlibs and modified packages, so I&#8217;ve decided to go with a 32-bit chroot for running amazonmp3.  Generally, the process involves downloading another version of Ubuntu (in our case, 8.04, which is what the amazonmp3 package was built against), and then chroot-ing into this install area to run the 32-bit program.  Several existing tools make this easier than it sounds.</p>
<h2>Get Ready</h2>
<p>There are several dependent packages that you should install first.  In your base system, please run:</p>
<blockquote><p>$ sudo apt-get install debootstrap schroot</p></blockquote>
<h2>Install 32-bit Intrepid into a subdirectory</h2>
<p>Using the new debootstrap package that you just installed, you can now run:</p>
<blockquote><p>$ mkdir ~/chroots</p>
<p>$ sudo debootstrap &#8211;arch=i386 intrepid ~/chroots/intrepid-32</p></blockquote>
<p>The second command will take a while to run, and will download several hundred MB of intrepid packages, and install them under the newly created directory ~/chroots/intrepid-32</p>
<h2>Edit /etc/schroot/schroot.conf</h2>
<p>You should add a section to /etc/schroot/schroot.conf that looks like this:</p>
<blockquote><p>[intrepid-32]<br />
type=directory<br />
description=Intrepid 32-bit<br />
location=/home/YOUR_USERNAME/chroots/intrepid-32<br />
priority=3<br />
users=YOUR_USERNAME,root<br />
groups=YOUR_USERNAME,root<br />
root-groups=root,adm<br />
run-setup-scripts=true<br />
run-exec-scripts=true<br />
personality=linux32</p></blockquote>
<h2>Do a little bit of post-install cleanup.</h2>
<p>I&#8217;ve found that by default, I don&#8217;t have sudo permissions inside the chroot, so I do this one small step:</p>
<blockquote><p>$ sudo cp /etc/sudoers ~/chroots/intrepid-32/etc/sudoers</p></blockquote>
<p>That way, when I enter the chroot, I have sudo permissions available as well.</p>
<h2>Get inside the chroot and make sure it works</h2>
<p>You can now go inside the chroot via the following command:</p>
<blockquote><p>$ schroot -c intrepid-32</p></blockquote>
<p>You should see that while inside the chroot, your prompt should start with &#8220;(intrepid-32)&#8221; indicating that you&#8217;re chrooted.  Great.  Give a simple sudo command a try to make sure it works, like this:</p>
<blockquote><p>$ sudo ls ~</p></blockquote>
<p>Type your password, and confirm that you can run things as root.</p>
<p>At this point, you can do anything else you want in the chroot, like installing other packages, or cleaning things up.  You may want to run &#8220;sudo apt-get update ; sudo apt-get dist-upgrade&#8221; just for fun.</p>
<h2>Install amazonmp3.deb in the chroot</h2>
<p>The chroot shares your home directory, /tmp, and several other directories with your main system (so be careful!).  But, this also makes life easier.  While you&#8217;re outside of the chroot, download amazonmp3.deb and put it in /tmp or your home directory. Then, get inside the chroot, and run:</p>
<blockquote><p>(intrepid-32)$ sudo dpkg -i amazonmp3.deb</p></blockquote>
<p>It will complain about some missing dependencies.  Install those libraries via apt-get, and then run the dpkg -i again, and you should be in business.  To run amazonmp3, you may need to double-check your DISPLAY environment variable and make sure that it&#8217;s properly set inside the chroot.  Once you&#8217;ve done that, you should be able to easily run amazonmp3 inside the chroot, and download music to your home directory.</p>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://slacy.com/blog/2009/08/running-amazonmp3-downloader-on-ubuntu-9-04-amd64-jaunty-via-a-chroot/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
	</item>
		<item>
		<title>I&#8217;ve given up on web-based music services.</title>
		<link>http://slacy.com/blog/2009/08/ive-given-up-on-web-based-music-services/</link>
		<comments>http://slacy.com/blog/2009/08/ive-given-up-on-web-based-music-services/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 18:24:48 +0000</pubDate>
		<dc:creator>slacy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[mt-daapd]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[sharing]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://slacy.com/blog/?p=917</guid>
		<description><![CDATA[It was a long and tumultuous affair, but now I&#8217;ve officially given up on web-based streaming of my personal music collection. I started out with netjuke, which died and got absorbed into the horrible jinzora project.   So then I switched &#8230; <a href="http://slacy.com/blog/2009/08/ive-given-up-on-web-based-music-services/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It was a long and tumultuous affair, but now I&#8217;ve officially given up on web-based streaming of my personal music collection.</p>
<p>I started out with netjuke, which died and got absorbed into the horrible jinzora project.   So then I switched to Ampache, which worked fairly well, but needs some serious UI upgrades/changes to make it reasonably useful.</p>
<p>Now that I&#8217;m fully ubuntu-ized, I&#8217;m using mt-daapd through an SSH tunnel to listen via a native client app.  This solution has lots of interesting benefits:</p>
<ol>
<li>Running mt-daapd locally means other people in my house can see my music, including my TiVo and any other desktops with an iTunes/daap compatible frontened.</li>
<li>I don&#8217;t have to worry about security issues with having all my music accessible via a web portal that could be hacked.</li>
<li>mt-daapd is available as a package in Ubuntu, so that means upgrades are easy.  Doing upgrades (by hand) of php-based web apps was really becoming a drag.</li>
<li>This means less junk on my slacy.com web server, which I&#8217;m trying to significantly trim down and make more secure by having less applications.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://slacy.com/blog/2009/08/ive-given-up-on-web-based-music-services/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
	</item>
		<item>
		<title>audacious + madplug + lame &#8211;vbr-new == FAIL</title>
		<link>http://slacy.com/blog/2009/03/madplug-lame-vbr-new-fail/</link>
		<comments>http://slacy.com/blog/2009/03/madplug-lame-vbr-new-fail/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 21:09:37 +0000</pubDate>
		<dc:creator>slacy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[audacious]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[lame]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mp3]]></category>

		<guid isPermaLink="false">http://slacy.com/blog/?p=821</guid>
		<description><![CDATA[I listen to all of my music via streaming it from my home machine, and transcoding it on the fly. I recently made 2 changes to my setup: I&#8217;m using audacious for playback instead of xmms I switched to a &#8230; <a href="http://slacy.com/blog/2009/03/madplug-lame-vbr-new-fail/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I listen to all of my music via streaming it from my home machine, and transcoding it on the fly.  I recently made 2 changes to my setup:</p>
<ol>
<li>I&#8217;m using audacious for playback instead of xmms</li>
<li>I switched to a more recent version of lame.</li>
</ol>
<p>After doing so, about 1 in 10 files would fail to play (either silence, or strange thumping noises) on audacious, saying one or more of the following messages:</p>
<blockquote><p>(audacious:12805): MADPlug-WARNING **: samplerate varies!!<br />
(audacious:12805): MADPlug-WARNING **: layer varies!!<br />
(audacious:8645): MADPlug-WARNING **: number of channels varies!!</p></blockquote>
<p>If I downloaded the file and played that, it worked just fine, so it was something weird about the fact that it was streaming.  My lame transcoding commandline was:</p>
<blockquote><p>lame &#8211;mp3input -h &#8211;vbr-new -V 6 -B 320 -b 32 -S -m j $file -</p></blockquote>
<p>The problem seems to be &#8211;vbr-new, since if I remove that option, it works great all the time.  Go figure.</p>
<p>In general, I think audacious sucks.  Now I also think that madplug sucks.  Oh, and by the way, all of this was precipitated by Fedora removing xmms from their repositories due to mp3 licensing issues.  Fedora sucks too.  Ugh!  It seems as though mp3 playback under Linux has taken a huge step backwards&#8230;</p>
<blockquote></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://slacy.com/blog/2009/03/madplug-lame-vbr-new-fail/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
	</item>
		<item>
		<title>Amazon mp3 downloads for Linux!  Woot!</title>
		<link>http://slacy.com/blog/2008/03/amazon-mp3-downloads-for-linux-woot/</link>
		<comments>http://slacy.com/blog/2008/03/amazon-mp3-downloads-for-linux-woot/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 01:53:34 +0000</pubDate>
		<dc:creator>slacy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[downloader]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[mp3]]></category>

		<guid isPermaLink="false">http://slacy.com/blog/index.php/2008/03/01/amazon-mp3-downloads-for-linux-woot/</guid>
		<description><![CDATA[Amazon has released an mp3 downloader for Linux! Woot!]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/dmusic/help/amd.html">Amazon has released an mp3 downloader for Linux!  Woot!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://slacy.com/blog/2008/03/amazon-mp3-downloads-for-linux-woot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>Unofficial SXSW 2008 mp3 torrent</title>
		<link>http://slacy.com/blog/2008/02/unofficial-sxsw-2008-mp3-torrent/</link>
		<comments>http://slacy.com/blog/2008/02/unofficial-sxsw-2008-mp3-torrent/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 04:10:16 +0000</pubDate>
		<dc:creator>slacy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[sxsw 2008]]></category>
		<category><![CDATA[torrent]]></category>

		<guid isPermaLink="false">http://slacy.com/blog/index.php/2008/02/21/unofficial-sxsw-2008-mp3-torrent/</guid>
		<description><![CDATA[Here&#8217;s a link to an unofficial SXSW 2008 mp3 torrent. Happy listening!]]></description>
			<content:encoded><![CDATA[<p><a href="http://thepiratebay.org/tor/4040333/UNOFFICIAL_SXSW_2008_Showcasing_Artists_Torrent">Here&#8217;s a link to an unofficial SXSW 2008 mp3 torrent</a>.  Happy listening!</p>
]]></content:encoded>
			<wfw:commentRss>http://slacy.com/blog/2008/02/unofficial-sxsw-2008-mp3-torrent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>Ripping daytrotter mp3 files</title>
		<link>http://slacy.com/blog/2008/02/ripping-daytrotter-mp3-files/</link>
		<comments>http://slacy.com/blog/2008/02/ripping-daytrotter-mp3-files/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 02:54:42 +0000</pubDate>
		<dc:creator>slacy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[daytrotter]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://slacy.com/blog/index.php/2008/02/20/ripping-daytrotter-mp3-files/</guid>
		<description><![CDATA[My friend Rich pointed me at daytrotter.com, and it looks like they have a really nice collection of live recordings by a bunch of interesting artists. All the files are available for download on their site, so using some trickery, &#8230; <a href="http://slacy.com/blog/2008/02/ripping-daytrotter-mp3-files/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My friend Rich pointed me at daytrotter.com, and it looks like they have a really nice collection of live recordings by a bunch of interesting artists.  All the files are available for download on their site, so using some trickery, I created a <a href="http://slacy.com/blog/wp-content/daytrotter_music.txt">txt file of all the mp3 URLs</a> so that you can use the same old wget trick to download them all.  Watch out, there&#8217;s 869 files in there, so I&#8217;d expect over 4GB of music&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://slacy.com/blog/2008/02/ripping-daytrotter-mp3-files/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
	</item>
		<item>
		<title>Ripping SXSW 2008 mp3 files</title>
		<link>http://slacy.com/blog/2008/02/ripping-sxsw-2008-mp3-files/</link>
		<comments>http://slacy.com/blog/2008/02/ripping-sxsw-2008-mp3-files/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 05:29:26 +0000</pubDate>
		<dc:creator>slacy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[sxsw]]></category>
		<category><![CDATA[torrent]]></category>

		<guid isPermaLink="false">http://slacy.com/blog/index.php/2008/02/19/ripping-sxsw-2008-mp3-files/</guid>
		<description><![CDATA[I&#8217;ve grown impatient waiting for 2008.sxsw.com to release their torrent of mp3 files. I&#8217;m wondering if they&#8217;re going to do it at all. So, I decided to just suck down the whole site and scrape out all the URLs to &#8230; <a href="http://slacy.com/blog/2008/02/ripping-sxsw-2008-mp3-files/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve grown impatient waiting for 2008.sxsw.com to release their torrent of mp3 files.  I&#8217;m wondering if they&#8217;re going to do it at all. </p>
<p>So, I decided to just suck down the whole site and scrape out all the URLs to all the mp3 files and download them.  It was very straightforward.</p>
<p>First, scrape the site by doing something like this:</p>
<blockquote><p>
wget -nd -nH -r –no-parent -nc http://2008.sxsw.com/music/showcases/alpha/0.html
</p></blockquote>
<p>Then, do something like:</p>
<blockquote><p>
grep mp3_download *.html
</p></blockquote>
<p>(Yes, they were silly enough to use a CSS class for all their mp3 download links named &#8216;mp3_download&#8217;.)</p>
<p>Then, you&#8217;ll have a file with a bunch of raw HTML links.  Pull that into something like emacs and do some replace-regexp commands to trim it to just the URLs themselves.  (There are 740 of them).  I then took the resulting list of mp3s, split it into 2 files, and am running two copies of wget in parallel to suck them all down.  <a href="http://slacy.com/blog/wp-content/sxsw-2008-mp3s">Here&#8217;s a copy of the list of all 740 mp3 files</a>. </p>
<p>Send me an e-mail to my private account if you&#8217;d like me to hook you up with a .tar.bz2 of all 740 files.  I wonder if they&#8217;ll release that .torrent soon?  <img src='http://slacy.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>UPDATE:  The download completed overnight, and the resultant files are about 3.4GB.  </p>
]]></content:encoded>
			<wfw:commentRss>http://slacy.com/blog/2008/02/ripping-sxsw-2008-mp3-files/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
	</item>
	</channel>
</rss>

