TABLE OF CONTENTS
1. -ABOUT
2. -DEPENDENCIES
3. -INSTALLATION
4. -CHANGELOG
5. -DEVELOPMENT PLAN
------------------------------------------
MUSICHSPELER-0.1.7
a web based audio player with music library functionality
inspired by amarok and ampache
Copyright (C) 2014 Philipp Scholz (pe-es@nasowasauch.de)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
For full license text, read doc/LICENSE
----------------------------------
==========DEPENDENCIES:===========
----------------------------------
for installation:
-UNIX based plattform
-mediainfo (look at http://mediainfo.sourceforge.net)
-MySQL
-http-server (apache, nginx, lighttpd, etc.)
-php
for use:
-mp3 and ogg (recommended):
-rekonq
-chrome/chromium
NOTE! if you want to use chrome on linux, you have to install
the "chromium-codecs-ffmpeg-extra" package
-only ogg:
-Mozilla Firefox
-only mp3:
-MSIE
-safari
----------------------------------
==========INSTALLATION:===========
-------------------------v.0.1.7--
At this early state of development following files have to be edited for a working installation:
config/db.php
=============
-read comments in file for instructions
config/config.php
=================
-needs a full path to music directory
-alternatively, you can create a symlink to folder: music
note that your webserver needs the followSymlink module enabled in this case.
your conf should look like: $musicDir="music/your-Symlink"
to go on with the database, you have to create inside your database a table like the following:
CREATE TABLE IF NOT EXISTS `collection` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`no` int(4) NOT NULL,
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`interpret` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`performer` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`album` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`duration` time NOT NULL,
`genre` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`year` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
`file` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`format` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
`owner` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`public` int(1) NOT NULL,
`url` text CHARACTER SET latin1 NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
the collection scanner can be used here:
http://domainAndPathToYourInstallation/index.php?end=setup
it must be run everytime new music has been added to music directory.
A graphical (browser based) installation progress is planned...
----------------------------------
============CHANGELOG=============
----------------------------------
pre-alpha-0.1.7.1
(08-08-2014)
-fixed missing tracks after track containing a ' in collection view.
-fixed mixed content over ssl secured connection
pre-alpha-0.1.7
(08-08-2014)
-sort titles by track-no in playlist view
-php 5.6 compability (mysqli extension replaces old mysql,
no Call-time pass-by-reference anymore)
-fundament for environmental scans
-rudimentary debugging
-rudimentary ability to distinguish interprets and album-interprets.
this is useful for albums with mixed artists
-database name and user name don't have to be the same anymore
-removed all undefined variables
!decided not to investigate the "mediainfo questionmark" -bug
anymore, ntfs can't handle "?"'s anyway, so maybe just detect
them and give a warning.
TODO
-possibility to delete tracks from playlist
-possibility to change tracks position inside playlist
-possibility to add whole albums/interprets to playlist
?add a link to collection scan page
pre-alpha-0.1.6
(05-07-2012)
-multicodec support caused by replacing all <div>'s "data-ogg/mp3"
with "data-media"
-Fixed some mediainfo to MySQL issues
!found out that the "new" mediainfo bug (no check of files which contain
a question mark) only occurs on debian based systems
TODO
!find a workaround for the "new" mediainfo bug
-possibility to delete tracks from playlist
-possibility to change tracks position inside playlist
-possibility to add whole albums/interprets to playlist
-sort tracks by track number in collection
-add a link to collection scan page
pre-alpha-0.1.5
(04-07-2012)
========================
-extended database and mediainfo functionality for track length,
track number, genre and publishing year
ISSUE: the mediainfo output of track duration needs to be
manipulated for beeing inserted to database
-better workaround for mediainfo bug using xml output format
-first step for better multicodec support: audio format of each track
saved in database
-removal of mediainfo templade which is not nessesary any more
!found a new mediainfo bug:
mediainfo can't scan files which contain a question mark
TODO
!find a way for better multicodec support
!find a workaround for the "new" :-( mediainfo bug
-possibility to delete tracks from playlist
-possibility to change tracks position inside playlist
-possibility to add whole albums/interprets to playlist
pre-alpha-0.1.4.1
(30-06-2012)
========================
This release feels like a step backwards...
found out that returns of the mediainfo template sometimes don't
work during to a mediainfo bug. Sometimes it wants UNIX line breaks,
sometimes DOS line breaks :-(
also found out that firefox want's a clear file type declaration for
music files... so it's nessesary to detect ogg, mp3, etc and use
different <div>'s for them
-"fixed" mp3-support --ogg doesn't work for firefox at the moment
-created a temporary workaround for mediainfo bug, but it's slow and
will interrupt scans on collections bigger than 3000 tracks
TODO
!find a way for better multicodec support
!better workaround for mediainfo bug
-possibility to delete tracks from playlist
-possibility to change tracks position inside playlist
-extend database and mediainfo functionality for track length,
track number, genre and publishing year
pre-alpha-0.1.4
(29-06-2012)
========================
-fixed the "more than one album click issue"
-everything but interprets is hidden on start
-collapsing interprets and albums is possible
TODO
-possibility to delete tracks from playlist
-possibility to change tracks position inside playlist
-extend database and mediainfo functionality for track length,
track number, genre and publishing year
pre-alpha-0.1.3
(29-06-2012)
========================
-fixed "missing tracks" bug using mysql_real_escape_string
-fixed "last track in playlist" bug with variable <div> ids
for playlist elements
-recreated <div> set. Now it should be much easier to create a
theme
-prepared theme folder. main.css is now there
-started working on a standard theme
-scrolling inside <div>'s
-simple header
-individual ttf-font
-defined few standards for themes, locale, etc.
TODO
-possibility to delete tracks from playlist
-possibility to change tracks position inside playlist
-COMBINED: !fix the "more than one album click" issue
-hide albums on start (with css3 maybe?)
-possibility to "open and close" interprets
and albums
*extend database and mediainfo functionality for track length,
track number, genre and publishing year
NOTE: when finishing this todo, the pre-alpha phase is closed
pre-alpha-0.1.2
(28-06-2012)
========================
-tracks can be added from regular collection to playlist
ISSUE: last track in playlist will always be repeated
ISSUE: some tracks missing in collection. don't know why
-progressbar shows status of scanning interprets and albums on
startup (usefull on large collections, maybe deactivate on
small ones)
-pretty project logo created (i needed a change from programming)
TODO
-rebuild index <div>set (...better appeareance)
-COMBINED: !fix the "more than one album click" issue
-hide albums on start (with css3 maybe?)
-possibility to "open and close" interprets
and albums
*possibility to delete tracks from playlist
*possibility to change tracks position inside playlist
!fix "last track in playlist" bug
!fix "missing tracks" bug
pre-alpha-0.1.1
(26-06-2012)
========================
-collecton scanner now prints all interprets and albums,
tracks will be shown when clicking on album
ISSUE: when clicking on an album second time, all tracks
will be shown twice, three times on third click and so on...
TODO
-add tracks from regular collection to playlist
*rebuild index <div>set (...better appeareance)
*COMBINED: !fix the "more than one album click" issue
*hide albums on start (with css3 maybe?)
*possibility to "open and close" interprets
and albums
pre-alpha-0.1
(may-2012)
========================
first "release" ;-)
-complete collection scanner which can build a database
-progress bar shows status of scan
-experimental tracks can be added to playlist
-after one track has been played, the player automaticcaly
jumps to the next one
-when clicking on artist, the albums will be shown
ISSUE: next step, tracks queried when clicking on album
doesn't work. no plan why. try to only query tracks onClick
and load all interprets and albums at once
TODO
*rebuild the db scanner making it showing tracks as 3rd level
*add tracks from regular collection to playlist
----------------------------------
========DEVELOPMENT PLAN==========
----------------------------------
phase 1 (pre-alpha-0.1.*)
-build a complete musicplayer that can scan for music files
and create a database
-should be able to play all tracks in db sending them to a playlist
phase 2 (alpha-0.2.*)
-add a header and a context area that shows track specific information.
-add a pretty theme with css3 elements
-by the way... build a css frameset
-add a complete usermanagement system.
phase 3 (beta-0.3.*)
-clean up the code, try to recreate some miscellaneous code into
modular one.
-write a documentation on how-to-install
-write a documentation on how to build a theme
-OPTIONAL: add widgets for context area such as album cover, lyrics, etc...
-OPTIONAL: add abilities to usermanagement like publishing tracks, etc...
phase 4 (RC-0.4)
-bugfixing, if nessesary
-PLEASE... find a better name than "musichspeler"
-build .deb and .rpm package (look if there is something equal for mac)
in which automaticcaly an apache alias will be created and where
dependencies such as php, mysql, apache/nginx/etc. will be checked
final release (MUSICHSPELER 1 "Animals")
...tadaaa
remote future:
MUSICHSPELER 1.1 "Brothers in Arms"
MUSICHSPELER 1.2 "Come Clean":
-graphical (uhm, browser based) installation progress.
-languages (ask friends for spanish and french)
-fallback modes for systems without "php exec" or "apache followSymlinks"
-ms windows compability ??? (i would say, this depends on m$'s policy of
the next months ;-))
-ability to change appeareance with themes
MUSICHSPELER 1.3 "Digital ist besser"
MUSICHSPELER 1.4 "El vals del obrero"
-support for other databases than MySQL
-own appeareance for the html5 player
MUSICHSPELER 1.5 "Float"
MUSICHSPELER 1.6 "Geräusch"
-"socialising" such like comment, rating, communicate, etc...
MUSICHSPELER 2 ???
extend to a streaming server (mpd o.ä.) ???
versioning will be like:
*.odd number.1 -> alpha
*.odd number.2 -> beta
*.odd number.3 -> RC
*.even number -> final release
*.even number.* -> bug -or security fix release
example:
1.5.1 -> alpha
1.5.2 -> beta
1.5.3 -> RC
1.6 -> final release
1.6.1 -> fix of something