This logo and/or wording in software and documentation could be used like a trademark to signify a certain assured level of optimum behaviour. An appropriate LAMEsure tag or a flag bit in the LAME header (where used) could also be included (to augment rather than replace the "Unwise settings used").
The idea borrows from logo marks that signify a minimum standard of features. Worldwide, many will be familiar with "Designed for Microsoft Windows XP" logo and in specific countries, standards bodies issue marks like the CE mark (Europe-wide approval, but recognised on products worldwide). Other open standards specify a minimum feature set, such as the UK's "Freeview Playback" minimum feature set for digital terrestrial TV personal video recorders with Electronic Programme Guide, at least 2 hours' pause and rewind of live TV, the ability at least to record one channel while watching any other or record 2 channels, etc.
It's a logo or branding (e.g. "This software offers LAMEsure compliant MP3 encoding and decoding") that people can look for and trust to deliver consistently good quality and features within a given field of operation. A suitable logo with a friendly green tick to denote approval would be desirable, and a monochrome version should be available.
In a way, it extends the idea behind the recommended LAME GUI which appears on few software implementations (foobar2000 and little else, AFAIK!) by providing an incentive to standardise for safe features.
As an outline, I'd suggest for the LAMEsure encoder and its UI (subject to discussion/pruning/extending):
- LAME 3.98 release version or above excluding alpha and beta versions (hence excluding the LAME 4.0 alpha fork)
- Lossy-to-lossy transcoding warnings (over-rideable by user)
- Encoder aims for... [x]Consistent quality target (suggested tooltip: "VBR, recommended, minimum filesize for given quality"); [ ]Bitrate target (ABR, quality variable but file size fairly predictable); [ ]Bitrate fixed (CBR, quality more variable, file size exactly predictable). Could add support for additional "standards" like Podcast mode, typically CBR 128 kbps, Joint Stereo, 44.1 kHz.
- Option of slider (preferred), drop-down-list, radio-button or numerical entry limited to valid ranges (or any combination). Descriptions for each mode along with estimated typical bitrate (and filesize, or megabytes per minute or per 4-minute song, or hours-per-gigabyte) should be from an approved list (interpolated for fractional -V settings) for each version of LAME. This could indicate near-transparent, transparent etc. No requirement to permit all available modes (e.g. forcing -V3 would be allowable, as would allowing -V5 to -V2 (preferably showing -V9 to -V5.01 and -V1.99 to -V0 greyed-out), if your software targets a particular niche only, though allowing at least all integer settings between your upper and lower bounds is preferred. Option to disallow fractional quality settings for ease of using sliders etc. if fractionally settings are permitted by your UI.
- [x]Stereo or [ ]Mono radio button. (Stereo means Safe Joint Stereo - full stereo is not permitted in LAMEsure as it tends to impede quality, inflate bitrate or both). Could add a "same mode as source audio" button and allow the stereo button to force stereo mode on mono files (upmix), which would still be encoded pretty efficiently using MS mode.
- Don't allow a choice of VBR mode: Use the default, which from 3.98 is both fastest and recommended for the best psymodel quality and current tuning. Don't allow a choice of "quality -q switch", nor "-h" or any other developer switches like -k and similar nasties.
- Must include gapless info (both delay and padding where possible - unless we choose to impose a LAME header even on CBR files.
- Can allow pre-processing for gain (e.g. Replay Gain hard-coded before encoding or via --scale) and Dynamic Range Compression (e.g. foo_dsp_vlevel) but prefer a flag in the LAME header to indicate each of the major items used.
- Could incorporate further ideas, such as an embedded loudness profile in the header (or hidden in padding within an MP3 compliant bitstream, if that's possible) to allow on-the-fly DRC that is optional at decode time (e.g. when listening in a noisy environment or as background music).
- Optionally, a link to a fixed web resource containing further information about LAMEsure and the reasons why the settings are optimal as demonstrated ultimately by fairly extensive double-blind testing on a wide selection of music.
The list is incomplete and not fully thought through, but it needs to be fairly brief and reduce the confusion and propensity to end up with suboptimal settings.
Anyway, I hope to spark some discussion and see what might be worthwhile, if you think any of it is!
For LAMEsure decoders, we should ensure full MP3 compliance (obviously including VBR) with correct track duration reporting and at least reasonably accurate VBR seeking and at least the option of gapless decoding using LAME gapless info where present. Playback of mono MP3 files through both L & R speakers is a requirement unless the output device is mono or has a single centre channel that is used instead.
Optionally, support for Replay Gain should be encouraged, though probably not insisting on using the gain stored in the LAME header as this has little support to date (e.g. foobar2000).
I'm interested to know what you all think.
