=================== TODO: jukebox =================== .. contents:: .. 1 Misc 2 Change files renaming scheme for multiple-artists albums 3 Remove old jukebox code 4 Make songfiles format per-backend 5 Split user and album XML info 6 Define abstract interface for jukeboxes 7 Scripts 8 Tests 9 New Features 10 Data Work 11 Music/External 12 Discussion w/ Cynon about DJ system Misc ==== - fix/rewrite playmon as a curses app, see cplay, to use arubomu and new jukebox interfaces Change files renaming scheme for multiple-artists albums ======================================================== > why did/do you delete the artist names from compilations in the filename > ? it's a bit harder for me to find a song this way in the compilation > cds, and the filename is now composed of more irrelevant info > ("Various_Artists-Compilation__David__Salsa_greats_vol_26" is all > useless anyways). we could actually just throw all compilation songs in > one dir, since we're not sure of the quality and only use the actual > artist name and song name in the filename. oops, yeah, my script does that, but it would indeed be a good idea to change it to keep the artist name. i think i'm going to change that, good idea. i could then apply the change globally next time i put my hands on your jukebox copy :-) note that the ID3 tags should contain the artist name, i didn't know you used the filenames, i thought you used some kind of player list that categorized everything automagically Remove old jukebox code ======================= I think we must keed in mind the following philosophy: recognizing that we will work with files that are not in a specific jukebox (e.g. jukebox-check) we must make decisions about where the XML files and mp3re are *outside* of the backends themselves, therefore, we should simplify the backends to contain only backend-specific data, and common definitions otherwise commonly outside of that. The current code uses the following features that have to be moved to the jukebox_new:: jukebox.jukebox jukebox.jukebox_xml_current jukebox.jukebox_playfile jukebox.getDiscIdMap() (should be replaced) jukebox.getAllXMLIds(xml) Make songfiles format per-backend ================================= - ``songfiles.py`` should be removed and songfile validity should be per-backend; Split user and album XML info ============================= - separate album.xml and user.xml in jukebox? Define abstract interface for jukeboxes ======================================= - jukebox tools cleanup, remove jukebox scripts, make all jukebox-* scripts - make all jukebox scripts import using the jukebox. and album. prefixes. - make playmon use the new backends, this should make it work without the jukebox (e.g. at borneo) - make an XML format and library and accompanying tool for saving mark points and implement a playback UI - formalize types of inputs and outputs more, don't assume a single jukebox, and provide a standard way to output the used inputs locations and their types. this will solve a lot of the problem that we're having everywhere. e.g. - jukebox directories (an output) - XML in jukebox directories (an input) - complete XML (an input) - partial XML (cdindex -- an input) - a directory with mp3 files, not necessarily conforming (an input) - this could be used to extract titles from filenames and id3 tags - playfile (an input or output, different interface) create interface and concrete classes for input and outputs, call these 'backends'. this is what you should use for accessing the XML or MP3 files, should always go thru these. this should allow for easier debugging as well, and more configurability. all is then a matter of setting defaults. - document this. - write simple test programs. - publish scripts. all is a matter of setting defaults. to get the previous kind of interface. - need to make the fetching of covers independent of the "jukebox", so we can easily fill in new albums. 'update_covers' command, also make computing the size independent from qt. Scripts ======= - find a way to automatically get http://www.latinbeatmagazine.com/ hit parade every month - read all the mp3 files durations if not found in XML file, and also warn if very different than the XML file durations when available - find way to add all missing songs from playmon-index, very important!!! sources of info: - files in jukebox - XML file - playmon-index - investigate using the following instead of the C library I'm currently using for ID3v2 tags:: PyId3V2 -- pure Python module that reads/writes id3v2 http://www-lce.eng.cam.ac.uk/~acnt2/code/pyid3v2/ id3, mp3, music, python - find a way to publish music-lists to my website, perhaps put them in cvs akin to conf-pub - change jukebox HTML output script to use htmlout library (publish htmlout library first); - make a script to create a CD from a bunch of discids, and it shortens the names for the joliet restrictions as well. this is terribly useful when someone is at my place and i'm burning music for him; (same: write a script to reduce the maximum length of the filenames prior to burning a cd for windows and friends.) - there should be a script that takes a playlist and outputs a list of mp3 file in a directory, or that at least chases the filenames and prints them out. - jukebox-check: make sure that no two different files have the same map number; - the gensonglist currently seems to sometimes come up with two songs that are the same. - add an option to the play command to make it add not at the end of the list but after the currently playing song. - make random selection of songs use the list of songs with listen count 0 instead of randomly choosing albums, so albums with more unlistened songs are ayutomatcially given a higerh weight - when the emacsclient cannot be spawn properly, show something in the user interface. - find a way for the playmon to be able to visit an album without it being played in xmms, maybe listen to an XML-RPC socket. - find a way to render an album's info directly into PS/PDF format. - implement a way to render a list of album info into PS/PDF format. - use mp3info utility to automatically gather all file durations in XML files, perhaps write a script that adds the durations automatically - do something to make sure that my local xml files are all there for each directory, a validation script - add command/system to copy from read-only HDD the info.xml files and copy them back as well. - implement a way to store d.j.-able songs in categories and to produce lists of CDs from random songs in these lists; these lists should be readable by another command to decode parts into wavs for CDs to be burned! Tests ===== - write a test infrastructure New Features ============ - make command to play all song TITLES that match a regular expression - add an JUKEBOX_PLAYLISTS env var for the playlists when we'll need it Data Work ========= - add field to store cddb ids and move cddb-id files to saved.cddb_id - error in songlist for: Various_Artists-NY_Salsa_Festival_20_Years__DISC1, song no. 2 - automate fetching partial info (e.g. label and year), perhaps songs when not present - apply the user vs album split to my jukebox - automatically loop thru all the amazon.com catalog to automatically fetch the missing information for each album. - make all aebersold use same format, all rough guide, etc, do this when filling series tag Music/External ============== - download more CH stuff from kevin's timba web site - setup web site for die-hard timba traders - fetch CD covers from batadrums.com, replace olorun 1 as well, cover is wrong - is all the functionality under PrintTitle available from the other 'album' scripts? when so, remove the command. - shop for a mp3 player that can also record sound to mp3, for before discreet: http://www.thinkgeek.com/electronics/mp3/5fe2/ http://www.thinkgeek.com/electronics/mp3/5784/ http://www.archos.com/products/prw_500326_specs.html Archos Jukebox FM Recorder 20 is the one i need for recording and all. Archos Multimedia Player can be photo wallet http://www.computerinnovation.com/JMMPreview.htm http://www.computerinnovation.com/ - there are linux drivers for archos products - features: - recording & encoding - fm tuner - linux support .. end Discussion w/ Cynon about DJ system =================================== -----BEGIN PGP MESSAGE----- hQEOAyClAM9OJu/cEAP5AWHO/2u0KWLyfIOQ2LnztJPpnvKCjnNdpJCLGlfBHT2c +8D45bfidwNv/iTlCJXHnO4NF7KUd/zFhOuNJeswV135AAsh152Gp9sSgixKILxh kWCMcefCpNLfu6m1JLhY5BiNhUmaZwKbEI/nf8NXV2AfDaf1LC75xdBdVjRWV8UE AJMjhH11avFNld9lo41o4uGjOMFqpU/m7QqO5bOFyfssyLYoz8eXp3RmEjWAyO2e P9WatbTcoFD5BeiY+QIvxEPJxxxrqhZWaH+0d4KSOjsCyzMin2HUgVub215ITYS7 uw6pT5aVwbU7F2JKj4+gxRl7iLS48fsHadhs2sYFnOJH0sDMAchxCTN9FDb+LzTF CwyxLrlt1uyGr/MHhIjD9fREqW9oIqQXAU0IgMSkPwKmvVpFgleJaTzeW6rgfo0c YCoZxYqwtErpAJB67yXIMBh5tGcD599W48Bm7vmiXnSYlP3Asrt/y9IPiVsQZvSH c2gHJifTcIRz08mZbWlli2T/ePeoWkcSchloIqAxHaoPOalwdzDGFV+5rtuVEFo6 PIkvaLYXPJyc6Gh9nBtP5zWzMqJWQFj6fHslwqPJ04T82l49OWswD3WXh3h5ADA3 5rhJGn8KzRJYjpVPgX2BNSNX2RTqIXmzt+AhN7Pfld8Eq2X2aWa0zNwLS9hR/pIi iXUwkiwInD/eDdzN9JqaJniWQJ/JM3mQYW78ztEaQx0x/AEwvIXNQ6ZoCo1B2bLR HXPhBmMyGbppJhiu/uCnolrsU/YxIFgpem+0e+HtpkKJ207GoRk8rTDMR5OH1FqZ FhZCH/Klq8IQe4xOKKAV7VHtsyOY9E68rb20sXYu/0U7ji1qoh6VbPO81BheX1b/ =+H3Q -----END PGP MESSAGE-----