I am unable to find the "playlist->cue export/saving" feature in the plug-in, to generate a cuesheet from a playlist of mp3 files. I've searched for it all the menus (including the components menu) and context sensitive menus. I even looked for it in from the list of items to add in the context menu and main menu. I tried to find the menu options on two separate machines with similar, but not exact foobar2000 installations.

Here are the details of my foobar2000 setup:- WinXP Sp2, with all the common updates- latest special installer with complete installation- I'm using the columns_ui component- I'm using the latest version of foo_cue_ex (1.3.2)

When you create the cuesheet can you choose to treat all items in the playlist as one source, even if they aren't?

I have seen an example of a foo_cue_ex-created cuesheet in this post, and it treats all source files as separate (so you have multiple FILE commands each with one TRACK with an INDEX 01 of 00:00:00).

However, the reason I want to use foo_cue_ex is to merge many files into one (n track files -> image file with cuesheet). I can use Diskwriter to merge the tracks into one but without an accompanying cuesheet this will be useless.

So, I need to be able to say to foo_cue_ex "Look, I know these are currently separate files but write the cuesheet as if the songs are all tracks from one file". I can then use Diskwriter to make them all one file.

I too am having the same type problem with "foo_cue_ex", so I sent an email out to WigBaM (the author), to check if there is a problem with the Jan 05 update. If I recall correctly, this plugin did allow you to save a playlist as a cuesheet. I asked the the author to reply to my email here at the forum. Hopefully, he will reply soon.

To run it, either drag a folder onto the EXE, or call it from the command line using CUEMAKE.EXE <folder path>.

CUEMAKE will create a new WAVE file in that folder (CDImage.wav) by merging all WAVE files within the folder, and create an accompanying cuesheet (CDImage.cue).

The WAVE files will be merged in alphabetical order. CUEMAKE expects the folder/file setup to be <artist>\<album>\<tracknumber> - <title>.wav. If your files are in this format CUEMAKE will correctly add PERFORMER and TITLE meta data to the cusheet.

If there is enough interest for a future release my intention is to allow users to specify this mask, to fit the path scheme that they use.

E.g.: If you drag a folder called "C:\My Music\Green Day\American Idiot", and that folder contains all the tracks in the format "01 - American Idiot.wav", "02 - Jesus Of Suburbia.wav", etc. the artist will be set to "Green Day", the album to "American Idiot", track 1's title to "American Idiot", track 2's title to "Jesus Of Suburbia", etc.

Please read the readme for an up-to-date explanation (the above is now misleading).

I have tested this by splitting an image file (with cuesheet) into tracks using Foobar, and then using CUEMAKE to glue them back together again. The cuesheet timings are exactly the same, Foobar reports the WAVE files to be bit-identical, the filesizes are exactly the same according to Explorer, and my Hex editor says the files are identical.

All suggestions for improvement welcome.

The application is written in VB6, and references the Microsoft Scripting Runtime (FileSystem object).

If you haven't installed (m)any VB applications on your PC you may need to install one or both of the following to get it to run:

Cool, thanks. I'll test it on some albums and let you know if I found something strange.

Yes, please do. Bear in mind it is still in beta.

I have now uploaded version 0.2. You can still get the previous version here.

This one will let you specify the mask for naming.

If you double click on the EXE the GUI (above) will appear. This lets you create masks from which to add PERFORMER/TITLE meta data to the cuesheet.

You can save masks to an INI file and then select them from the dropdown list. The mask visible in the dropdown when the GUI is closed using the OK button is the mask used when CueMake runs. If there's no INI file (i.e.: no settings have been saved) the mask shown above will be used. You can now also drag a folder onto a blank area of the dialogue to process that folder.

This means that if your files are named:

"Green Day - American Idiot - Jesus of Suburbia - Track 02.wav"

... you can correctly populate the cuesheet meta data by specifying a mask of:

%artist% - %album% - %title% - Track %tracknumber%.wav

Use an empty tag (%%) to discard variable data. E.g.: if you had year or genre information in all your track files, like:

Before merging, files will be sorted by tracknumber where available - or file path if the mask for some reason doesn't contain a %tracknumber% tag (which may be foolish).

Available tags for the mask are:

%album artist%

%album%

%tracknumber%

%artist%

%title%

Again, all feedback/suggestions for improvements welcome. However, to preempt an obvious question, I really don't have the time to get this to work with any other files than WAVE (e.g.: MP3 or APE). I will be using this app for lossless files, and I'm quite happy to decode to WAVE before the merge, and then encode back to lossless. I'm afraid I just don't have the free time to learn how to do this with other files - WAVE files are a piece of cake to work with.

Cool, thanks. I'll test it on some albums and let you know if I found something strange.

Yes, please do. Bear in mind it is still in beta.

I have now uploaded version 0.2. You can still get the previous version here.

This one will let you specify the mask for naming.

If you double click on the EXE the GUI (above) will appear. This lets you create masks from which to add PERFORMER/TITLE meta data to the cuesheet.

You can save masks to an INI file and then select from the dropdown list. The mask visible in the dropdown when the GUI is closed using the OK button is the mask used when CueMake runs. If there's no INI file (i.e.: no settings have been saved) the mask shown above will be used. You can now also drag a folder onto a blank area of the dialogue to process that folder.

This means that if you files are named:

"Green Day - American Idiot - Jesus of Suburbia - Track 02.wav"

... you can correctly populate the cuesheet meta data by specifying a mask of:

%artist% - %album% - %title% - Track %tracknumber%.wav

Use an empty tag (%%) to discard variable data. E.g.: if you had year or genre information in all your track files, like:

Before merging, files will be sorted by tracknumber where available - or file path if the mask for some reason doesn't contain a %tracknumber% tag (which may be foolish).

Available tags for the mask are:

%album artist%

%album%

%tracknumber%

%artist%

%title%

Again, all feedback/suggestions for improvements welcome. However, to preempt an obvious question, I really don't have the time to get this to work with any other files than WAVE (e.g.: MP3 or APE). I will be using this app for lossless files, and I'm quite happy to decode to WAVE before the merge, and then encode back to lossless. I'm afraid I just don't have the free time to learn how to do this with other files - WAVE files are a piece of cake to work with.

Hi Neil,

I am getting this error message "404 Not FoundThere was no page found at this location. You may wish to report this to the owner of the site." when trying to access version 0.2.

V0.2 downloaded fine this morning. I did play with v0.1 last night and it worked like a dream. A very cool program, Thanks!

No problem. It's good to know it may be of use to someone else.

The file reading/writing code has not changed at all since 0.1 - it's all down to the new file path masking options. I just went ahead and did this as I was interested in coding the masking system. It seems to be working fine - I haven't been able to trip it up yet. If anyone does, I would be very grateful if you could please post the mask and the file paths used to this thread (which I'm now tracking).

The main benefit of the masking setup in 0.2 is that files don't have to be in track order. 0.1 will just append files in alphabetical order, so you have to ensure that the tracknumber is the first part of the filename (e.g.: "01 - Title.wav"). 0.2 finds all the WAVE files, records their meta data using the mask, and then sorts them by tracknumber (or path as a last resort) - so a filename of "Title - 01.wav" is fine, providing your mask is correct.

I'm working on 0.3 now, but it's just minor updates on the GUI. I've added the ability to delete the track files and/or play a sound on completion (see screenshot below). I think that will be it for a while then.

I always thought the fbl playlist files kept all the tag info within the fbl file itself. You can see them if you open it in a hex editor.

If you could point me to the spec for the fpl format that may be helpful.

I can see the obvious character information in my hex editor, but there is some numeric data also.

I searched and found this thread to be the most informative (not very). It seems some of the info is replay gain data. I would assume some of this may also be timing information - which would be great - if I knew which bytes.

Thanks to some feedback from drbeachboy via email I have updated the GetTimeFromBytes() function. It now uses the number of bytes, channels, bits per sample and sample rate to calculate the cuesheet timings. The previous function used a constant of 2352 to determine the number of frames - but this will only work for 16 bit stereo 44.1KHz (i.e.: CD quality) files.

This means CueMake should now theoretically work with 48000Hz and/or 24bit WAVEs, but I haven't really been able to test. I tried testing by resampling from Foobar to 48KHz using the Secret Rabbit Code DSP and Diskwriter - but the resulting files are not equal in length to their sources, so a comparison is impossible (bear this in mind please drbeachboy!). I did download one 48KHz WAVE and the the cuesheet time was accurate for that one track - but I'm not calling that comprehensive testing.

I'm not familiar with such things, but if anyone can tell me how I can create some 48KHz WAVEs from a CD or some other useful source it would be appreciated.

Ciao Now Brown Cow.

Edit: I feel I should point out that a Foobar component to create an accurate cuesheet from a Foobar playlist could be a lot more useful. This would be so easy for a C++ programmer only vaguely familiar with the Foobar SDK. However, until one materialises, I'm using CueMake.

Edit 2: I have since used SSRC to resample an image file to 16 bit 48000Hz, 16 bit 32000Hz, 24 bit 44100Hz and 24 bit 32000Hz WAVE files. I have used Diskwriter and the images cuesheet to split them into track WAVEs. I have then used CueMake to merge the tracks back together. The cuesheets all match. One curiousity is, however, that the 32000Hz files' samples are not an exact multiplication of 75, unlike the 44100Hz and 48000Hz (both 16 and 24 bit). If anyone can tell me why this may, please do. If anyone is interested, the report from one of my tests is below.

Personally, I don't like having to install complimentary files to be able to run an application, so I've created CueMake Lite that goes back to the most simple GUI with mask selector (no Common Dialogue control used). I could have kept everything else, but I thought I may as well go the whole hog and have one basic version, and one that will get all the bells and whistles.

This should mean that you can use this version with no further installs.

I'm a little confused how you could run version 0.1 and 0.2 and not 0.3 - I assume the Common Dialogue control I used is a version 6 control, and you have earlier runtimes installed. If this is the case you may as well install the updated runtimes anyway.

Personally, I don't like having to install complimentary files to be able to run an application, so I've created CueMake Lite that goes back to the most simple GUI with mask selector (no Common Dialogue control used). I could have kept everything else, but I thought I may as well go the whole hog and have one basic version, and one that will get all the bells and whistles.

This should mean that you can use this version with no further installs.

I'm a little confused how you could run version 0.1 and 0.2 and not 0.3 - I assume the Common Dialogue control I used is a version 6 control, and you have earlier runtimes installed. If this is the case you may as well install the updated runtimes anyway.

Version 0.3 wouldn't run on my work computer and I cannot update it, as I do not have admin privileges. So, the computer must have been updated enough to run versions 0.1 & 0.2, but not for 0.3.

Here at home all versions run fine, as I keep my own computer always up to date. I'll download the new basic version on Monday when I'm back at work and make sure it runs ok. Thanks for making both versions, as I will use it at work almost as much as at home.

Dirk

Edit: As expected, CueMakeLite is running fine on my work computer. Thanks, Neil!