Printable Version of Topic

-Brading Software Message Board
+--Forum: Mp3/Tag Studio Suggestions
+---Topic: Logic functions? if/then, do, while, break started by Icester


Posted by: Icester on Dec. 28 2005,22:16

This would be a quite useful and advanced feature - program control!  Basically a programming language for mp3-tag studio using basic program control such as if/then, do, while, and break statements with some text and id3 tag testing.  Also some tests like "hasa", "upto", "after", and "between" would be most useful (ie. to get text in a string up to the first comma would be "upto(string, ",")"  to check to see if it contains a comma would be hasa(string,",") ).  These test would also hopefully help avoid some of the tedium of programming as well as excessive counters and variables.

It would probably have to go in a text dialog box as it could be several lines long (at least) for really advanced manipulation.

I know it seems like a lot of work for some "simple" renaming or tagging, but it would really be useful for restructuring your existing collection!

Here is a contrived example. Supposed your collection is already tagged with year, album, artist, track, but maybe only v1 or only v2 - you aren't sure which.  

Supposed you have:
\Genre\ArtistLast, First\Album\track - Title.mp3

and you wanted:
\First ArtistLast\(Year) Album\track - Title.mp3

Some default parameters for the files are:
2dirUp = ...   (so value of 2dirUp = "Genre" )
1dirUp = ..   (so value of 1dirUp = "ArtistLast, First" )
curDir = .   (so value is "Album" )
Assume that tags use the same <Artist> or <Title> convention as already established.

Here is an example script/program (using those tests mentioned earlier):
/* parse genre */
if Genre != "" then <Genre> = 2dirUp;
  else <Genre> = "Blues";
end

/* check for year in directory name */
if char("1dirUp", 1) == "(" then    /*check first char for (
 Year = between("1dirUp", "(", ")" );
end
if len(Year) <= 4 then
  <Year> = Year;
end

/* parse Artist */
if hasa("1dirUp", ",") then
  LastName = upto("1dirUp", ",");
  FirstName = after("1dirUp", ",");
end
<Artist> = (FirstName, LastName);

etc.
etc.
Posted by: Magnus Brading on Dec. 28 2005,22:42

Icester, just like your last suggestion for an advanced feature, the main idea is very good, and I have indeed thought it myself many times, but just like my last conclusion, it would be far too complex for the great majority of users to use, or ever understand at all, and hence sadly not worth it to implement (or even worse, possibly having a negative effect, scaring people away). I still enjoy hearing about your ideas though. :)
Posted by: Icester on Dec. 29 2005,19:23

Actually, I just ran across something very interesting.  Have you heard of ReNamer (by den4b)?  http://www.redbrick.dcu.ie/~den4b/

It is a VERY powerful file renaming tool.  It also has one of the easiest to use and most functional interfaces that I've ever seen. (applicable to mp3-tag studio?)  I love the window showing the different tools - it allows you to enable/disable each function using a checkbox and also re-order the way functions are executed.  ReNamer also incorporates some of the text checking mentioned in my 1st post in this thread.

Anyways, to get to the point.  RegExp Studio < http://regexpstudio.com/TRegExpr/TRegExpr.html >  is an "Easy to use and powerfull tool for sophisticated search and substitutioning and for template-based text input check."  It includes full source code as well as libraries!  This might be an easy way to greatly enhance the power of mp3-tag studio. (easy compared to doing it yourself).  Plus it uses "common" programming language based on Perl.

I know this might be too advanced for many users, but you could "hide" it under a tab or under an advanced settings mode.  Also, to my knowledge, no one has a tag tool that includes programming/templates.
Posted by: Magnus Brading on Dec. 29 2005,21:53

Yes, and as it just happens again, I'm aware of the power of regular expressions, I have actually already implemented regexp code that's better than TRegExpr in other programs of mine. :)

It's just that development time, as always, is far from unlimited, so I cannot prioritize a feature that 0,01% of people don't have any chance of using at all, even though it would indeed be very cool and pose no theoretical problem to implement. :) The ubiquitous dilemma for technologists... :(
end


Powered by Ikonboard 3.1.1
Ikonboard © 2001 Jarvis Entertainment Group, Inc.