TEAM 11: Party Animal: Rolling in the Deep
Spring 2011


MEMBERS

  • Will Sergeant (wbs)
  • Rajeev Krithivasan (rkrithiv)
  • Arjun Sinha (arjuns)

PROJECT CONCEPT

People have different musical tastes and appreciate different kinds of music. When they go out to a club or a party they want to hear music that they like.
Party Animal: Rolling in the Deep is a system that scans deep into a user’s music library and compiles a prioritized playlist based on song popularity. It then displays this information to a central screen. This screen tells a DJ about the popular songs on people’s devices and the DJ can use this information to select songs accordingly.


MOTIVATION

At a party or a club, people want to listen to or dance to a song that they like. It is very difficult to get an idea of what music everyone likes and often, the DJ ends up playing songs that he/she enjoys.
In these situations, it will be more beneficial for a DJ to be able to pick songs based on the audience preferences instead of his own.
Also, guests may not want to waste time making requests or voting on songs at parties.
Party Animals provide a link between music the people like and music the DJ plays, so everyone can be a party animal.


COMPETITIVE ANALYSIS

Pandora

iLike

TuneTug

Other similar services: Musicovery, StumbleAudio, Jango, etc.

The main difference between these services and Party Animal is that ours is an automated voting service that will select popular songs to play based on a user's library. This makes it even simpler for users to enjoy music they want to hear, since they don't need to continuously vote on songs (as with TuneTug), but it still provides customized playlists based on a group's preferences (unlike Pandora/iLike)


TECHNICAL SPECIFICATIONS

Hardware:

Software:

Protocols:


REQUIREMENTS

R1. The Android application shall obtain all songs from the phone's file system.
R2. Only phones which have the access code for the Bluetooth module shall be allowed to connect to it.
R3. The Bluetooth module shall compute a playlist based on information from all the phones that are connected to it.
R4. The music playing device (phone) shall play the song that the Arduino requested, then notify the Arduino when the song completes.
R5. The Bluetooth device shall continuously look for new devies that attempt to connect to it and update the playlist.
R6. The name of the current song and the playlist shall be displayed on the LED display.


ARCHITECTURE DIAGRAM




USE CASES

RISKS & MITIGATION STRATEGIES

Risk
Mitigation Strategy
Unable to read current filesystem from app
Save history of songs on app and send this to the Arduino
Bluetooth compatibility issues between Arduino and phone
Display error message on phone, attempt to connect again
Loss of power on board
Replace batteries
Parts do not arrive in timely manner
Can start working on app immediately using available phone
Phone leaves BT reception area
Arduino scans local area for Bluetooth devices, and will ignore phones that are not visible


TESTING CASES

- App-BT Test:
Aim: Fault tolerance of bluetooth connection between phone and arduino.
Application: Turn off bluetooth on the phone, confirm that an error is displayed in the app.

- Bluetooth Song List Test:
Aim: Performance of BT module if phone gets disconnected while song list is being transmitted to it.
Application: Turn off phone while app is transmitting song list. BT module should account for songs transmitted until disconnection and continue looking for transmissions from other phones.

- Phone Song Reception Test:
Aim: Confirm that songs being played by phone are the ones request by the Arduino
Application: Send song request from module to phone. Check that the correct song is played and that the Arduino is notified when the song ends. A update to the playlist while a song is playing should result in the playlist being modified on the laptop, but the current song will play until it finishes.

- Phone Not Found Test:
Aim: Arduino should not attempt to play a song that exists only on a phone that is out of range
Application: Sync a phone with the Arduino, then power it down. Ensure that the playback continues, without attempting to connect to the powered down phone.


TIME LAPSE

To be completed.


CURRENT STATUS

Prototype hardware (no display)


Android App receiving data


Bluetooth messages being received on laptop


Working project!


Final Packaged Product!


PRESENTATIONS & VIDEOS


Back to the top of this page
18-549 course home page