<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.1.3" -->
<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/"
	>

<channel>
	<title>TagLib# Development Blog</title>
	<link>http://blog.taglib-sharp.com</link>
	<description>Just another WordPress weblog</description>
	<pubDate>Fri, 11 Jan 2008 00:39:54 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.3</generator>
	<language>en</language>
			<item>
		<title>API Documentation</title>
		<link>http://blog.taglib-sharp.com/2008/01/10/api-documentation/</link>
		<comments>http://blog.taglib-sharp.com/2008/01/10/api-documentation/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 00:39:54 +0000</pubDate>
		<dc:creator>Brian Nickel</dc:creator>
		
		<category><![CDATA[Documentation]]></category>

		<guid isPermaLink="false">http://blog.taglib-sharp.com/2008/01/10/api-documentation/</guid>
		<description><![CDATA[One thing I should add, 2.0.3.0 also features the completed documentation inside the source files.
Just some trivia: There are 1.5MB of source files with 52487 lines. Of that, 844kb and 23911 lines are API documentation comments. That means over 50% of the contents of the source is documentation.
Had I been faced with these facts a [...]]]></description>
			<content:encoded><![CDATA[<p>One thing I should add, 2.0.3.0 also features the completed documentation inside the source files.</p>
<p>Just some trivia: There are 1.5MB of source files with 52487 lines. Of that, 844kb and 23911 lines are API documentation comments. That means over 50% of the contents of the source is documentation.</p>
<p>Had I been faced with these facts a year and a half ago, I may have simply not written the library, but since I did, you can enjoy the documentation at <a href="http://www.taglib-sharp.com/docs/">http://www.taglib-sharp.com/docs/</a> Yes, that &#8220;Documentation&#8221; link at the top of the page now actually leads to documentation.</p>
<p>- Brian</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.taglib-sharp.com/2008/01/10/api-documentation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Announcing 2.0.3.0</title>
		<link>http://blog.taglib-sharp.com/2008/01/10/announcing-2030/</link>
		<comments>http://blog.taglib-sharp.com/2008/01/10/announcing-2030/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 00:17:25 +0000</pubDate>
		<dc:creator>Brian Nickel</dc:creator>
		
		<category><![CDATA[New Release]]></category>

		<guid isPermaLink="false">http://blog.taglib-sharp.com/2008/01/10/announcing-2030/</guid>
		<description><![CDATA[

After a bit of a delay TagLib# 2.0.3.0 is out. This release features fixes to a tonne of bugs that have been discovered since 2.0.2.0. I would recommend this upgrade to anyone using 2.0.2.0.
Download &#124; Changelog &#124; Donate
NEWS Entry
Version 2.0.3.0
January 10, 2008

This release of TagLib# features many bug fixes and a complete rework of the
documentation [...]]]></description>
			<content:encoded><![CDATA[<h2 style="text-align:center"><img src="http://www.taglib-sharp.com/images/c/ce/2.0.3.0.png" alt="2.0.3.0" /></h2>
<p></center></p>
<p>After a bit of a delay TagLib# 2.0.3.0 is out. This release features fixes to a tonne of bugs that have been discovered since 2.0.2.0. I would recommend this upgrade to anyone using 2.0.2.0.</p>
<p><center><a href="http://www.taglib-sharp.com/Download/">Download</a> | <a href="http://www.taglib-sharp.com/Changelog">Changelog</a> | <a href="http://www.taglib-sharp.com/Donate">Donate</a></center></p>
<h2>NEWS Entry</h2>
<pre>Version 2.0.3.0
January 10, 2008

This release of TagLib# features many bug fixes and a complete rework of the
documentation to better serve the Windows community. Fixes include:
	* Make Asf.Tag enumerable.
	* Don't duplicate genres stored in "(0)Blues" format.
	* Save Id3v2.RelativeVolumeFrame as XRVA and XRV in ID3v2.3 and ID3v2.2.
	* Insert new comments before other comment frames in Id3v2.Tag
	* Use CultureInfo.CurrentCulture to get the correct comment language in
	  Id3v2.Tag.
	* Skip iTunes comments in Id3v2.CommentsFrame.
	* Save multi-string values as a single box with a semicolon separator
	  in Mpeg4.AppleTag to improve compatability with iTunes.
	* Make the Id3v2.Tag.DefaultVersion = 3 because most commercial programs
	  have some crippling ID3v2.4 problem.
	* Added Id3v2.Tag.IsCompilation
	* Don't crash on misformatted field in XiphComment.
	* Recognize the .divx extension as a RIFF file.
	* Use one byte rather than four to store compilation in Mpeg4.AppleTag.
	* Don't check the image format flags anymore in Mpeg4.AppleTag, just use
	  the file contents.
	* Don't crash in NonContainer.EndTag when the file is less than 128
	  bytes.
	* Allow saving of multi-page comment packets in Ogg through massive
	  rewrite of pagination.
	* Allow correct reading of multi-page comment packets in Ogg.Bitstream.
	* Use try/finally on all load and save operations to prevent files from
	  being left open.
	* Produce correct output on empty ID3v1 tag.
	* Remove broken Id3v1.Tag.IsEmpty.
	* src/TagLib/Riff/List.cs: Make sure fields are cleared when SetValue
	* Clear value when null is passed in Riff.List.SetValue.
	* Make Riff.DivXTag.Clear clear the title.
	* Read genres correctly in Riff.MovieIdTag.
	* Complete codec descriptions for RIFF and ASF files.
	* Fix reading of UTF16-BE Id3v2.SynchronizedLyricsFrames.
	* Throw NotImplementedException for private frames in ID3v2.2.
	* Fix writing Id3v2.GeneralEncapulatedObjectFrame in UTF16.
	* Added support for multiple non-indexed artists in ID3v2.3
	* Correctly parse nil separated UTF-16BE strings.
	* Allow parsing of variable length years in Ape.Tag.
	* Fix writing of Mpeg4 files by correctly reading in values to
	  Mpeg4.FileParser.UtdaTree.
	* Allow parsing of all year lengths in Mpeg4.AppleTag and correctly
	  clear zeroed values.
	* Use Semicolons rather than commas in Tag.Joined* to reflect the
	  behavior of Windows Media Player.
	* Remove "WM/GenreID" from Asf.Tag when storing a new genre.
	* Switch ordering of check in looking for ASF content descriptors to
	  emphasize name rather than order.
	* Don't throw exception on zero byte strings in ByteVector.ToString ().
	* Use ContentDescriptionObject.Copyright in Asf.Tag.
	* Switch order of play_duration and send_duration in Asf.HeaderObject.
	  This is backwards from the specification but conforms to actual files.
	* Don't count preroll in ASF durations.
	* Don't double-count position when counting frames.
	* Ensure Id3v2.FrameHeader is converting headers from versions 2 and 3.
	* Always set the encoding to default in Id3v2.Tag when writing a frame
	  to prevent misencoding.
	* Stopped ArgumentOutOfRangeExceptions from occuring when corrupt
	  RelativeVolumeframe is encountered.
	* Fixed rendering of Ape.Item on non-latin characters.
	* Added new constructors to Picture to obsolete CreateFromFile,
	  CreateFromPath.
	* Changed Asf.Tag to write large pictures to the ASF Metadata Library
	  Object rather than ignoring them.
	* Changed the way Mpeg.AudioHeader checked for Xing identifier to
	  prevent first change exception if none was found.
	* Use StringBuilder instead of string addition.
	* Don't crash if Mpeg4.IsoHandlerBox does not contain a nil delimiter.
	* Limit scanning in Mpeg.AudioFile to 4096 bytes of audio stream to
	  prevent reading whole file if corrupt.
	* Replace protected CombinedTag constructor with public one to allow
	  compiling in Orcas.
	* Include MonoDevelop files in distributed package.
	* Correctly parse beats per minute when they contain floating point
	  numbers.

Added features:
	* Added support for Fraunhofer VBRI header. (Authored by hwahrmann.)
	* Obsoleted Tag.Duplicate in favor of Tag.CopyTo which can be extended
	  to provide better support for copying between matching tag types.
	* Added ByteVector.UseBrokenLatin1Behavior that when true reads tags
	  from the system encoding instead of Latin1.
	* Added support for reading APE files. (Authored by hwahrmann.)
	* Added generic Id3v2.GetFrames<T>() to reduce casting.
	* Added support for one of each type of cover image in Ape.Tag
	* Added recognition of BMP and GIF images in Picture.
	* Added Id3v2.PopularimeterFrame capable of handling ratings from
	  Windows Media Player.
	* Added Id3v2.Tag.UseNumericGenres which can be disabled to prevent
	  genres from being written as indices.
	* Added File.InvariantStartPosition and File.InvariantEndPosition to
	  mark the edges of the media portion of the file.

Special thanks to those who contributed since the last release:
	AgentS, codi, craig, Dakuja, DavidT@Imerge, evgeni, hwahrmann, jms,
	jmurphy, jocker, jonx, jposen, kajic, kurros, nokturnal, oliphant,
	renzska, sambeckett, sukhjinder, and anyone else who I may have
	forgotten.</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.taglib-sharp.com/2008/01/10/announcing-2030/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Testers needed</title>
		<link>http://blog.taglib-sharp.com/2007/10/03/testers-needed/</link>
		<comments>http://blog.taglib-sharp.com/2007/10/03/testers-needed/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 00:10:55 +0000</pubDate>
		<dc:creator>Brian Nickel</dc:creator>
		
		<category><![CDATA[Help Wanted]]></category>

		<guid isPermaLink="false">http://blog.taglib-sharp.com/2007/10/03/testers-needed/</guid>
		<description><![CDATA[I&#8217;d like to declare 2.0.2.17 stable as 2.0.3.0. Please test it here and let me know if any new bugs have popped up.
Thanks,
Brian
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d like to declare 2.0.2.17 stable as 2.0.3.0. Please test it <a href="http://www.taglib-sharp.com/Download/Between%20Release%20Packages/taglib-sharp-2.0.2.17-windows.zip">here</a> and let me know if any new bugs have popped up.</p>
<p>Thanks,<br />
Brian</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.taglib-sharp.com/2007/10/03/testers-needed/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Announcing 2.0.2.0</title>
		<link>http://blog.taglib-sharp.com/2007/07/04/announcing-2020/</link>
		<comments>http://blog.taglib-sharp.com/2007/07/04/announcing-2020/#comments</comments>
		<pubDate>Wed, 04 Jul 2007 23:45:17 +0000</pubDate>
		<dc:creator>Brian Nickel</dc:creator>
		
		<category><![CDATA[New Release]]></category>

		<category><![CDATA[New Features]]></category>

		<guid isPermaLink="false">http://blog.taglib-sharp.com/2007/07/04/announcing-2020/</guid>
		<description><![CDATA[

TagLib# 2.0.2.0 is out. This release features fixes to bugs in tag reading, and a problem where TagLib.Tag.Artists (added in 2.0.1) did not work.
Important to note is that the Windows package (taglib-sharp-2.0.2.0-windows.zip) was compiled on Linux. There should be no issues, but if any do appear, don&#8217;t hesitate to submit a bug report and compile [...]]]></description>
			<content:encoded><![CDATA[<h2 style="text-align:center"><img src="http://www.taglib-sharp.com/images/2/24/2.0.2.0.png" alt="2.0.2.0" /></h2>
<p></center></p>
<p>TagLib# 2.0.2.0 is out. This release features fixes to bugs in tag reading, and a problem where TagLib.Tag.Artists (added in 2.0.1) did not work.</p>
<p>Important to note is that the Windows package (taglib-sharp-2.0.2.0-windows.zip) was compiled on Linux. There should be no issues, but if any do appear, don&#8217;t hesitate to <a href="http://forum.taglib-sharp.com/viewforum.php?f=5">submit a bug report</a> and compile the binary yourself.</p>
<p>The Windows library is now signed with the public key, db62eba44689b5b0, and includes a policy which can be installed into the GAC.</p>
<pre>gacutil /i taglib-sharp.dll /package taglib-sharp
gacutil /i policy.2.0.taglib-sharp.dll</pre>
<p><center><a href="http://www.taglib-sharp.com/Download/">Download</a> | <a href="http://www.taglib-sharp.com/Changelog">Changelog</a> | <a href="http://www.taglib-sharp.com/Donate">Donate</a></center></p>
<h2>NEWS Entry</h2>
<pre>Version 2.0.2.0
July 3, 2007

This is the second bug fix release for TagLib#. Fixes include:
	* Read AttachedPictureFrame correctly when UTF-16 encoded.
	* Stop infinite recursion with rare Xing header.
	* Add "VBR" to the MPEG Audio description if a Xing header is present.
	* Update unit tests for changes in 2.0.1.
	* Fix Artists (added in 2.0.1) to point to Performers. Was pointing
	nowhere.
	* Make ByteVector.Find return correctly if (data.Count == pattern.Count
	+ offset).
	* Set to this.data instead of data in PrivateFrame constructor.

Outstanding bugs:
	* MPEG-4 tags do not show up in Nokia N95 Phone.
	* Large pictures should be stored in the ASF HeaderExtensionObject.

Outstanding feature requests:
	* Add slow read support to get correct information from VBR MP3's
	lacking Xing headers.
	* Add TagLib.Tag.Key
	* Add TagLib.Id3v2.PopularimeterFrame
	* Support ID3v2 chapters.
	* Return invariant data sections for a file.

Special thanks to those who contributed in some way to the project over the past
year:
	Aaron Bockover, Alan, Alexander Hixon, Andrés Gómez Aragoneses,
	Clint Banzhaf, D Bera, David Wu, Da_FileServer, Dennis Cranston,
	Fabrice Deshayes aka Xtream, Gabriel Rosenhouse, gozza11, Gustavo Rubio,
	Herman Mahone, HugoPalma, Ilya Konstantinov, Ion Todirel, jc BAUDHUIN,
	jmurphy, JustinC, lindea, Michael Monreal, maciej, mikec, mtampe,
	Patrick Laplante, pipes, renzska, sambeckett, Sebastian Dröge,
	Timm Preetz, wilson, and anyone else who I may have forgotten.</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.taglib-sharp.com/2007/07/04/announcing-2020/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows Testers Needed. The payoff: Faster releases</title>
		<link>http://blog.taglib-sharp.com/2007/07/03/windows-testers-needed-the-payoff-faster-releases/</link>
		<comments>http://blog.taglib-sharp.com/2007/07/03/windows-testers-needed-the-payoff-faster-releases/#comments</comments>
		<pubDate>Wed, 04 Jul 2007 01:21:09 +0000</pubDate>
		<dc:creator>Brian Nickel</dc:creator>
		
		<category><![CDATA[Help Wanted]]></category>

		<guid isPermaLink="false">http://blog.taglib-sharp.com/2007/07/03/windows-testers-needed-the-payoff-faster-releases/</guid>
		<description><![CDATA[I do all of my development on Linux and its a big hassle for me to get out the Windows releases (remote desktop or rebooting). Since I only reference System in the library, my Mono compiled library should work perfectly on Windows, saving me a hassle. Additionally, I&#8217;ll be able to release &#8220;in-between&#8221; releases very, [...]]]></description>
			<content:encoded><![CDATA[<p>I do all of my development on Linux and its a big hassle for me to get out the Windows releases (remote desktop or rebooting). Since I only reference System in the library, my Mono compiled library should work perfectly on Windows, saving me a hassle. Additionally, I&#8217;ll be able to release &#8220;in-between&#8221; releases very, very quickly. Pretty much, I can release a Windows package whenever I make a change.</p>
<p>So, download it here: <a href="http://www.taglib-sharp.com/Download/test/taglib-sharp-2.0.2.0-windows.zip">http://www.taglib-sharp.com/Download/test/taglib-sharp-2.0.2.0-windows.zip</a>, try it with your program, and comment here on whether or not it works.</p>
<p>Thanks,<br />
Brian</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.taglib-sharp.com/2007/07/03/windows-testers-needed-the-payoff-faster-releases/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Don&#8217;t use C#? Join the documentation revolution!</title>
		<link>http://blog.taglib-sharp.com/2007/06/25/dont-use-c-join-the-documentation-revolution/</link>
		<comments>http://blog.taglib-sharp.com/2007/06/25/dont-use-c-join-the-documentation-revolution/#comments</comments>
		<pubDate>Mon, 25 Jun 2007 19:52:02 +0000</pubDate>
		<dc:creator>Brian Nickel</dc:creator>
		
		<category><![CDATA[Documentation]]></category>

		<guid isPermaLink="false">http://blog.taglib-sharp.com/2007/06/25/dont-use-c-join-the-documentation-revolution/</guid>
		<description><![CDATA[Want to contribute to TagLib#? Use VB.NET, Managed C++, Boo, J#, IronPython, Ruby.NET, etc?
I&#8217;ve recently started work on reformatting the source to use the Mono Project Coding Guidelines and rewriting the docs from scratch in the source. One goal I have for this transition is to add at least one example per class, and to [...]]]></description>
			<content:encoded><![CDATA[<p>Want to contribute to TagLib#? Use VB.NET, Managed C++, Boo, J#, IronPython, Ruby.NET, etc?</p>
<p>I&#8217;ve recently started work on reformatting the source to use the <a href="http://www.mono-project.com/Coding_Guidelines">Mono Project Coding Guidelines</a> and rewriting the docs from scratch in the source. One goal I have for this transition is to add at least one example per class, and to have the examples in at least C#, VB.NET, Managed C++, and Boo (other languages a bonus). As I only really know C# well, this means I&#8217;ll need some help.</p>
<p>So grab your ego and head over to the <a href="http://forum.taglib-sharp.com/viewtopic.php?f=8&#038;t=50">language forum</a> where the work is waiting on TagLib.Id3v2.PrivateFrame. My best guesses are there but they could stand some review. If all goes well, I&#8217;ll be regularly adding examples to be translated.</p>
<p>Thanks!<br />
Brian</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.taglib-sharp.com/2007/06/25/dont-use-c-join-the-documentation-revolution/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TagLib# Turns 1 and 2.0.1</title>
		<link>http://blog.taglib-sharp.com/2007/06/24/taglib-turns-1-and-201/</link>
		<comments>http://blog.taglib-sharp.com/2007/06/24/taglib-turns-1-and-201/#comments</comments>
		<pubDate>Mon, 25 Jun 2007 05:20:27 +0000</pubDate>
		<dc:creator>Brian Nickel</dc:creator>
		
		<category><![CDATA[New Release]]></category>

		<guid isPermaLink="false">http://blog.taglib-sharp.com/2007/06/24/taglib-turns-1-and-201/</guid>
		<description><![CDATA[
TagLib# 2.0.1 is out, in all its glory. This release features many bug fixes, most importantly the resolution to the problem of album artists and performers being flip-flopped in a lot of players. It is highly recommended that you upgrade from the previous release.
From the NEWS file:
Version 2.0.1
June 24, 2007

This is the first bug fix [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.taglib-sharp.com/images/0/04/2.0.1.png" /></center></p>
<p>TagLib# 2.0.1 is out, in all its glory. This release features many bug fixes, most importantly the resolution to the problem of album artists and performers being flip-flopped in a lot of players. It is highly recommended that you upgrade from the previous release.</p>
<p>From the NEWS file:</p>
<pre>Version 2.0.1
June 24, 2007

This is the first bug fix release for TagLib#. Fixes include:
	* Use Picard Tag mapping for all tags to improve constistency.
	* Add JoinedAlbumArtists and FirstAlbumArtist for clarity.
	* Add Artist pointing to Performers with an ObsoleteAttribute.
	* Handle ID3v2 comments ending with text delimiters better.
	* Clear ID3v2 pictures when Pictures is set to null.
	* Don't try storing pictures larger than 64K in ASF files.
	* Don't throw an exception when saving MPEG-4 files without UTDA boxes.
	* Fix the clearing of MPEG-4 boxes.
	* Use Box.DataSize instead of Header.DataSize when calculating the
	MPEG-4 padding.
	* Recognize WMA Lossless in the codec description.

Outstanding bugs:
	* MPEG-4 tags do not show up in Nokia N95 Phone.

Special thanks to those who contributed in some way to the project over the past
year:
	Aaron Bockover, Alan, Alexander Hixon, Andrés Gómez Aragoneses,
	Clint Banzhaf, D Bera, David Wu, Da_FileServer, Dennis Cranston,
	Fabrice Deshayes aka Xtream, Gabriel Rosenhouse, gozza11, Gustavo Rubio,
	Herman Mahone, HugoPalma, Ilya Konstantinov, Ion Todirel, jc BAUDHUIN,
	jmurphy, JustinC, lindea, Michael Monreal, maciej, mikec, mtampe,
	Patrick Laplante, renzska, Sebastian Dröge, Timm Preetz, wilson, and
	anyone else who I may have forgotten.</pre>
<p><center><a href="http://www.taglib-sharp.com/Download/">Download</a> | <a href="http://www.taglib-sharp.com/Changelog">Changelog</a> | <a href="http://www.taglib-sharp.com/Donate">Donate</a></center></p>
<p><big>On another note, TagLib# 0.0.0 was released on June 23, 2006, making it <b>one year old</b> as of yesterday. (I didn&#8217;t have a chance to get online yesterday.) From the TagLib# mailing list:</big></p>
<pre>Date: Fri, 23 Jun 2006 04:57:35 -0700
From: "Brian Kerrick Nickel" &lt;*********>
To: *********
Subject: Announcing taglib-sharp-0.0.0 - TESTERS NEEDED

Greetings and salutations,

With hopes of solving the tagging deficiencies in C#, I've started a port of
TagLib to the .NET framework. This will allow easier and more complete
adoption by programs like Cowbell and Muine, and hopefully replace
entagged-sharp in Banshee (It doesn't play nice with multi-field text and is
not very expendable). It'll also be a very smooth port to Windows.

This first release (0.0.0) contains a complete but very untested port of
TagLib 1.4.1 to C# with some minor bug fixes (I'll report them) and some API
additions. This release doesn't install, but provides a test program
"read-files" to read the tags from files. I've tested reading with many
ogg-vorbis and mp3's and a single FLAC. (I'll check out writing tomorrow.)

What I would ask (for those of you who use mono) is for you to test the
reader with files you have and report any errors to me. Usage is as follows:

   1. Download
   http://www.public.asu.edu/~bnickel/TagLibSharp/taglib-sharp-0.0.0.tar.gz
   2. Untar the file.
   3. Enter the directory in a shell.
   4. ./compile.sh
   5. cd tests/
   6. ./read-files /path/to/files/*

The port was not that smooth with lots of typecasting and a few mistakes I
was able to find, so hopefully with some testing it should be good to go.

Thanks in advance for your testing.
  --
Brian Kerrick Nickel &lt;brian.nickel@gmail.com></pre>
<p>From the same list it looks like I started all the hard work sometime after May 26:</p>
<pre>Date: Fri, 26 May 2006 02:50:28 -0700
From: "Brian Kerrick Nickel" &lt;*********>
To: "Antti Sykäri" &lt;*********>
Subject: Re: C# bindings for TagLib 1.4. Tested on Windows/MSVC2005
Cc: *********

Antti,

A while ago, I made an extensive binding of specific features for the Muine
music player here: http://www.public.asu.edu/~bnickel/SharpTagger/

This library is a little more robust than the C bindings allow for,
providing things like "string [] Artists" rather than "string Artist". It
also provides other items like total tracks, disk# in set, disk title, album
cover, etc. Unfortunately, it also leaks quite a bit of memory but if you
can work around its shortcomings, it has write support and provides examples
of how to extend certain features.

I think the best idea overall would be a full port of TagLib to C#, as it
could take advantage of .NET's built in libraries for data structures and
unicode. I have some prior work on this I could share, but I'm an
organizational disaster and never really devised a systematic way of working
on it. (A goal of mine for this summer.)

Best of luck,
Brian Nickel

On 5/25/06, Antti Syk=E4ri <jsykari@cc.hut.fi> wrote:
>
> Hi,
>
> I&#8217;m writing a music player in C# but couldn&#8217;t find a good C# library
> for reading id3v2 tags, so I wrote an initial version of C# bindings
> for TagLib. It uses the C interface and writing tags is not yet
> supported.  It should be straightforward to add but I decided to get
> some sleep instead. Also Unicode doesn&#8217;t quite work yet - I assume that
> my wrapper thinks it&#8217;s getting ISO-8859-1/ASCII from the file when it
> actually gets UTF8 encoded data. But otherwise it seems to work <img src='http://blog.taglib-sharp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />
>
> I used Visual Studio 2005 on Windows XP (Express should work as well)
> and Stefan Gehn&#8217;s MSVC port of TagLib
> (http://metz.gehn.net/files/taglib-snapshot-win32.zip), which I
> augmented with a slightly modified tag_c.cpp. It is available at:
>
> http://jsykari.lucid.fi/soft/TagLib/taglib-1.4.0-win32-with-c-bindings.zip
>
> The C# bindings are at:
>
> http://jsykari.lucid.fi/soft/TagLib/TagLib.cs
>
> Perhaps someone finds it useful.
>
> -Antti
>
> &#8211;
> - I still say that private enterprise is acceptable at a village level,
> providing it is strictly controlled by the party.
> - We must not let petty bourgeois aspirations taint socialist pedagogy.
> Reform is the enemy of revolution.</pre>
<p>It&#8217;s been a really great year with a lot of interesting changes, obstacles, head aches, contributions, and successes. I hope the next year is easier. <img src='http://blog.taglib-sharp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Sincerely,<br />
Brian</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.taglib-sharp.com/2007/06/24/taglib-turns-1-and-201/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Announcing 2.0</title>
		<link>http://blog.taglib-sharp.com/2007/06/11/announcing-20/</link>
		<comments>http://blog.taglib-sharp.com/2007/06/11/announcing-20/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 22:28:19 +0000</pubDate>
		<dc:creator>Brian Nickel</dc:creator>
		
		<category><![CDATA[New Release]]></category>

		<category><![CDATA[Documentation]]></category>

		<guid isPermaLink="false">http://blog.taglib-sharp.com/2007/06/11/announcing-20/</guid>
		<description><![CDATA[
After over 10 months of development, TagLib# 2.0 is officially out. This release is API and ABI stable and ready for use in production systems and inclusion in Linux distributions.
Download &#124; Changelog &#124; Donate
]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.taglib-sharp.com/images/a/af/2.0.png" /></center></p>
<p>After over 10 months of development, TagLib# 2.0 is officially out. This release is API and ABI stable and ready for use in production systems and inclusion in Linux distributions.</p>
<p><center><a href="http://www.taglib-sharp.com/Download/">Download</a> | <a href="http://www.taglib-sharp.com/Changelog">Changelog</a> | <a href="http://www.taglib-sharp.com/Donate">Donate</a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.taglib-sharp.com/2007/06/11/announcing-20/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TagLib# 2.0 RC2 AKA &#8220;Almost&#8230;&#8221;</title>
		<link>http://blog.taglib-sharp.com/2007/06/01/taglib-20-rc2-aka-almost/</link>
		<comments>http://blog.taglib-sharp.com/2007/06/01/taglib-20-rc2-aka-almost/#comments</comments>
		<pubDate>Sat, 02 Jun 2007 00:34:25 +0000</pubDate>
		<dc:creator>Brian Nickel</dc:creator>
		
		<category><![CDATA[New Release]]></category>

		<guid isPermaLink="false">http://blog.taglib-sharp.com/2007/06/01/taglib-20-rc2-aka-almost/</guid>
		<description><![CDATA[Today marks the second release candidate for TagLib# 2.0 (1.9.99995). Some ground was lost with documentation, but it now conforms much more to Microsoft&#8217;s guidelines for libraries. I apologize for not being quicker about this and bug fixes, but I&#8217;ve been a little swamped this week with Google&#8217;s Summer of Code.
Download &#124; Changelog &#124; Donate
PS. [...]]]></description>
			<content:encoded><![CDATA[<p>Today marks the second release candidate for TagLib# 2.0 (1.9.99995). Some ground was lost with documentation, but it now conforms much more to Microsoft&#8217;s guidelines for libraries. I apologize for not being quicker about this and bug fixes, but I&#8217;ve been a little swamped this week with <a href="http://kerrick.wordpress.com/2007/06/01/fastcgi-aspnet-server-status-report-1/">Google&#8217;s Summer of Code</a>.</p>
<p><center><a href="http://www.taglib-sharp.com/Download/">Download</a> | <a href="http://www.taglib-sharp.com/Changelog">Changelog</a> | <a href="http://www.taglib-sharp.com/Donate">Donate</a></center></p>
<p>PS. I&#8217;ve included /doc output in the .NET 2.0 package. Is there a better way to package things for Windows?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.taglib-sharp.com/2007/06/01/taglib-20-rc2-aka-almost/feed/</wfw:commentRss>
		</item>
		<item>
		<title>230 files changed, more on this later</title>
		<link>http://blog.taglib-sharp.com/2007/05/30/230-files-changed-more-on-this-later/</link>
		<comments>http://blog.taglib-sharp.com/2007/05/30/230-files-changed-more-on-this-later/#comments</comments>
		<pubDate>Thu, 31 May 2007 00:04:59 +0000</pubDate>
		<dc:creator>Brian Nickel</dc:creator>
		
		<category><![CDATA[API Change]]></category>

		<guid isPermaLink="false">http://blog.taglib-sharp.com/2007/05/30/230-files-changed-more-on-this-later/</guid>
		<description><![CDATA[There are some big API changes in SVN. Big batch of conformance rules applied using FxCop, and rework of the way File.IFileAbstraction works. Expect RC2 tomorrow.
- Brian
Namespaces:            14
Visible Types:         152
   Classes:    [...]]]></description>
			<content:encoded><![CDATA[<p>There are some big API changes in SVN. Big batch of conformance rules applied using FxCop, and rework of the way File.IFileAbstraction works. Expect RC2 tomorrow.</p>
<p>- Brian</p>
<pre>Namespaces:            14
Visible Types:         152
   Classes:            89
   Abstract Classes:   9
   Static Classes:     7
   Structures:         18
   Interfaces:         5
   Enumerations:       20
   Delegates:          3
Visible Members:       1264
   Constructors:       260
   Methods:            393
   Properties:         469
   Fields:             142
&nbsp;
Lines of Code:         21198
Missing Documentation: 849</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.taglib-sharp.com/2007/05/30/230-files-changed-more-on-this-later/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
