<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Converting FLAC to MP3 (including Tags) on command line</title>
	<atom:link href="http://blog.tordeu.com/?feed=rss2&#038;p=184" rel="self" type="application/rss+xml" />
	<link>http://blog.tordeu.com/?p=184</link>
	<description>a blog about stuff</description>
	<lastBuildDate>Mon, 01 Sep 2014 22:51:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.2</generator>
	<item>
		<title>By: rahulanki</title>
		<link>http://blog.tordeu.com/?p=184#comment-6442</link>
		<dc:creator>rahulanki</dc:creator>
		<pubDate>Wed, 26 Feb 2014 14:58:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tordeu.com/?p=184#comment-6442</guid>
		<description><![CDATA[I began creating another python script which may in the end &quot;swap&quot; this script and my flac2ogg script and additionally surely give extra practicality. Shockingly I don&#039;t know to what extent this will take and I am presently virtually simply hacking something together, on the grounds that I truly don&#039;t have a great outline of what could be convenient or fundamental.
: &lt;a&gt;]]></description>
		<content:encoded><![CDATA[<p>I began creating another python script which may in the end &#8220;swap&#8221; this script and my flac2ogg script and additionally surely give extra practicality. Shockingly I don&#8217;t know to what extent this will take and I am presently virtually simply hacking something together, on the grounds that I truly don&#8217;t have a great outline of what could be convenient or fundamental.<br />
: <a></a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick</title>
		<link>http://blog.tordeu.com/?p=184#comment-4604</link>
		<dc:creator>Nick</dc:creator>
		<pubDate>Wed, 25 Sep 2013 19:22:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tordeu.com/?p=184#comment-4604</guid>
		<description><![CDATA[Very useful, thank you! And thanks David for “${i%\.flac}.mp3″ - I tend to end up with file.flac.mp3 because I am to lazy to turn on my brain :)]]></description>
		<content:encoded><![CDATA[<p>Very useful, thank you! And thanks David for “${i%\.flac}.mp3″ &#8211; I tend to end up with file.flac.mp3 because I am to lazy to turn on my brain <img src='http://blog.tordeu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Geoff</title>
		<link>http://blog.tordeu.com/?p=184#comment-2397</link>
		<dc:creator>Geoff</dc:creator>
		<pubDate>Sat, 01 Jun 2013 08:30:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tordeu.com/?p=184#comment-2397</guid>
		<description><![CDATA[Very useful. Thanks!!]]></description>
		<content:encoded><![CDATA[<p>Very useful. Thanks!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Kra</title>
		<link>http://blog.tordeu.com/?p=184#comment-2003</link>
		<dc:creator>David Kra</dc:creator>
		<pubDate>Mon, 29 Apr 2013 18:11:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tordeu.com/?p=184#comment-2003</guid>
		<description><![CDATA[Thank you very much.  An easy way to use your shell script on all the .flac&#039;s in the directory is:  

for i in *.flac ; do /wherever/flac2mp3.sh 3 &quot;$i&quot; &quot;${i%\.flac}.mp3&quot; mtime ; done
]]></description>
		<content:encoded><![CDATA[<p>Thank you very much.  An easy way to use your shell script on all the .flac&#8217;s in the directory is:  </p>
<p>for i in *.flac ; do /wherever/flac2mp3.sh 3 &#8220;$i&#8221; &#8220;${i%\.flac}.mp3&#8243; mtime ; done</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bernhard</title>
		<link>http://blog.tordeu.com/?p=184#comment-256</link>
		<dc:creator>Bernhard</dc:creator>
		<pubDate>Tue, 05 Jun 2012 18:44:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tordeu.com/?p=184#comment-256</guid>
		<description><![CDATA[Hi tordeu,

not a problem, take your time.

Looking forward to what you are coming up with eventually. :)]]></description>
		<content:encoded><![CDATA[<p>Hi tordeu,</p>
<p>not a problem, take your time.</p>
<p>Looking forward to what you are coming up with eventually. <img src='http://blog.tordeu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tordeu</title>
		<link>http://blog.tordeu.com/?p=184#comment-255</link>
		<dc:creator>tordeu</dc:creator>
		<pubDate>Tue, 05 Jun 2012 14:05:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tordeu.com/?p=184#comment-255</guid>
		<description><![CDATA[I started developing a new python script which might eventually &quot;replace&quot; this script and my flac2ogg script as well as hopefully provide additional functionality. Unfortunately I don&#039;t know how long this will take and I am currently pretty much just hacking something together, because I really don&#039;t have a good overview of what might be useful or necessary.
So my current plan is to release the python script when it&#039;s ready, then add functionality as necessary and then review the script later to see how this all can be done better/more flexible etc.

The python script is now capable of at least converting flac2mp3 and I want to add flac2ogg and flac2flac support, as well as a possibility for different &quot;conditional&quot; conversions, where the conversion will only take place once specific conditions (like the mtime of the flac is newer as the mtime of the mp3 as well as the idea with the md5 hash) are met.
I also want to add the possibility to just transfer the tags. I might split this into several scripts and provide a set of scripts for working with audio files, but I don&#039;t really know, yet.

As a &quot;quick fix&quot; I modified the bash script a little. It is now possible to add &quot;mtime&quot; at the end, if which case the conversion will only take place if the flac file is newer than the mp3 file.
I hope that this might at least provide some benefit to you and a few others.]]></description>
		<content:encoded><![CDATA[<p>I started developing a new python script which might eventually &#8220;replace&#8221; this script and my flac2ogg script as well as hopefully provide additional functionality. Unfortunately I don&#8217;t know how long this will take and I am currently pretty much just hacking something together, because I really don&#8217;t have a good overview of what might be useful or necessary.<br />
So my current plan is to release the python script when it&#8217;s ready, then add functionality as necessary and then review the script later to see how this all can be done better/more flexible etc.</p>
<p>The python script is now capable of at least converting flac2mp3 and I want to add flac2ogg and flac2flac support, as well as a possibility for different &#8220;conditional&#8221; conversions, where the conversion will only take place once specific conditions (like the mtime of the flac is newer as the mtime of the mp3 as well as the idea with the md5 hash) are met.<br />
I also want to add the possibility to just transfer the tags. I might split this into several scripts and provide a set of scripts for working with audio files, but I don&#8217;t really know, yet.</p>
<p>As a &#8220;quick fix&#8221; I modified the bash script a little. It is now possible to add &#8220;mtime&#8221; at the end, if which case the conversion will only take place if the flac file is newer than the mp3 file.<br />
I hope that this might at least provide some benefit to you and a few others.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bernhard</title>
		<link>http://blog.tordeu.com/?p=184#comment-229</link>
		<dc:creator>Bernhard</dc:creator>
		<pubDate>Sat, 19 May 2012 20:30:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tordeu.com/?p=184#comment-229</guid>
		<description><![CDATA[Hi tordeu,

not a problem at all. I was on vacation for the last week, so your reply felt like &quot;immediate&quot;. :)
Glad to see you are yourself still interested in evolution.

As to the issues itself:
- No necessity to calculate the md5 sums of the flac-audio-part. If i am not mistaken libflac itself does add the md5sum tag to the file during creation. And that is for the audio only, not the meta-data. (metaflac --show-md5sum audio.flac). Actually it is the md5sum of the raw-data which gets encoded to flac. So in means of the actual usage of checksums to recognize data-corruption it is worthless unless you use the same source file again for an encoding (checksum and flac-data should be identical if algorithms are deterministic).
But anyhow if using the md5sum tag of the flac and transfer it over to the mp3-metadata it should be a valid indicator if these flac files have been transcoded before or not (and could be skipped this time).
Of course someone who has problems with the actual flac or mp3 encoding itself will not get help from this, but in that case you do have some major issues somewhere else anyways.
- Calculating the checksum for the flac-meta-part is also not necessary. I think working with file-dates (creation, modification) should suffice to determine if the flac-meta-part has received an update and should be transfered over to the mp3-metadata. Although i have not thought in depth about this one on which cases this could fail (without noticing it).
  
You are right about everybody working in different ways and everyone/many has/have a different view on what might be the perfect way to organize things. While it sometimes bugs me i am also glad that this is the case... otherwise many many things would be sooooo boring and no fun at all.
I am also with you on &quot;simple in usage&quot;. I am not looking for an all-in-one solution, just trying to get together my &quot;tool-chain&quot; to get the result i want and all consumers (smartphone, pc-audio, boxee-box, ...) be happy with the &quot;material-source&amp;meta&quot;.
After all it is your (simple) script and i am glad you are sharing your experiences with the public. With people like you it is way easier to get along and further than if everybody would need to have in-depth readings and studies of man-pages and what not...]]></description>
		<content:encoded><![CDATA[<p>Hi tordeu,</p>
<p>not a problem at all. I was on vacation for the last week, so your reply felt like &#8220;immediate&#8221;. <img src='http://blog.tordeu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Glad to see you are yourself still interested in evolution.</p>
<p>As to the issues itself:<br />
- No necessity to calculate the md5 sums of the flac-audio-part. If i am not mistaken libflac itself does add the md5sum tag to the file during creation. And that is for the audio only, not the meta-data. (metaflac &#8211;show-md5sum audio.flac). Actually it is the md5sum of the raw-data which gets encoded to flac. So in means of the actual usage of checksums to recognize data-corruption it is worthless unless you use the same source file again for an encoding (checksum and flac-data should be identical if algorithms are deterministic).<br />
But anyhow if using the md5sum tag of the flac and transfer it over to the mp3-metadata it should be a valid indicator if these flac files have been transcoded before or not (and could be skipped this time).<br />
Of course someone who has problems with the actual flac or mp3 encoding itself will not get help from this, but in that case you do have some major issues somewhere else anyways.<br />
- Calculating the checksum for the flac-meta-part is also not necessary. I think working with file-dates (creation, modification) should suffice to determine if the flac-meta-part has received an update and should be transfered over to the mp3-metadata. Although i have not thought in depth about this one on which cases this could fail (without noticing it).</p>
<p>You are right about everybody working in different ways and everyone/many has/have a different view on what might be the perfect way to organize things. While it sometimes bugs me i am also glad that this is the case&#8230; otherwise many many things would be sooooo boring and no fun at all.<br />
I am also with you on &#8220;simple in usage&#8221;. I am not looking for an all-in-one solution, just trying to get together my &#8220;tool-chain&#8221; to get the result i want and all consumers (smartphone, pc-audio, boxee-box, &#8230;) be happy with the &#8220;material-source&amp;meta&#8221;.<br />
After all it is your (simple) script and i am glad you are sharing your experiences with the public. With people like you it is way easier to get along and further than if everybody would need to have in-depth readings and studies of man-pages and what not&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tordeu</title>
		<link>http://blog.tordeu.com/?p=184#comment-225</link>
		<dc:creator>tordeu</dc:creator>
		<pubDate>Wed, 16 May 2012 20:25:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tordeu.com/?p=184#comment-225</guid>
		<description><![CDATA[First of all: Sorry for taking so long to reply.

The feature you mentioned is a great idea. Unfortunately, this script does not support that, because it is/was only intended to convert a single FLAC to mp3 without any additional options.

I am thinking about additional tools to manage music libraries and automate some tasks. But everybody organizes his/her music differently. The problem with avoiding unnecessary conversions is that using the hash of the tags is not enough. You would have to calculate the hash of the audio data as well, which would still take some time in case the library is big.
It will work in most real cases, but if it does not, you have no idea why. And calculating the hash of all FLAC files in a large collection still takes some time. 

I will try to work on the script next week or the week after that to improve the situation at least a little bit. I am thinking of adding an option to only convert the FLAC if the FLAC file was changed after the MP3 was created.
That would not be a perfect solution and still convert way too many audio files, but I think it would still be a big improvement and it won&#039;t be necessary to calculate the hash of every file. I could also add different methods of deciding when to convert at a later time to provide optimized solutions for different cases.

I still want the script to be very simple in usage, however, which is why I will won&#039;t add library management features and I don&#039;t want it to add its own tags to the mp3s or modify the tags of the FLAC files.]]></description>
		<content:encoded><![CDATA[<p>First of all: Sorry for taking so long to reply.</p>
<p>The feature you mentioned is a great idea. Unfortunately, this script does not support that, because it is/was only intended to convert a single FLAC to mp3 without any additional options.</p>
<p>I am thinking about additional tools to manage music libraries and automate some tasks. But everybody organizes his/her music differently. The problem with avoiding unnecessary conversions is that using the hash of the tags is not enough. You would have to calculate the hash of the audio data as well, which would still take some time in case the library is big.<br />
It will work in most real cases, but if it does not, you have no idea why. And calculating the hash of all FLAC files in a large collection still takes some time. </p>
<p>I will try to work on the script next week or the week after that to improve the situation at least a little bit. I am thinking of adding an option to only convert the FLAC if the FLAC file was changed after the MP3 was created.<br />
That would not be a perfect solution and still convert way too many audio files, but I think it would still be a big improvement and it won&#8217;t be necessary to calculate the hash of every file. I could also add different methods of deciding when to convert at a later time to provide optimized solutions for different cases.</p>
<p>I still want the script to be very simple in usage, however, which is why I will won&#8217;t add library management features and I don&#8217;t want it to add its own tags to the mp3s or modify the tags of the FLAC files.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bernhard</title>
		<link>http://blog.tordeu.com/?p=184#comment-212</link>
		<dc:creator>Bernhard</dc:creator>
		<pubDate>Sat, 05 May 2012 11:30:36 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tordeu.com/?p=184#comment-212</guid>
		<description><![CDATA[Hi tordeu,

nice script you got together there.

After have been ok for years i recently discovered the tag-chaos associated with my demand of having flac/mp3 synced copies of my library for the usage on iPods/Smartphones. 
I started using the great perl-script from Robin Bowes, see below.
http://projects.robinbowes.com/flac2mp3

The fun started when i saw some chaotic displays of my libraries in my favorite audio-player foobar2000 (with ColumnsUI and foovert).
The fun got even greater once i started comparing foobar, mp3tag, mediainfo and metaflac outputs. To be honest it is kind of driving me nuts, still.
Not only the mapping between flac and id3v2 tags but also the usage of frames/fields within one format seems chaotic partially. e.g. metaflac reading &quot;Organization&quot; and foobar2000/mp3tag displaying &quot;Publisher&quot;.
So mainly due to albumartist, tracknumber/tracktotal, discnumber/disctotal issues i started looking around
alternatives to the perl-script (since i seem to stupid e.g. to figure out how to match tracknumber and tracktotal from the flac-tags to the TRCK frame in id3v2 with it).

So i stumbled across your shell-script. Besides that i needed to comment out the pipefail and the check of the parameter readings (probably due to bash differences, using ubuntu 11.10 server here) it works well.
I also have appended more meta-fields as e.g. TPE2/ALBUMARTIST, TPOS, TPUB.
So far so good.

What i am missing right now is e.g. one feature from the perl-script, md5sum.
It is using the md5sum of the flac-tag to decide if a new transcode is necessary or if only the meta-data has changed and only writing tags would suffice if the flac-file is found to be altered since the last run of the script. So far i have no clue how i would do that.

You see any chance you might be interested in expanding your script in that matter?
Not need to transcode everything once some tags have changed or i decide to append more meta-fields to be synced to the mp3 copies would be really cool.

Another thing i have not tried yet with your script is the folder-structure of the library. The perl-script takes a source and destination folder as input and (e.g. /music/flac/ and /music/mp3/) re-creates the sub-structure on its own.
I know there are ways around that, e.g. using &quot;find&quot; or similar to maybe achieve this. But i was just wondering if your script could do the same itself?

Best regards
Bernhard]]></description>
		<content:encoded><![CDATA[<p>Hi tordeu,</p>
<p>nice script you got together there.</p>
<p>After have been ok for years i recently discovered the tag-chaos associated with my demand of having flac/mp3 synced copies of my library for the usage on iPods/Smartphones.<br />
I started using the great perl-script from Robin Bowes, see below.<br />
<a href="http://projects.robinbowes.com/flac2mp3" rel="nofollow">http://projects.robinbowes.com/flac2mp3</a></p>
<p>The fun started when i saw some chaotic displays of my libraries in my favorite audio-player foobar2000 (with ColumnsUI and foovert).<br />
The fun got even greater once i started comparing foobar, mp3tag, mediainfo and metaflac outputs. To be honest it is kind of driving me nuts, still.<br />
Not only the mapping between flac and id3v2 tags but also the usage of frames/fields within one format seems chaotic partially. e.g. metaflac reading &#8220;Organization&#8221; and foobar2000/mp3tag displaying &#8220;Publisher&#8221;.<br />
So mainly due to albumartist, tracknumber/tracktotal, discnumber/disctotal issues i started looking around<br />
alternatives to the perl-script (since i seem to stupid e.g. to figure out how to match tracknumber and tracktotal from the flac-tags to the TRCK frame in id3v2 with it).</p>
<p>So i stumbled across your shell-script. Besides that i needed to comment out the pipefail and the check of the parameter readings (probably due to bash differences, using ubuntu 11.10 server here) it works well.<br />
I also have appended more meta-fields as e.g. TPE2/ALBUMARTIST, TPOS, TPUB.<br />
So far so good.</p>
<p>What i am missing right now is e.g. one feature from the perl-script, md5sum.<br />
It is using the md5sum of the flac-tag to decide if a new transcode is necessary or if only the meta-data has changed and only writing tags would suffice if the flac-file is found to be altered since the last run of the script. So far i have no clue how i would do that.</p>
<p>You see any chance you might be interested in expanding your script in that matter?<br />
Not need to transcode everything once some tags have changed or i decide to append more meta-fields to be synced to the mp3 copies would be really cool.</p>
<p>Another thing i have not tried yet with your script is the folder-structure of the library. The perl-script takes a source and destination folder as input and (e.g. /music/flac/ and /music/mp3/) re-creates the sub-structure on its own.<br />
I know there are ways around that, e.g. using &#8220;find&#8221; or similar to maybe achieve this. But i was just wondering if your script could do the same itself?</p>
<p>Best regards<br />
Bernhard</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tordeu</title>
		<link>http://blog.tordeu.com/?p=184#comment-210</link>
		<dc:creator>tordeu</dc:creator>
		<pubDate>Fri, 04 May 2012 19:09:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tordeu.com/?p=184#comment-210</guid>
		<description><![CDATA[You are very welcome. I am glad I could help.]]></description>
		<content:encoded><![CDATA[<p>You are very welcome. I am glad I could help.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
