Mathieu Tozer's Dev Blog

Cocoa, the development of Words, and other software projects (including those dang assessment tasks).




KTV: Functional Specs


E-mail this post



Remember me (?)



All personal information that you provide here will be governed by the Privacy Policy of Blogger.com. More...



What the Mac needs is Karaoke. Sure, Garageband is great: for people who can play instruments, but for the rest of us uncultured swine, we need something that anyone can belt out a tune into, with idiot sheets, to the equal disturbance of our neighbours. What with all Macs shipping with a mic and camera these days, it makes for a perfect environment for Karaoke (KTV). This page hosts the Functional Specifications for KTV. So this is what is should do:

Program Description
The software will be a socially networked system which co-ordinates and manages an online karaoke experience through a desktop application. Broadly, it will co-ordinate online karaoke boxes, which users can join and sing their favourite songs in, and will also allow for the recording of karaoke, which can be entered in a potentially global karaoke contest. (Think Karaoke Idol). Ghastly - yes, I know, that's the point.

Functional Specifications
This is a list of features that the software should implement. It is probably dynamic, and will grow and shrink as I think of more cool stuff this beast could do. Implementation complexity to the wind! This is a creative space.

Recording Studio
Use their computer's multimedia capabilities (iSight / microphone) to record AV material as a song.
Participate as a group at one computer ('band' style), all entering their usernames to 'gain credit' for their performances.
Submit their recordings for review and viewing by other users.
Recorded songs can be posted as an entry into the online singing contest, which is rated and voted for by other users.
When there is more than one recording, the user can choose which recording of should be uploaded.

Recorded Video Browser

Be able to view other user's recorded video from a central repository (using google video's service?).
Be able to browse other user's video by ranking, popularity, song, language, country, karaoke-room.
"View other people who sang this song"

Online Karaoke Box
'Join a room' and take turns at singing songs of their choices (from their or their friends' library)
Rate other people's performances after they've given them.
Enable voice communication between performances.
Sing a song by themselves, or with friends, remotely as well as from the same computer.
Add songs to a queue.
Reorder the songs in the queue.
Stop a song you're currently singing.
Fast forward through the boring bits in a song (the instrumental part).

Be able to search for songs to sing via the on screen catalogue, and add it to the 'song queue' for that karaoke room.

Box Management
Create an online Karaoke box.
Set the options for that Karaoke Box
Limit the number of users allowed in one box.
Invite users to that karaoke box (from their friend list, or let anyone join)
Request other users to sing a song (song requests)

Karaoke boxes (rooms) can be set to themes that reflect the songs that are sung. These would usually reflect the genre of music.
Rooms can be selective about who can enter a room (Ie, elite singers! Professional etc).
Optionally allow other users to connect to a steaming feed of a karaoke box.

Managing Songs
Be able to drag a song from the song directory into their own library to download it (and have it marked as unsung)

Displaying Lyrics
The lyrics for the song should come up on the screen to sing the song along to (as per karaoke).
When the lyrics are in another language, the translated lyrics can be shown to other listeners as subtitles so that other users know what they are looking at (this will require some centralised lyric database with translations).

Comments and Managing Spam
Comment on other people's recordings / performances.
Manage Comments and other user feedback by flagging inappropriate and therefore for possible deletion.

Managing identities
Register themselves.
Edit their profile
Add custom user generated fields to their profiles

Additional Features

Users who are popular can become 'featured' singers.
Can view all users according to their ranking.
Schedule karaoke-time with their friends.
Add karaoke time to iCal.
Keep a list of their karaoke friends.
Be able to subscribe to other people's recordings.
Subscribe to the 'best-of' and 'worst-of' KTV through a vidcast available via iTunes

Lyric Database
Songs will come from a centralised database of songs which have the lyrics attached and possibly certain themes attached to them.

Use an open user generated Lyric Database.
May need to set the lyric transition timing themselves if they have not already been set.

Audio Controls
Adjust the audio levels

Effects
A library of effects will be available to the user to put on top of the video stream or recording in real time or post recording / Have interactive layers that the user can play with via the iSight.
Be able to theme the colour of the fonts. (through a NNW style theme selector).

Uploading
The audio and video quality can be adjusted to meet bandwidth requirements in the live karaoke, but will be set to a set of standards for the recorded submissions. Use a skype API (if available) for A/V communications. For online storage, outsourcing storage to Youtube or google video might be good.

The system should
Disable networked features when no network is available (The system will facilitate all of the above requirements from within the application whether the computer is connected to the internet or not.)

Possible ideas
If a user finds a video clip online, they could do 'reverse-drag-from-home' by singing in place of the singer in the video, and the Karaoke goes over the top. Could be fun.

//These are the strings that documented the original brain wave //
Wouldn't it be fun to have the whole world in a great big online singing contest!
nettokara!
It could be an online Idol competition hosted through iTunes.
Language specific competitions.
Global Idol kind of thing!
--
Also - I don't pertain that this is by any means an original idea!

So that's basically at a high level what I think the system should do. Sound exciting? You only have to take a casual glance at any of the major video sharing services out there to see that people are already making fools of themselves as it is! We should make it easy and fun for them to do it and at least a bit socially acceptable.


0 Responses to “KTV: Functional Specs”

Leave a Reply

      Convert to boldConvert to italicConvert to link

 


+RSS | dev blog | Portfolio

About me

My status

Previous posts

  • my del.icio.us
  • my flickr