More > JRiver Media Center 22 for Windows
Switching from Winamp or iTunes
JimH:
JRiver equivalents for iTunes functions:
http://yabb.jriver.com/interact/index.php?topic=100270.0
chromedigi:
I'm contemplating switching from iTunes to JRiver, but before I undertake this pretty massive task, I have a few things I'd like to clarify. First, let me describe my situation. I've been using iTunes for years now. I only rip CDs, and I only create .m4a files. I have ripped multiple terabytes of music files, which iTunes cannot handle in a single library, so I periodically cull from my hard drive onto a backup disk, so that I can continue. In this way, I've accumulated a number of offline libraries on external disks as well as whatever current one is on my internal drive. Now that very large capacity drives have become cheap, I'd like to finally merge these various libraries. It looks like JRiver can probably handle the load, as it seems to have been built on a relational DB, rather than the dopey structure that iTunes uses. I would like to put my media library on a high-capacity expandable NAS with RAID.
As a portable player, I use an iPod Classic 160G unit, because (a) it has the largest capacity, and .m4a files are big, and (b) my car stereo knows how to interface with it, so I can operate it directly from the stereo interface (including seeing the album cover art, which is nice).
I am a heavy user of every single one of the Sort fields in iTunes. In fact, I wish there were more of them. For example, the artist Egg is quite distinct from The Egg. Since I don't want them intermixed, I use the sort fields to distinguish them. Similarly, "Charlie Parker" and "Charly Parker" are the same person, and I use sort fields to remap them, without altering the way the credit reads on release. I sort people by surname first, and also do stuff like sorting "Joe Blow feat. Jane Doe" as "Blow, Joe featuring Doe, Jane" - my credits read as on release, but sort logically.
I am also a heavy user of the "Comments" field, which iTunes power users like myself have long used as a place to store the best approximation we have to custom database fields, using substrings of the form key="value". In some cases, these are one-to-many relations, as in the case of CD cat#s, where a CD sometimes has more than one cat#, and I have logged them all, or many-to-many as where a CD is co-branded by more than one record label, and again, I have logged this info in my iTunes DB with multiple key/value pairs, e.g. label="Blue Note" label="EMI".
I dislike the treatment of "Genre" by iTunes (and most everybody else). Genres in actual reality form a lattice, rather than a simple list, or for that matter a hierarchical tree. I'd like to (a) apply more than one genre tag, on a per-track basis, and (b) add inferencing logic (i.e. knowledge base style production rules) to genres. So Prog => Rock, Zeuhl => Prog, Progressive Metal => Prog, Metal => Rock, Death Metal => Metal, Technical Death Metal => Death Metal, Progressive Metal => Metal, Technical Death Metal => Progressive Metal would form a typical genre sublattice, for example.
So... My first questions are:
1) Does JRiver read and import all of the iTunes tags? I need them all. For audio files of radio plays, I have even appropriated some that are normally used for TV shows as a way of tagging episodes of, for example, The Shadow. I've also done this with concert recordings.
2) Is there some equivalent to imposing a sort order on one field through another (potentially empty) field?
3) Are there codecs for .m4a (MP4 audio stream)?
4) Can this program be used to sync the iPod Classic 160G?
5) When importing, does JRiver leave the files in place, or make copies of them?
6) Is it possible to write scripts of some sort to extract the key/value pairs from the "Comments" field into their own first-class DB fields?
7) Is it possible to create one-to-many, many-to-one, or many-to-many relations in the JRiver DB? How? (Do we have more than one table? Can we build a schema?)
8 ) Can I create recursively-triggered calculated fields?
blgentry:
You've got a lot of well considered questions. I'll take a crack at a few of them.
--- Quote from: chromedigi on November 16, 2015, 11:46:04 am ---1) Does JRiver read and import all of the iTunes tags? I need them all. For audio files of radio plays, I have even appropriated some that are normally used for TV shows as a way of tagging episodes of, for example, The Shadow. I've also done this with concert recordings.
--- End quote ---
I don't think so, but it should get a LOT of them. Since you're mainly using ALACs, I think you've got a better chance than if you were using MP3s. Don't let this discourage you though! You can probably get most of your important tags sent over, and perhaps fudge some of the others. The good news is, you can try this, for free, using MC's 30 day free trial. MC works 100% during the trial without any crippling of features.
--- Quote ---2) Is there some equivalent to imposing a sort order on one field through another (potentially empty) field?
--- End quote ---
Sure; that's super easy. In any view, just click on Sort By and choose your field. It doesn't even have to be a visible field.
--- Quote ---3) Are there codecs for .m4a (MP4 audio stream)?
--- End quote ---
MC plays just about any audio format. M4A as AAC and M4A as ALAC are both supported.
--- Quote ---5) When importing, does JRiver leave the files in place, or make copies of them?
--- End quote ---
MC imports "in place" and will not move or copy any files unless you explicitly tell it to. BTW, MC includes a tool called the Rename, Move, and Copy tool. It can be used to move selected files (1, 2, 3, 100, 1000, etc) to new locations based on rules you give it. So RM&C might be very useful for copying or moving your multiple separate disks full of songs to a new location.
--- Quote ---6) Is it possible to write scripts of some sort to extract the key/value pairs from the "Comments" field into their own first-class DB fields?
--- End quote ---
Scripts: Not natively. But MC does have an Expression Language, which is fairly sophisticated. I'd need to see examples to be sure, but I'm 90% sure we can handle extracting key/value pairs. It will almost certainly require several passes. At least one pass per key is my guess. I'd be willing to try to help you develop some expressions to do this work. Expressions can act on many files at once, or just a few, or just one. So it's *almost* like scripting.
--- Quote ---8 ) Can I create recursively-triggered calculated fields?
--- End quote ---
MC supports calculated fields for sure. It will reject circular references. As a test of cascaded calculated fields, I just created three fields: ONE, TWO, and THREE. TWO = 2 * ONE. THREE = 3 * TWO . I then added some values for ONE in a few files. It calculated TWO and THREE correctly. So ONE = 20 => TWO = 40, THREE = 120 . The short answer appears to be YES.
You might start a new thread or two on specific topics if you need more help with them.
Brian.
chromedigi:
--- Quote from: blgentry on November 16, 2015, 04:45:13 pm ---I don't think so, but it should get a LOT of them.
--- End quote ---
Why would it miss any? (And as a feature on this product, considering the vast number of iTunes users out there, it shouldn't miss any, ever.)
--- Quote from: blgentry on November 16, 2015, 04:45:13 pm ---MC plays just about any audio format.
--- End quote ---
That's only half the battle (the "dec" part). How about ripping them (the "co" part)?
--- Quote from: blgentry on November 16, 2015, 04:45:13 pm ---Scripts: Not natively.
--- End quote ---
It doesn't have to be native. Can I script the app using C#, for example?
--- Quote from: blgentry on November 16, 2015, 04:45:13 pm ---It will reject circular references.
--- End quote ---
Then, no, it can't do recursion. Which, given that I didn't find a conditional operator in the expression language in my first cursory perusal, isn't surprising. You've got to be able to code a termination condition, and you can't do that without a cond of some sort.
blgentry:
--- Quote from: chromedigi on November 16, 2015, 04:54:32 pm ---Why would it miss any? (And as a feature on this product, considering the vast number of iTunes users out there, it shouldn't miss any, ever.)
--- End quote ---
I don't know exactly what fields MC can and can not see in each media type. To try to help you, I just ripped a few tracks to ALAC with itunes, and set the 4 sort order fields on those tracks. Then I imported them into MC. After creating the appropriate fields, MC can see Album Sort Order and Artist Sort Order. It missed Composer sort and Album Artist Sort.
In general, you must create corresponding fields in MC's database to receive the values from the fields in the files you are importing.
--- Quote ---That's only half the battle (the "dec" part). How about ripping them (the "co" part)?
--- End quote ---
You may not realize that your tone seems to be challenging and/or demanding. Perhaps you don't mean it that way. I'm just a regular guy that likes MC and I'm trying to help you out. :)
That said, MC can rip FLAC, MP3, and I *think* ALAC. I'm not sure because I don't use that function of MC. I use third party tools to rip discs and MC imports them using auto import.
--- Quote ---It doesn't have to be native. Can I script the app using C#, for example?
--- End quote ---
MC has a C++ API for it's Core Commands. But that's separate from the Expression Language. I don't think the Core Commands API will do what you're looking to do, which is to manipulate tags.
http://wiki.jriver.com/index.php/Media_Center_Core_Commands
The expression language is probably more like what you want.
--- Quote ---Then, no, it can't do recursion. Which, given that I didn't find a conditional operator in the expression language in my first cursory perusal, isn't surprising. You've got to be able to code a termination condition, and you can't do that without a cond of some sort.
--- End quote ---
You'd have to test it to see. The Expression Language *does* have conditionals.
http://wiki.jriver.com/index.php/Expression_Language#Conditional_Functions
What you've described about your genre tree structure is kind of confusing (to me), and I'm guessing this is what you want the calculated fields for? MC is incredibly powerful and there are ways to do many, many things that people want to do with it. There may be a way to do what you're after. If you describe it, someone may be able to help you.
Brian.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version