old35

Music Project

Description
===========

This project wants to enhance DeepaMehta for personal use.
It's about enjoying your Music files in your own terms without browsing Gigabytes of music 
files in hierarchical folders and in terms like 'Genre'. It should empower you to organize 
your files in your own items of associatons and types! 

We want to build a demo application which can show to everyone that nobody needs to think 
in terms of a special application to enjoy music on a computer, everyone should easily be 
capable of bringing his own terminology into his (in this special case it's the) 'Music Context'.
Besides the usage as a personal desktop tool, a collaborative environment is also very promising.

For example:
I would like to see every track which has a "smooth beat" association to 'The Roots - Tipping Point' 
or i would like to see every Artist whom was published on the Sampler 'Dope & Glory'...	

.

Functionality
=============
Drop your root folder into the topic map interface
The Framework should read all files and albums recursively, we thought of .mp3 and .ogg
Extract the ID3 Meta Information to inherit association Musician from Artist to Track and Album 
and from Track to Album and from Album to Year, Track to Year seems to much....
On Double Click, internal basic player functionality should be build into each TrackTopic and 
start the Track where it lies on the map, basic handling could be located right next to the topic
and enhanced playing mechanisms should be located in the property panel. Further Playing Mechanisms 
could be realized with a Mixer Topic or a Playlist Topic optional it should be possible to watch 
out for new files in the music repository. If one would think about one DeepaMehta music instance on
a webserver it will be necessary to take topics like upload/download/streaming of files into account.

.

Interface
=========
the Interface should be based on the tiled window desktop with property panel on the right and topic 
map on the left, without any popups, basic playing functionality on the topic itself, everything 
which has more functionality needs a new property panel approach. Thoughts about playlist a possible 
mixer and the track visualisation have to be discussed later on

.

Description of the Application Scenario
======================================
(Terms and Items in our Music Workspace, in other words: "The Basic TopicType Definition")
Topic Types:
Tracks
   - Added
   - Public / Private
   - Subtype of Document Type
Album 
   - Coverfiles
   - Tracklist
 
Artist 
   - Name
   - Descr

Year (use the DeepaMehta BaseType or have an own?) 
   - Date
   - Descr

Playlist
   - Number of Tracks
   - .....
Mixer
   - needs two connected Tracks, can have some properties
   - bpm...

Associations Types:

Musician (Inherit?)
   - Inherit association between an Author and his album and every single track!?
   - Possible Derivations (Drummer, Guitarist, Vocalist, Bassist, etc....) 

TrackInAlbum
   - no name yet, the inherit association of a track which is in a specific album
 
.
Development
===========

Java 1.4.2
Enhancing the Document Importer via Drag&Drop
 - Plaform depending bugfixing and implementing optional recursive import

Using ID3 Tag Java Library to extract Meta Informations
 - Writing an Importer Class reacting on .mp3 and .ogg files

Enhancing the Property Panel for listing, mixing and enhanced playing functionalities.
 - need input, is it possible to build a more "complex" property panel out of the depending topictypes, 
   therefore we would have to enhance the common available properties for every type, or?

Enhancing the PresentableTopic class for different states to support playing functionalities directly 
on the topicmap. With playing functionalities right on the map, more usability problems should be taken 
into consideration.

Building the final Workspace with all TopicTypes and Properties.

.
Addendum
========
this where just some thoughts, please feel free to contribute your ideas and thoughts
	 
.
Malte Reißig (mre@deepamehta.de)