Global MP3 Geoffrey Beers Deborah Ford Mike Quinn Mark Ridao
What is Global MP3? Provide user with a wireless and portable interface that will interact with other playback devices. Provide user with a wireless and portable interface that will interact with other playback devices. MP3s are streamed from Personal Server to the client device. MP3s are streamed from Personal Server to the client device. MP3s are decoded on the client device, through a suitable MP3 player. MP3s are decoded on the client device, through a suitable MP3 player. User is able to roam freely in a given environment – in ordinance with Bluetooth limitations – and still able to listen to music stored on the Personal Server. User is able to roam freely in a given environment – in ordinance with Bluetooth limitations – and still able to listen to music stored on the Personal Server.
What is Global MP3? (Cont.) Client may, in theory, be any device providing these two stipulations: Client may, in theory, be any device providing these two stipulations: Bluetooth capability. Bluetooth capability. MP3 decoding technology. MP3 decoding technology. For sake of this project, we are also assuming that there is a full visual display with web-capabilities. For sake of this project, we are also assuming that there is a full visual display with web-capabilities. Thus, the output device may be a PC, home stereo, car stereo, or wireless headphones. Thus, the output device may be a PC, home stereo, car stereo, or wireless headphones.
Major Components Bluetooth Bluetooth Personal Server Personal Server Limited memory for mp3 storage. Limited memory for mp3 storage. Java programming environment (JSP). Java programming environment (JSP). Winamp or other mp3 decoder on the client machine. Winamp or other mp3 decoder on the client machine.
Client Application Assumed to be running on each client in order for system to function. Assumed to be running on each client in order for system to function. Runs as a background process, and records Bluetooth users who enter and leave range. Runs as a background process, and records Bluetooth users who enter and leave range. Ideally, this will be automated, and will periodically ping for new and departing users. Ideally, this will be automated, and will periodically ping for new and departing users. After user is found to be within the client’s range, the user’s web-application will appear. After user is found to be within the client’s range, the user’s web-application will appear.
Web-Application All users will have this application on their Personal Server. All users will have this application on their Personal Server. Executed after authenticated through client. Executed after authenticated through client. Written in PHP, and is unique for each user. Written in PHP, and is unique for each user. Includes list of user’s tracks and playlists, and allows user to play or queue tracks on the client machine. Includes list of user’s tracks and playlists, and allows user to play or queue tracks on the client machine. Streams files across Bluetooth to client’s MP3 player. Streams files across Bluetooth to client’s MP3 player.
Example Scenario
Single User Trivial Case: Only one client device in valid range. Trivial Case: Only one client device in valid range. Client machine detects user, grants authorization, and user is given full-control of machine, without interruption from other Global MP3 users. Client machine detects user, grants authorization, and user is given full-control of machine, without interruption from other Global MP3 users. Complex Case: Multiple clients in valid range. Complex Case: Multiple clients in valid range. User must have a way to choose between two machines. When a machine is designated as the user’s preferred choice, then all other clients should be inaccessible until the user logs out out of initial machine. User must have a way to choose between two machines. When a machine is designated as the user’s preferred choice, then all other clients should be inaccessible until the user logs out out of initial machine.
Multiple Users Only one machine in valid range. Only one machine in valid range. After authentication through client-app, a unique web- application will appear for each valid user. After authentication through client-app, a unique web- application will appear for each valid user. Users able to queue songs on client’s mp3 player. Users able to queue songs on client’s mp3 player. Similar to jukebox effect. Similar to jukebox effect. May also want to give a user complete control of client, and disallow any other users until the machine is free again. May also want to give a user complete control of client, and disallow any other users until the machine is free again. Multiple machines in valid range. Multiple machines in valid range. Each client will detect all valid users. Each client will detect all valid users. After users specify their intended client, all other clients become fair game. After users specify their intended client, all other clients become fair game.
System Setup Client Machine Needs the following: 1.Client App 2.MP3 Decoder First calls client application and authenticates user Client App Spawns web application for validated user. MP3 player User queues tracks to client’s MP3 player Client executes MP3 player Web Application
Test Cases Stream an mp3 from user’s Personal Server over Bluetooth. Stream an mp3 from user’s Personal Server over Bluetooth. Forward, Rewind, Pause, Stop a streaming mp3 Forward, Rewind, Pause, Stop a streaming mp3 Add/Remove a remote location address to the playlist from one or more users. Add/Remove a remote location address to the playlist from one or more users. Remove the entry from the playlist when mp3 ends or PS is out of range. Also remove any queued tracks after user logs out. Remove the entry from the playlist when mp3 ends or PS is out of range. Also remove any queued tracks after user logs out. Stream from one output device to another device continuously without any interruption. Stream from one output device to another device continuously without any interruption. Able to remember current playlist, track title, and song position. Able to remember current playlist, track title, and song position. Able to select from multiple output (client) devices if they are all within valid Bluetooth range of the Personal Server. Able to select from multiple output (client) devices if they are all within valid Bluetooth range of the Personal Server.
Current Design Issues Create a PHP (or JSP) script that sends only a remote location address entry to the playlist. Create a PHP (or JSP) script that sends only a remote location address entry to the playlist. Look at Andromeda script as a base and add necessary features. Look at Andromeda script as a base and add necessary features. Likely will use JSP, since can assure full functionality and flexibility on the Personal Server’s hardware architecture. Likely will use JSP, since can assure full functionality and flexibility on the Personal Server’s hardware architecture. Winamp or any other MP3 Player to add a remote location address entry. Entry should be removed when the mp3 ends or PS is out of range. Winamp or any other MP3 Player to add a remote location address entry. Entry should be removed when the mp3 ends or PS is out of range. Download the Winamp API and add necessary features. Download the Winamp API and add necessary features. Select multiple output devices. Select multiple output devices. Create a JSP web-interface that allows us to connect to a specific client device after being discovered at Bluetooth stage via the client app. Create a JSP web-interface that allows us to connect to a specific client device after being discovered at Bluetooth stage via the client app. Streaming from one output device to another device Streaming from one output device to another device Need a way to keep maintain information about stream, song title, and user’s playlist. Need a way to keep maintain information about stream, song title, and user’s playlist.
Further Considerations Securely handling multiple users on network may be problem. Securely handling multiple users on network may be problem. Too much security limits user interaction with system. Too much security limits user interaction with system. Lack of security creates privacy issue amongst various users. Lack of security creates privacy issue amongst various users. Ability to automatically detect all devices within Bluetooth range. Ability to automatically detect all devices within Bluetooth range. Possibly implement some file-sharing model between users logged in the same machine. Possibly implement some file-sharing model between users logged in the same machine.