Help - Search - Members - Calendar
Full Version: foo_pod - Foobar2000 meets the iPod
Hydrogenaudio Forums > Hosted Forums > foobar2000 > 3rd Party Plugins - (fb2k)
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42
rmoody
Is there some way for me to start over with this thing? I have multiple duplicate and triplicate entries in the ipod playlist. WTF?!? How do I fix this? I tried to rebuild the database, didn't work. iTunes doesn't show all this messed up crap. What did I do? Help
Aero
QUOTE (rmoody @ Jun 14 2004, 11:59 PM)
Is there some way for me to start over with this thing?  I have multiple duplicate and triplicate entries in the ipod playlist.  WTF?!?  How do I fix this?  I tried to rebuild the database, didn't work.  iTunes doesn't show all this messed up crap.  What did I do? Help

Delete All iPod Music And Playlists will wipe your iPod clean, if that is what you mean by starting over.
Ralluph
Since foo_pod serves all my iPod-related needs (thanks a lot Aero, you did a brilliant job!) I decided to remove iTunes from my system. After uninstalling and rebooting I now get the following message every time foobar starts:
CODE
WARNING (foo_pod) : iPodService is not available

All foo_pod functionality is working great, with the exception of the iPod Service tab in the prefs, where all fields are grayed out.
Looking in my process list there is no service running which one could recognize as iPod service. The iPod updater is still on my system. A couple of posts above, somebody suggested the possibility of registering some executable as a service. Could somebody explain how I can do that, please?
Aero
QUOTE (Ralluph @ Jun 16 2004, 04:18 AM)
Since foo_pod serves all my iPod-related needs (thanks a lot Aero, you did a brilliant job!) I decided to remove iTunes from my system. After uninstalling and rebooting I now  get  the following message every time foobar starts:
CODE
WARNING (foo_pod) : iPodService is not available

All foo_pod functionality is working great, with the exception of the iPod Service tab in the prefs, where all fields are grayed out.
Looking in my process list there is no service running which one could recognize as iPod service. The iPod updater is still on my system. A couple of posts above, somebody suggested the possibility of registering some executable as a service. Could somebody explain how I can do that, please?

Thanks!

That warning is another unnecessary message, and I have downgraded it to an INFO message (which will not cause the console to pop up). It is fixed in the next build.

Speaking of the next build, I'm probably going to post it later today. I have been trying to get iTunes to play nice with foo_pod, by adding files copied by foo_pod to iTunes' library. Unfortunately, it hasn't worked out very well (even though the songs were in the iTunes library, iTunes still deleted 35GB of my music... sad.gif ). So I'm going to keep working on it, but I'm not going to let it hold up the next release. Another feature that I wanted to get in the next verison, but won't, is support for transferring and transcoding music in CUE sheets. I'm pretty sure that it can be made to work, and I already have made some progress, but there is still more work to do.

On the positive side, the next version will fix all of these annoying console warnings, and adds support for AIFF files, as well as an option to transcode WAV/AIFF files, and a handful of minor bug fixes.
Aero
Version 0.8.2 is now available.

This version fixes some minor bugs as well as hopefully removing all of the unnecessarily annoying Foobar console messages.


From the Readme:
CODE
Version 0.8.2 - June 16, 2004
*  Removed and/or improved several of the more annoying (and unnecessary) console messages.

*  Fixed a bug where the BPM metadata wasn't being set correctly.

*  Removed the white border visible in the Preference tabs, when using the XP Luna theme.

*  Added support for AIFF files, and added a checkbox in the Transcoder preference to automatically
  transcode all WAV & AIFF files.

*  Fixed a bug where, when transferring read-only files to the iPod, the song files on the iPod would also
  be read-only.  This would prevent them from being deleted later by the user, even though the entry in the
  iPod database would be removed.
eido
I found a small problem with foo_pod. If I add an album each by the bands "+/-" and "!!!", both albums end up listed under "!!!".
Also, while I'm posting let me add my thanks for this fantastic plugin.
Aero
QUOTE (eido @ Jun 16 2004, 07:55 PM)
I found a small problem with foo_pod.  If I add an album each by the bands "+/-" and "!!!", both albums end up listed under "!!!".
Also, while I'm posting let me add my thanks for this fantastic plugin.

Heh. Are those real band names, or are you just trying to torture test foo_pod? smile.gif

Without looking into it yet, I would bet that it is an iPod problem since I can't think of anything special foo_pod is doing that would causing problems. Have you ever been able to get them to work with iTunes?

One possible workaround is to use the Alternate Metadata Prefix feature (found on the Main tab in foo_pod Preferences). What you can do is set it to "POD_", then add a "POD_ARTIST" metadata tag to your +/- and !!! songs. For example, you could set the POD_ARTIST for +/- to "PlusMinus" and !!! to "ThreeBangs". Then when foo_pod sends those songs, it will use the POD_ARTIST metadata and the songs will show up on the iPod under the PlusMinus and ThreeBangs artists.
eido
QUOTE (Aero @ Jun 16 2004, 10:56 PM)
QUOTE (eido @ Jun 16 2004, 07:55 PM)
I found a small problem with foo_pod.  If I add an album each by the bands "+/-" and "!!!", both albums end up listed under "!!!".
Also, while I'm posting let me add my thanks for this fantastic plugin.

Heh. Are those real band names, or are you just trying to torture test foo_pod? smile.gif

Without looking into it yet, I would bet that it is an iPod problem since I can't think of anything special foo_pod is doing that would causing problems. Have you ever been able to get them to work with iTunes?

One possible workaround is to use the Alternate Metadata Prefix feature (found on the Main tab in foo_pod Preferences). What you can do is set it to "POD_", then add a "POD_ARTIST" metadata tag to your +/- and !!! songs. For example, you could set the POD_ARTIST for +/- to "PlusMinus" and !!! to "ThreeBangs". Then when foo_pod sends those songs, it will use the POD_ARTIST metadata and the songs will show up on the iPod under the PlusMinus and ThreeBangs artists.

Yep, they're real band names. tongue.gif
And you were right about iTunes. It does indeed do the same thing, so I used your POD_ prefix suggestion and everything is working fine now.
rexy
So is the conclusion that the iPod can't properly compare non-alphanumeric symbols? That is, when trying to compare two items, both containing the same amount of non-alphanumeric symbols but of different compositions, the iPod will conclude that they are the same?
Otto42
QUOTE (eido @ Jun 17 2004, 02:19 PM)
Yep, they're real band names. tongue.gif
And you were right about iTunes.  It does indeed do the same thing, so I used your POD_ prefix suggestion and everything is working fine now.

If you could get it to happen again and then save the iTunesDB file somewhere, that could be useful to figure out what's going on.
eido
QUOTE (Otto42 @ Jun 17 2004, 08:51 PM)
If you could get it to happen again and then save the iTunesDB file somewhere, that could be useful to figure out what's going on.

I sent you a PM with a link to my iTunesDB.

Just to see what happens when there are a different number of characters in the artists' names, I tried changing +/- to +/-! on the iPod. After that, there were separate entries for "!!!" and "+/-!", but each band had both band's albums listed under their names.
zeer
a quick note to all:

while iPod's filesystem support every aspect of win32 FAT32 filesystem, including national alphabets, the iPod firmware (=player's firmware, not HDD's) does NOT. the only valid symbols in filenames for player usage is 0-9 A..Z a..z

just in case someone didn't know...
SNAG
QUOTE (zeer @ Jun 18 2004, 01:36 AM)
a quick note to all:

while iPod's filesystem support every aspect of win32 FAT32 filesystem, including national alphabets, the iPod firmware (=player's firmware, not HDD's) does NOT. the only valid symbols in filenames for player usage is 0-9 A..Z a..z

just in case someone didn't know...

That's true all right.
All my Unicode-d files get renamed when I send it over to my iPod...
rexy
Well I can see umlauts, accents, and such on my iPod, but if what you say is accurate then I bet that if I had one album with the same artist as another only I changed an O with an umlaut to a regular O it would still be under the same artist... or would that only happen if I changed the O with the umlout to another symbol that isn't 0-9, a-z, or A-Z?
Aero
QUOTE (zeer @ Jun 18 2004, 03:36 AM)
while iPod's filesystem support every aspect of win32 FAT32 filesystem, including national alphabets, the iPod firmware (=player's firmware, not HDD's) does NOT. the only valid symbols in filenames for player usage is 0-9 A..Z a..z

There actually two separate issues here.

One is the filename support - foo_pod and iTunes escape the filename so that it is legal. Otherwise, filenames with umlats and other non-English characters would not play at all on the iPod. And legal filenames are a little more than just 0-9, A-Z, and a-z. At least the following symbols also are acceptable: dash, underscore, space, period, ampersand, single quote, left & right parenthesis, and comma.

The other issue is the display and sorting of metadata (song titles, artists, etc.). The iPod supports a larger set of characters for the metadata display, but it doesn't support all characters (for example, Hebrew glyphs) and doesn't seem to correctly sort metadata with symbols. One workaround for this problem is to use the Alternate Metadata foo_pod feature, so you can use a separate set of metadata for the iPod only.
rexy
Hmmm... I was over at neowin and noticed a news post about a new version of ml iPod (which, I now know, is a winamp plugin for iPod uses) and it seems it now supports Smart Playlists. May be worthwhile to contact the developers and ask if they would reveal the secrets of Smart Playlists beyond iTunes. I wouldn't mind emailing them myself, but I thought maybe it'd be better if you, the developer of foo_pod himself, would contact them, eh?
Aero
QUOTE (rexy @ Jun 19 2004, 12:31 AM)
Hmmm... I was over at neowin and noticed a news post about a new version of ml iPod (which, I now know, is a winamp plugin for iPod uses) and it seems it now supports Smart Playlists. May be worthwhile to contact the developers and ask if they would reveal the secrets of Smart Playlists beyond iTunes. I wouldn't mind emailing them myself, but I thought maybe it'd be better if you, the developer of foo_pod himself, would contact them, eh?

Funny that you should mention smart playlists. I have been working on them tonight, and I was just going to post an update...

I had some free time tonight, so I decided to look into smart playlist support. I started by looking for other projects that have implemented them, since the iPodDB implementation is incomplete. I was excited to see that ml_ipod claimed to support smart playlists, but after looking at their code for a few minutes, it was clear that whatever they have is definitely not Smart Playlists. Real Smart Playlists, as created by iTunes (and soon to be created by foo_pod... smile.gif ) are a set of rules that 3G iPods use to dynamically create playlists. I think that ml_ipod's "smart playlists" are just a Winamp-side playlist generator, similar to the one that is included with Foobar and extended by the Extended Playlist Generator component.

So without any good code to steal, I had to put my nose to the grindstone (keeps the boogers sharp...) and finish the iPodDB implementation myself. It only took a couple of hours of testing and looking at the raw database code before I was able to have a complete implementation that reads and understands all combinations of iTunes created smart playlists. Most of that is due to Otto42's initial work, which made my part very easy (just time consuming).

I haven't started on the writing of smart playlists, but I don't expect it will be very difficult. Then I will just need to create a GUI (probably the hardest part), and we can all dump iTunes once and for all! wink.gif
ronyzyz1
Yay helicopter!
SNAG
w00t!!
Will that mean that foo_pod will be able to manage (ie, edit, add files) existing playlists on the iPod as well?

Can't wait for the new release to be out!
rexy
Err... SNAG, I don't really see what that ability has to do with Smart Playlists (though it may just be me not seeing that relation), but regardless, now that Smart Playlists are coming up and I'll be using playlists at all (had no need for the regular ones), I would also think that it would be nice to be able to remove a specific playlist rather than remove all the playlists and then put all of them back except for the ones you wanted to delete. I think the best way to make this work would be to simply have a small dialog with a scrolling list control with all the playlist and with the buttons "remove," and "done."

Aero, how did you get ml ipod's code? I noticed that it was on Source Forge and so assumed it was open source but couldn't find the source code for download. It's too bad they were only able to make Smart Playlists a la 2nd Gen. Again, the best, and easiest, thing you can do for the GUI is prolly just have another dialog with a scrolling list control, to whose side would be two buttons labled "add" (opens up a dialog box with configuration for the condition), "remove," and "modify" (or maybe double clicking will do that) and under it would be all the options that don't go in conditions like order and such and under that a "save" button and a "cancel" button. And all that shouldn't be too hard... I think. Is that pretty much what you envision too?
Aero
QUOTE (rexy @ Jun 19 2004, 10:37 AM)
Err... SNAG, I don't really see what that ability has to do with Smart Playlists (though it may just be me not seeing that relation), but regardless, now that Smart Playlists are coming up and I'll be using playlists at all (had no need for the regular ones), I would also think that it would be nice to be able to remove a specific playlist rather than remove all the playlists and then put all of them back except for the ones you wanted to delete. I think the best way to make this work would be to simply have a small dialog with a scrolling list control with all the playlist and with the buttons "remove," and "done."

Yeah, what rexy said regarding smart playlists vs. regular playlists.

I really do need to add some sort of playlist management to foo_pod, but that would require more GUI programming, which isn't my favorite activity. So I keep pushing it off... BTW, there is enough in the Pod interface now that someone else could write a component that manages playlists.

QUOTE
Aero, how did you get ml ipod's code? I noticed that it was on Source Forge and so assumed it was open source but couldn't find the source code for download. It's too bad they were only able to make Smart Playlists a la 2nd Gen. Again, the best, and easiest, thing you can do for the GUI is prolly just have another dialog with a scrolling list control, to whose side would be two buttons labled "add" (opens up a dialog box with configuration for the condition), "remove," and "modify" (or maybe double clicking will do that) and under it would be all the options that don't go in conditions like order and such and under that a "save" button and a "cancel" button. And all that shouldn't be too hard... I think. Is that pretty much what you envision too?

ml_ipod's source code is available via CVS at sourceforge.net, and is also browsable here. I don't want to offend the ml_ipod developers off again..., but compared to Otto's iPodDB, there isn't much to learn from ml_ipod. It is mainly seems to be a port of gtkpod, which itself is a C++ version of GnuPod. So there are basically 2 open source iPod libraries available, and without a doubt, iPodDB is the best and most complete library. ml_ipod and the like just have better marketing! smile.gif

Again, the GUI isn't going to be terribly difficult, but there are some challenges. For example, it has to be completely dynamic, as you can enter/delete as many rules as you want. Also, some rules require strings, some rules require ints, and some rules require dates, so those controls all need to be dynamically handled. Then you can have ranges of values, so you have to deal with that as well. Finally, you have to be able to build the whole GUI from raw data.
rexy
QUOTE (Aero @ Jun 19 2004, 12:48 PM)
Finally, you have to be able to build the whole GUI from raw data.

What do you mean? Can't you simply make a class that extends (or rather inherits from as we're talking C++ and not Java) the MFC dialog class?
Aero
QUOTE (rexy @ Jun 19 2004, 03:19 PM)
What do you mean? Can't you simply make a class that extends (or rather inherits from as we're talking C++ and not Java) the MFC dialog class?

What I meant is that I will need to build up the GUI controls based on the smart playlist settings. So if you have 3 rules, when you open the smart playlist configuration dialog, there will need to be code that parses those 3 rules, and sets up the GUI accordingly.
Otto42
QUOTE (Aero @ Jun 19 2004, 01:50 AM)
I haven't started on the writing of smart playlists, but I don't expect it will be very difficult.  Then I will just need to create a GUI (probably the hardest part), and we can all dump iTunes once and for all!  wink.gif

I'm looking at the code Aero modified (read: seriously repaired, as I know how much the smart playlist read code sucked previously), and it looks pleasant. He also did all the annoying time consuming work of figuring out all the constants, which is hella nice. Figuring those out was basically why I've been so unenthusiastic about getting down and working on the SPL's. Truly a pain in the ass... one that now I don't have to do! biggrin.gif

Anyway, Aero sent me the changes and I'm going to see if I can get write support for them up and running tonight or tommorrow night. So bug Aero about creating a GUI, because that I really can't help with. Division of labor, it's a good thing. wink.gif
Aero
QUOTE (Otto42 @ Jun 19 2004, 09:09 PM)
Anyway, Aero sent me the changes and I'm going to see if I can get write support for them up and running tonight or tommorrow night. So bug Aero about creating a GUI, because that I really can't help with. Division of labor, it's a good thing. wink.gif

I already emailed Otto, but I was able to get some preliminary write support implemented this afternoon. I haven't tested it on the iPod yet, but it is at least good enough to read in an iTunes created smart playlist, parse it, write it back to the iTunesDB, and successfully read it again.
Otto42
QUOTE (Aero @ Jun 19 2004, 07:29 PM)
I already emailed Otto, but I was able to get some preliminary write support implemented this afternoon.  I haven't tested it on the iPod yet, but it is at least good enough to read in an iTunes created smart playlist, parse it, write it back to the iTunesDB, and successfully read it again.

Don't be too sure on that... The read code was seriously borked. It wasn't your fault, it was my original misunderstanding of what the fields were. All those places I read the "from" and "to" and such was totally hosed, and since you based it on my pointers... It would read fine, and if you wrote it you'd get the same thing out, but the fields didn't actually make sense for what it was really doing. You wouldn't be able to modify it and get it to actually work on an iPod. The iPod would gag on it and hose the database.

Turns out that the SPL's are more complex than the code in any other iPod library source code that I can find thinks they are. Anyway, I've actually sorted it out now, and it's much, much nicer. I'll add some write code tonight and send it along sometime tommorrow.
Aero
QUOTE (Otto42 @ Jun 20 2004, 12:18 AM)
QUOTE (Aero @ Jun 19 2004, 07:29 PM)
I already emailed Otto, but I was able to get some preliminary write support implemented this afternoon.  I haven't tested it on the iPod yet, but it is at least good enough to read in an iTunes created smart playlist, parse it, write it back to the iTunesDB, and successfully read it again.

Don't be too sure on that... The read code was seriously borked. It wasn't your fault, it was my original misunderstanding of what the fields were. All those places I read the "from" and "to" and such was totally hosed, and since you based it on my pointers... It would read fine, and if you wrote it you'd get the same thing out, but the fields didn't actually make sense for what it was really doing. You wouldn't be able to modify it and get it to actually work on an iPod. The iPod would gag on it and hose the database.

Well, yeah...but I fixed it all so now it is unhosed! smile.gif

I was just able to do a complete test of Smart Playlist writing - I was able to read a 27 rules smart playlist (created by iTunes), which tested every available option. I was then able to write it out to a new database file, and it was correctly read by iTunes.

So basically all that is left is to start (and finish) the GUI.
SNAG
It's basically great to see this project moving at such a fast pace...

Pardon me for asking something really dumb here, but I'm trying to read the metadata (RATING, IPOD_PLAY_COUNT) in foobar.

I can't seem to make the metadata display in foo_tunes.
I'm not sure whether my understanding of how metadata is displayed, but here goes:

CODE
[$num(%IPOD_PLAY_COUNT%,2)]
[$num(%RATING%,5)]


Am I correct? (I've got a hunch that I'm wrong here...)
Otto42
removed because i should have read his emails first. wink.gif
Aero
QUOTE (SNAG @ Jun 20 2004, 02:16 AM)
Pardon me for asking something really dumb here, but I'm trying to read the metadata (RATING, IPOD_PLAY_COUNT) in foobar.

I can't seem to make the metadata display in foo_tunes.
I'm not sure whether my understanding of how metadata is displayed, but here goes:

CODE
[$num(%IPOD_PLAY_COUNT%,2)]
[$num(%RATING%,5)]


Am I correct? (I've got a hunch that I'm wrong here...)

Those both work for me...

The problem might be how foo_pod handles the metadata. Rather than writing it to the file, it provides it to Foobar as a "hint". As long as Foobar doesn't reload the metadata from the file, everything is fine. But since it isn't saved with the file, if you do forcibly reload the metadata, you'll lose RATING, IPOD_PLAY_COUNT, and and IPOD_LAST_PLAYED_TIME (at least until you reload the iPod playlist).
SNAG
QUOTE (Aero @ Jun 20 2004, 01:32 AM)
QUOTE (SNAG @ Jun 20 2004, 02:16 AM)
Pardon me for asking something really dumb here, but I'm trying to read the metadata (RATING, IPOD_PLAY_COUNT) in foobar.

I can't seem to make the metadata display in foo_tunes.
I'm not sure whether my understanding of how metadata is displayed, but here goes:

CODE
[$num(%IPOD_PLAY_COUNT%,2)]
[$num(%RATING%,5)]


Am I correct? (I've got a hunch that I'm wrong here...)

Those both work for me...

The problem might be how foo_pod handles the metadata. Rather than writing it to the file, it provides it to Foobar as a "hint". As long as Foobar doesn't reload the metadata from the file, everything is fine. But since it isn't saved with the file, if you do forcibly reload the metadata, you'll lose RATING, IPOD_PLAY_COUNT, and and IPOD_LAST_PLAYED_TIME (at least until you reload the iPod playlist).

I'm not sure why, but it still doesn't show the metadata.

Actually, I'm not sure whether foobar did reload the metadata from the music files (can any kind soul provide me information as to how can I know about this?)

I've tried to delete the foo_pod playlist, and allow it to regenerate, but to no avail.
I think I'm really a n00b in this... unsure.gif
Aero
QUOTE (SNAG @ Jun 20 2004, 04:18 AM)
Actually, I'm not sure whether foobar did reload the metadata from the music files (can any kind soul provide me information as to how can I know about this?

Do you have the Foobar database enabled? (it is in the Foobar preferences, then click on the Database item, and see if Database Enabled is checked).
SNAG
QUOTE (Aero @ Jun 21 2004, 12:50 PM)
QUOTE (SNAG @ Jun 20 2004, 04:18 AM)
Actually, I'm not sure whether foobar did reload the metadata from the music files (can any kind soul provide me information as to how can I know about this?

Do you have the Foobar database enabled? (it is in the Foobar preferences, then click on the Database item, and see if Database Enabled is checked).

whoops. Knew that it was me and not foo_pod. tongue.gif
Aero
QUOTE (SNAG @ Jun 22 2004, 08:58 AM)
QUOTE (Aero @ Jun 21 2004, 12:50 PM)
Do you have the Foobar database enabled? (it is in the Foobar preferences, then click on the Database item, and see if Database Enabled is checked).

whoops. Knew that it was me and not foo_pod. tongue.gif

That isn't your problem - it means that I need to fix foo_pod! I'll look into it for the next release.

Smart Playlist Update: Otto and I have been going back and forth on the smart playlist code, and we are pretty close to a final solution. I'm already regularly writing working smart playlists, so I am about ready to start on the GUI.
Lew_Zealand
Aero,

Let's call this a "pre-documentation" question. How can I remove a specific playlist, without removing all playlists and re-sending all of my music to my iPod? Let's assume I'm not using the "sync" functionality right now.

I see how I can remove the files from the iPod (through the "iPod (foo_pod)" playlist), but that still leaves a blank playlist. Am I missing something?
Aero
QUOTE (Lew_Zealand @ Jun 22 2004, 09:10 PM)
Let's call this a "pre-documentation" question.  How can I remove a specific playlist, without removing all playlists and re-sending all of my music to my iPod?  Let's assume I'm not using the "sync" functionality right now.

I see how I can remove the files from the iPod (through the "iPod (foo_pod)" playlist), but that still leaves a blank playlist.  Am I missing something?

You can't delete or edit playlist, at least right now.

I'm working on the Smart Playlist GUI, and I'm thinking about extending it to handle regular playlists as well, so you might be able to delete individual playlists and remove files from existing playlists. So stay tuned...
Espique
hi,

where can I get the latest version of this plugin?

thanks,
sascha
Aero
QUOTE (Espique @ Jun 23 2004, 08:07 AM)
where can I get the latest version of this plugin?

The latest version is always at http://www.loodi.com/foo_pod.zip.
Mike Giacomelli
Amazing work Aero. Your dedication to this plugin is remakable.
rmoody
Can someone tell me if I am using foo_pod correctly? I don't think the soundcheck/replaygain is working. I usually encode my stuff with foobar using nero and then put the replaygain stuff in the files with foobar. Then I load the files onto my iPod with foo_pod. But I have a lot of albums that are just way different in volume. I have the Replay Gain / Sound Check Conversion set to Prefer Album Gain. Is there a step that I am missing? Am I just crazy? Thanks, I really like foo_pod a lot.
Otto42
QUOTE (rmoody @ Jun 24 2004, 07:53 PM)
Can someone tell me if I am using foo_pod correctly?  I don't think the soundcheck/replaygain is working.  I usually encode my stuff with foobar using nero and then put the replaygain stuff in the files with foobar.  Then I load the files onto my iPod with foo_pod.  But I have a lot of albums that are just way different in volume.  I have the Replay Gain / Sound Check Conversion set to Prefer Album Gain.  Is there a step that I am missing?  Am I just crazy?  Thanks, I really like foo_pod a lot.

Make sure you enable SoundCheck on the iPod itself, in the settings menu. Because foo_pod uses the actual soundcheck field, unlike any other iPod interface that I know of (with the obvious exception of iTunes), the sound check on the iPod actually works properly when using it with foo_pod. So if you have SoundCheck turned off on the iPod, it doesn't use the ReplayGain values that foo_pod is putting in there.
rmoody
Thanks Otto. I did check that. I discovered that due to my not knowing what I was diong, that I couldn't tell that it was working because I had my stereo connected via the docks line out. But, it's the louder albums that don't seem to be getting any sort of gain reduction. The quiet albums get more quiet, but the louder ones just stay the same. The ones I have noticed this on have a RG value of 10 or greater. Do you think that the higher RG value has something to do with this?

I had all this figured out when I was using MP3's, I just used mp3gain and was rollin'. I sure miss being able to use mp3gain. I really wish there were some sort of m4again, that would really rock. Thanks for your help!
Aero
QUOTE (rmoody @ Jun 24 2004, 10:33 PM)
Thanks Otto.  I did check that.  I discovered that due to my not knowing what I was diong, that I couldn't tell that it was working because I had my stereo connected via the docks line out.  But, it's the louder albums that don't seem to be getting any sort of gain reduction.  The quiet albums get more quiet, but the louder ones just stay the same.  The ones I have noticed this on have a RG value of 10 or greater.  Do you think that the higher RG value has something to do with this?

From my experience, SoundCheck is not available with line out - only with the headphone jack.

For example, I have one of these in my car, and SoundCheck definitely does not work on its line out (which I assume is the only one available on the docking connector). Try using the headphone connector and see if that helps.

Edit: The SoundCheck vs. Line Out situation is discussed here. In a way, it makes sense, since I'm sure Apple implemented SoundCheck by simply changing the amplifier gain as needed, so when you use line out , you also miss out on the SoundCheck correction. Still, they should have scaled the digital audio (like Foobar does) rather than apparently just messing around with the volume. Ah, the iPod - so much is right, but there is just enough wrong to piss me off... wink.gif


As for the ReplayGain value, 10 (and I assume you really mean -10dB) is a very loud song. I believe ReplayGain is based off of 89dB, so what -10 means is that ReplayGain had to attenuate the audio by 10dB to get it to an apparent volume of 89dB. OTOH, if the value really is 10, then you have a very fairly quiet song (79dB). But whatever the RG value is, it doesn't affect whether or not SoundCheck works - I've personally tested everything from -20dB to +20dB.


QUOTE
I had all this figured out when I was using MP3's, I just used mp3gain and was rollin'.  I sure miss being able to use mp3gain.  I really wish there were some sort of m4again, that would really rock.  Thanks for your help!

The problem with mp3gain is that is actually changes the file, although the changes are reversible without having to reencode the file. The beauty of ReplayGain is that it doesn't change the file, other than writing out harmless metadata, and it works on various file formats (including MP4/AAC). But the downside is you have to use a player that understands ReplayGain.

foo_pod has the ReplayGain -> SoundCheck conversion built-in, so any files you transfer to the iPod which have ReplayGain information, foo_pod will write out the correct SoundCheck value. This also applies to transcoded songs, so you can use Foobar to calculate the ReplayGain for Monkey Audio or FLAC (for example), and foo_pod can transcode to MP3 or AAC format and still have the ReplayGain applied on the iPod.
Aero
QUOTE (Mike Giacomelli @ Jun 23 2004, 04:09 PM)
Amazing work Aero.  Your dedication to this plugin is remakable.

Thanks! smile.gif Other than the challenge, and of course, the legions of fabulous female foo_pod groupies, I'm also doing for the thanks on the forum!
Otto42
Ugh. Ideally, they should have hooked the soundcheck variable to the preamp stage (which I actually thought they did, but now I'll have to go try it myself and see), and then hook the volume control and the volume adjustment variable to the amp gain.
Espique
wow. that really sucks that SoundCheck does not work through line-out. what a bummer.

anyways. is there some sort of FAQ or documentation available for foo_pod? I have some questions regarding the basic operation and what foo_pod actually does when syncing. any pointers?

thanks,
sascha
SNAG
QUOTE (Aero @ Jun 24 2004, 09:18 PM)
QUOTE (rmoody @ Jun 24 2004, 10:33 PM)
Thanks Otto.  I did check that.  I discovered that due to my not knowing what I was diong, that I couldn't tell that it was working because I had my stereo connected via the docks line out.  But, it's the louder albums that don't seem to be getting any sort of gain reduction.  The quiet albums get more quiet, but the louder ones just stay the same.  The ones I have noticed this on have a RG value of 10 or greater.  Do you think that the higher RG value has something to do with this?

From my experience, SoundCheck is not available with line out - only with the headphone jack.

For example, I have one of these in my car, and SoundCheck definitely does not work on its line out (which I assume is the only one available on the docking connector). Try using the headphone connector and see if that helps.

Edit: The SoundCheck vs. Line Out situation is discussed here. In a way, it makes sense, since I'm sure Apple implemented SoundCheck by simply changing the amplifier gain as needed, so when you use line out , you also miss out on the SoundCheck correction. Still, they should have scaled the digital audio (like Foobar does) rather than apparently just messing around with the volume. Ah, the iPod - so much is right, but there is just enough wrong to piss me off... wink.gif


As for the ReplayGain value, 10 (and I assume you really mean -10dB) is a very loud song. I believe ReplayGain is based off of 89dB, so what -10 means is that ReplayGain had to attenuate the audio by 10dB to get it to an apparent volume of 89dB. OTOH, if the value really is 10, then you have a very fairly quiet song (79dB). But whatever the RG value is, it doesn't affect whether or not SoundCheck works - I've personally tested everything from -20dB to +20dB.


QUOTE
I had all this figured out when I was using MP3's, I just used mp3gain and was rollin'.  I sure miss being able to use mp3gain.  I really wish there were some sort of m4again, that would really rock.  Thanks for your help!

The problem with mp3gain is that is actually changes the file, although the changes are reversible without having to reencode the file. The beauty of ReplayGain is that it doesn't change the file, other than writing out harmless metadata, and it works on various file formats (including MP4/AAC). But the downside is you have to use a player that understands ReplayGain.

foo_pod has the ReplayGain -> SoundCheck conversion built-in, so any files you transfer to the iPod which have ReplayGain information, foo_pod will write out the correct SoundCheck value. This also applies to transcoded songs, so you can use Foobar to calculate the ReplayGain for Monkey Audio or FLAC (for example), and foo_pod can transcode to MP3 or AAC format and still have the ReplayGain applied on the iPod.

Your thread prompted me to ask a question:

What if the file is Sound-checked by iTunes, and RG-ed by foobar?

Which metadata will the iPod use? Wil it be dependent on the program used to transfer the songs in? (ie, iTunes = Sound Check, foobar = RG)
rexy
QUOTE (SNAG @ Jun 25 2004, 06:00 AM)
What if the file is Sound-checked by iTunes, and RG-ed by foobar?

Which metadata will the iPod use? Wil it be dependent on the program used to transfer the songs in? (ie, iTunes = Sound Check, foobar = RG)

Erm... you can't really do that. As far as I know, foo_pod just writes Sound Check values dependent on the existing RG values. So the implication of this is that whichever you use last on the file, iTunes or foo_pod's Sound Check conversion, is going to be the one that determines the Sound Check value.
Otto42
QUOTE (SNAG @ Jun 25 2004, 06:00 AM)
Wil it be dependent on the program used to transfer the songs in? (ie, iTunes = Sound Check, foobar = RG)

Yes.

The soundcheck value, as far as the iPod is concerned, is simply a number from 0 to 4,294,967,295 (possibly less wink.gif). All foo_pod does is to take the RG value in dB, perform a conversion, and stick it in right place in the iPod's database. iTunes does the same thing, except it uses the SoundCheck value calculated by iTunes' SoundCheck algorithim, whatever that is. We don't know anything about the SoundCheck algorithim, except that it a) does something similar to ReplayGain, b) is much faster, and c) seems to be a little bit less accurate (this is just my opinion from looking at the values and comparing them).

For the most part, they are nearly identical in most cases, and there's only a few cases where they vary wildly from one another. In those cases, I've personally found the RG value to "sound right" as far as it goes. iTunes' SoundCheck is usually good enough, however. Anyway, foo_pod doesn't read or know about the SoundCheck value calculated by iTunes, as far as I know. It simply reads the RG value that foobar calculates, converts it, and sticks it in the soundcheck field in the iPod.

rexy is correct, BTW. Whichever one you used to update the iPod last will be the value used. However, and this is just speculation, iTunes may not change the soundcheck field of non-modified songs on the iPod if iTunes is running in a manual sync mode. It definitely will change it in an auto-sync mode.

The simple answer to this is not to use both iTunes and foo_pod at the same time. Stick to one or the other. With the Smart Playlists now under construction, this will be simpler to do. smile.gif



On the Smart Playlist topic, I've kinda got a question for all ya'll that might help me out a bit:

I've been working on implementing the Smart Playlist functionality in the iPodDB code (which is what foo_pod is using) and have hit a minor snag. See, working with smart playlists is tricky because 1st and 2nd Gen iPod's don't support live updating of playlists on the iPod itself. That is, I can make a smart playlist on a 3rd gen and not worry about figuring out which songs go into it, because the iPod will figure it out, for the most part. 1st and 2nd gen's won't do this. So I've written code which will actually evaluate the smart playlist rules and such and calculate the songs for any given smart playlist, and write them into the proper places. This way, 1st and 2nd gens will work in the same way they work with iTunes. You'll have your playlists, but those smart playlists will only change when you actually sync the ipod to the computer (foo_pod, in this case).

The problem arises from something iTunes added to version 4.5. In 4.5 they added a new type of rule, namely the playlist rule. This rule lets you base a playlist on other playlists.

Example: I have two playlists, call them Adam and Bob. I can create a new smart playlist called Carol that will have rules such that any song in both Adam and Bob will be in Carol. Or I can create rules such that any song in *either* Adam or Bob will be in Carol. Whatever, the point being that I can base a playlist upon the contents of other playlists.

Since the playlist rule type doesn't support live update on the iPod anyway, I have to calculate the playlist in advance regardless of what type of iPod you have. But this gives rise to an ordering issue.. Since it's possible to base smart playlists on other smart playlists, I can have infinite recursion.. Adam depends on Bob, while Bob depends on Adam. There's no real simple way to detect this sort of problem. I can use flags to find out when it occurs, but the only graceful solution here is to stop processing and not populate the playlists in this case. I can have it return some kind of error, I guess, that foo_pod can read to can pop up a dialog telling you that you have an loop defined, but it won't be able to give much more info than that.

The question is, should I have it do backwards population of playlists and detect this looping error, or should I skip supporting the playlist rule entirely? The playlist rule is less than useful for 3rd gen owners, since it breaks live update (one of the nicer features of smart playlists), but 1st and 2nd gen owners don't have live update functionality on the iPod anyway and might feel differently about the matter.

The upside to supporting playlist rules is that it makes making smart playlists somewhat simpler in a lot of cases, the downside is that live update breaks and calculation of the playlist contents is going to be slow as hell for large smart playlists, increasing sync time by some large amount. Not to mention that it's going to add a quite a bit of code to the iPodDB objects (which I don't mind writing really, this is fun! biggrin.gif) . Or maybe there's a third option I'm overlooking. I'd like some input from the users on this one.. Do playlist-based rules matter to you?
rmoody
What do I do if I have files on my iPod already that don't seem to be affected with the Sound Check? I have a feeling that I may have some files on there that either didn't get put in there with foo_pod or I did something else but they don't have the Sound Check feild on them. How can I get foo_pod to put the Sound Check field on files that are already on my iPod? Thanks again for all the help, I really appreciate it.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.