<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2642124172103166690</id><updated>2012-02-16T16:30:28.037-08:00</updated><category term='closest'/><category term='matches'/><category term='lyrics'/><category term='characters'/><category term='special'/><title type='text'>iTSfv :: iTunes Store file validator</title><subtitle type='html'>Developer thoughts on iTunes Store file validator which is an add-in for iTunes. It is aimed for iTunes users who are keen on maintaining or having the goal of achieving iTunes Store file standard tags for all the tracks in their iTunes Music Library.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://itsfv.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2642124172103166690/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://itsfv.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michael Delpach</name><uri>https://profiles.google.com/114528574236823733483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-3gq5BIfOiU8/AAAAAAAAAAI/AAAAAAAAEbU/4iqqtIw_ao0/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2642124172103166690.post-2617141289525501020</id><published>2009-06-12T18:26:00.001-07:00</published><updated>2009-06-12T18:30:35.488-07:00</updated><title type='text'>Visual Studio 2010</title><content type='html'>&lt;p&gt;Next major version of iTSfv (version 6) will be coded from scratch in C# using Visual Studio 2010. &lt;/p&gt;  &lt;p&gt;My initial plans for iTSfv 6 are:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Complete support for Multi-disc albums when adding new music to iTunes: automatic guessing of Disc Count and Disc Number from file system&lt;/li&gt;    &lt;li&gt;Ability to add a folder of tracks at once &lt;/li&gt;    &lt;li&gt;Prevent scanning iTunes Library.xml on startup to improve load time&lt;/li&gt;    &lt;li&gt;Zero errors while iTSfv is operating &lt;/li&gt;    &lt;li&gt;Making use of editable Location property&lt;/li&gt;    &lt;li&gt;Ability to prevent storing artwork in Artwork folder&lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2642124172103166690-2617141289525501020?l=itsfv.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itsfv.blogspot.com/feeds/2617141289525501020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2642124172103166690&amp;postID=2617141289525501020' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2642124172103166690/posts/default/2617141289525501020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2642124172103166690/posts/default/2617141289525501020'/><link rel='alternate' type='text/html' href='http://itsfv.blogspot.com/2009/06/visual-studio-2010.html' title='Visual Studio 2010'/><author><name>Michael Delpach</name><uri>https://profiles.google.com/114528574236823733483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-3gq5BIfOiU8/AAAAAAAAAAI/AAAAAAAAEbU/4iqqtIw_ao0/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2642124172103166690.post-9122810089397748142</id><published>2009-04-27T00:01:00.001-07:00</published><updated>2009-04-27T00:01:46.815-07:00</updated><title type='text'>Location property is writable since iTunes 8.1.1</title><content type='html'>&lt;p&gt;I was notified about this by an iTSfv user in SourceForge. That’s great news! This means easier implementations of the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;relocating existing files &lt;/li&gt;    &lt;li&gt;setting new location for currently dead tracks&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;DateAdded property is still read-only but a desirable property to have write access. &lt;/p&gt;  &lt;h3&gt;Setting new location for dead tracks&lt;/h3&gt;  &lt;p&gt;Current implementation of most iTunes addons including iTSfv is to remove dead tracks. The following scenario can be done:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;iTSfv iterates through iTunes music library&lt;/li&gt;    &lt;li&gt;iTSfv reads dead track Location as &lt;strong&gt;Nothing&lt;/strong&gt;. It is important to note that File.Exists(track.Location) will not cause a NullPointException. It would rate give &lt;strong&gt;False&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;It is also important to implement the iTunes naming convention. This is needed for generating the file name of the track so that it can be searched in the new folder location. However, if the music files are not iTunes managed then the file names will not follow the iTunes naming conventions. &lt;/li&gt;    &lt;li&gt;If iTSfv finds a track with empty Location then &lt;/li&gt;    &lt;li&gt;iTSfv forms the file name using the track tags&lt;/li&gt;    &lt;li&gt;iTSfv appends the new folder location, sub-folder structure and file name to form the new file path. &lt;/li&gt;    &lt;li&gt;iTSfv sets the new location to track and saves the track&lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2642124172103166690-9122810089397748142?l=itsfv.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itsfv.blogspot.com/feeds/9122810089397748142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2642124172103166690&amp;postID=9122810089397748142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2642124172103166690/posts/default/9122810089397748142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2642124172103166690/posts/default/9122810089397748142'/><link rel='alternate' type='text/html' href='http://itsfv.blogspot.com/2009/04/location-property-is-writable-since.html' title='Location property is writable since iTunes 8.1.1'/><author><name>Michael Delpach</name><uri>https://profiles.google.com/114528574236823733483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-3gq5BIfOiU8/AAAAAAAAAAI/AAAAAAAAEbU/4iqqtIw_ao0/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2642124172103166690.post-5583075834886757645</id><published>2008-09-19T00:51:00.001-07:00</published><updated>2008-09-20T00:11:40.202-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lyrics'/><category scheme='http://www.blogger.com/atom/ns#' term='characters'/><category scheme='http://www.blogger.com/atom/ns#' term='closest'/><category scheme='http://www.blogger.com/atom/ns#' term='matches'/><category scheme='http://www.blogger.com/atom/ns#' term='special'/><title type='text'>Supporting closest matches when looking up lyrics</title><content type='html'>&lt;span xmlns="xmlns"&gt;   &lt;p&gt;LyricWiki stores all the artist and song information using the plain English alphabet it seems. So when I have the proper tag: Željko Joksimović as the artist in my songs, I have no luck: &lt;a href="http://lyricwiki.org/Zeljko_Joksimovic"&gt;http://lyricwiki.org/Zeljko_Joksimovic&lt;/a&gt;. Functionality should be added so that further entries to closest matches are possible using a text file, similar to the current replace-words.txt etc. I am thinking of the following format:       &lt;br /&gt;&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;z,,,, ź,,,, ž,,,,ż        &lt;br /&gt;&lt;/p&gt;      &lt;p&gt;c,,,, ć        &lt;br /&gt;&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;This means when there are no matches for a word with Ž then it will replace all instances of Ž with Z. The same would happen if the word had Ź. The replace should happen for both cases: simple and capital. User can just input one entry.      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;So when iTSfv comes across Željko Joksimović – Lane Moje song:      &lt;br /&gt;&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;It looks up &lt;strong&gt;Željko Joksimović&lt;/strong&gt; and Lane Moje.         &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;When there are no results, iTSfv loads the closest-matches.txt file        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;The text file is split by line        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Each line is split by ,,,,        &lt;br /&gt;&lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;Each line is a ClosestMatch object, a structure or a class. For example, ClosestMatch.Letter is z. ClosestMatch.Aliases is a new list of strings: ź, ž, ż      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;For each closest match object, replace of letters would happen twice: for simple and capital.      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;Replacing simple letters:      &lt;br /&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Replace ź with z        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Replace ž with z        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Replace ż with z        &lt;br /&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Replacing capital letters:      &lt;br /&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Replace Ź with Z        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Replace Ž with Z        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Replace Ż with Z        &lt;br /&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Optimization is possible by checking if the letter ź exists first, before starting to replace.      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;Željko Joksimović is ultimately replaced by &lt;strong&gt;Zeljko Joksimovic&lt;/strong&gt; and lyrics are found. &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Edit 1:&lt;/p&gt;    &lt;p&gt;Following picture shows the possible matches determined by iTSfv for &lt;strong&gt;Zeljko Joksimovic&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/mcored/SNN0QsadewI/AAAAAAAAAIs/92V6QymyFdo/s1600-h/iTSfv%20Closest%20Matches%5B1%5D.jpg"&gt;&lt;img title="iTSfv Closest Matches" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="106" alt="iTSfv Closest Matches" src="http://lh5.ggpht.com/mcored/SNNwHSpIqpI/AAAAAAAAAIw/CNISfchVLBc/iTSfv%20Closest%20Matches_thumb%5B1%5D.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Edit 2: &lt;/p&gt;    &lt;p&gt;This does not quite work well for songs such as &lt;strong&gt;Ángel De La Muerte&lt;/strong&gt;. In LyricWiki the song is as Ángel De La Muerte. Suppose I have the song as Angel De La Muerte&lt;strong&gt;. &lt;/strong&gt;Then the above closest match method changes all the &lt;strong&gt;A&lt;/strong&gt; letters to &lt;strong&gt;Á&lt;/strong&gt;. The artist name changes from Avalanch to &lt;strong&gt;Á&lt;/strong&gt;valanch. Replacement could be done at character level but then it adds tremendous load on LyricWiki servers. &lt;/p&gt;    &lt;p&gt;It is yet not clear what’s the best way to handle this issue. &lt;/p&gt; &lt;/span&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2642124172103166690-5583075834886757645?l=itsfv.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itsfv.blogspot.com/feeds/5583075834886757645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2642124172103166690&amp;postID=5583075834886757645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2642124172103166690/posts/default/5583075834886757645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2642124172103166690/posts/default/5583075834886757645'/><link rel='alternate' type='text/html' href='http://itsfv.blogspot.com/2008/09/supporting-closest-matches-when-looking.html' title='Supporting closest matches when looking up lyrics'/><author><name>Michael Delpach</name><uri>https://profiles.google.com/114528574236823733483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-3gq5BIfOiU8/AAAAAAAAAAI/AAAAAAAAEbU/4iqqtIw_ao0/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/mcored/SNNwHSpIqpI/AAAAAAAAAIw/CNISfchVLBc/s72-c/iTSfv%20Closest%20Matches_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
