PAS4i
Peer-to-peer Audio Streaming for iPod
Introduction:
Group communication offers a large application domain, e.g., voice and video conferencing, radio and television broadcasting, multiplayer gaming, etc. and has attracted much attention in commercial deployment, as well as in academic research projects. While IP Multicast minimizes the network traffic, but suffers from limited deployment, Application Layer Multicast offers an alternative solution for content distribution, and is operated on an overlay Peer-to-Peer network. Many communication and entertainment platforms (e.g., Skype, Zattoo) use ALM to offer their services. With the increase of hardware resource, decrease in size, and the WLAN support in small electronic devices (e.g., SmartPhones, PDAs), it is now possible to deploy ALM on handheld devices. This work is an attempt to bring ALM for audio live streaming onto the iPhone and iPod Touch. The software allows users to self-organize an overlay P2P network, to subscribe or unsubscribe to a streaming group, to establish any personal streaming group for multicasting music or live performing karaoke music. Any user - when subscribing to this group - will be able to receive and listen to live stream karaoke music.
Application usage scenario:
Supposing the color nodes on the map are users that are currently running the PAS4i. These users are together on the PAS4i overlay network. In this overlay network, there are a number of existing user created streaming groups, e.g., CNN and BBC. Supposing that the navy blue user in Australia is playing and streaming his music to group CNN (tape icon). All subscribers of group CNN will receive and be able to playback this music stream (music icons). Supposing that the violet user in Latin America is singing karaoke with a background music and send her live performed karaoke stream to group BBC. All subscribers of group BBC can listen to her live performing music. The background music can be a local music file, or it can be the receiving music from the streaming group CNN.
Technologies:
The Three-tier Dabek model, Pastry overlay P2P network, Scribe Application Layer Multicast, Core Audio API of the iPhone OS.
Software concepts:
- Use case:
- Functional units
- Communication protocol at source senders
- Communication protocol at forwarders and receivers
- GUI design
Current state of implementation:
This project is developed under xCode on MAC OS X. Most of the code is in C. The GUI is in Objective-C.
Key-based Routing overlay network: using Chimera open-source (similar to Pastry) (link...)
Scribe implementation: group create, group join, group leave, multicast message dissemination
Audio processing on the iPhone:
Other libraries:
Future work:
For the future work on this project, the following improvement can be considered. Firstly, the tree repairing function of Scribe including the replication of group state information on RP nodes to their leaf set nodes needs to be implemented. Having this, the streaming tree can operate and be robust under peer churn. Secondly, a suitable codec should be used for the Karaoke stream (currently in PCM). Since the iPhone OS provides only MP3 decoder and not encoder, Apple also warns that the MP3 encoding process would be expensive for the battery resource, and MP3 codec is not free, so that other codecs may be in consideration (e.g., Ogg Vorbis). To make the PAS4i more interesting and an interacting entertainment platform, one could add more functionalities to it. Sophisticated audio processing can be applied to produce good music, e.g., changing echo, key tone, etc. It may allow that the source senders send meta information about the singer (e.g., name, location, foto etc.), lyrics of the streaming song, and also allow audience to give feedbacks (e.g., grading, etc.) to the artists. A group communication function can be implemented for different purposes (e.g., voice chat, conferencing). The GUI needs to be improved. Since Skype claims that over 50% of residential computers are behind NATs or firewalls, in order to enable the PAS4i usage ability to a larger group of users, an approach for traversing NATs and firewalls should be implemented. To improve the streaming efficiency on which the QoS of playback partly depends, PAS4i should consider the proximity and heterogeneity properties of each peer on the overlay to construct efficient streaming trees, e.g., the fan-out degree of a peer, or the peer selection not only depends on the key, but also considers the power resource and bandwidth properties, etc.
PAS4i at the Night of Sciences event (07.11.09 - HAW Hamburg):
- Introduction slice to the visitors
- Node joining to an overlay network, and creating streaming groups
- Singing karaoke and send the stream to a streaming group
- Explaining the working concepts to the visitors
I have a dream:
When having all these features, PAS4i would be a very promising entertainment platform that would attract a huge number of users worldwide. The idea of having a live or achrive audio/video streaming entertainment or communication platform, that it allows each user to create his or her own streaming channel, has been implemented in several existing systems, e.g., Youtube, Skype, USTREAM \cite{ustream}, Justin \cite{justin}, etc., but the idea that PAS4i would like to bring to its users is the ability not only to be entertained, but also to entertain, to interact between audience and artists, to create personal styles and taste that are all carried out in real-time and mobility. For an usage scenario example that PAS4i can bring, one can create some kind like a "Germany Next Super Karaoke Star" contest on the PAS4i network, where there are candidates, examiners, and audience around the world. The candidate singing, examiner discussion and comments can be streamed to all audience live. And the statistical votes and feedbacks for each candidate from the audience can be soon resulted and available to all participants.