AutoKDJ Technical Roadmap
From AutOKwiki
(written by Zug)
THIS IS WORK IN PROGRESS! Please make edits and changes as you see fit!
When making edits, use the term QUESTION when there is something that is unclear or that needs consensus or comments from others. Use this page to do the discussion on open questions. -> AutoKDJ OPEN QUESTIONS
Delivery Plan:
I think we have to deliver this in stages:
DONE: AutoKDJ Server + Prototype Terminal + Existing Song Database IN PROGRESS: Above + Central Public Terminal Above + Karaoke CD Burn Feature
Above + Karaoke Song Download More features as stuff comes together Package the whole damn thing for franchise
IMPORTANT POINTS It's really important that we design this thing with scalability and mobility in mind. We're doing this for the Boo, but not just for the Boo, so we shouldn't just hack together a system that only works at the Boo.
Stuff needs to be totally very well spec'ed out, so that it is easy to build duplicate systems. As this is a distributed team, we need to be able to all have our own copies of the system. Custom software installation should be easy or even turnkey, particularly by Stage 5.
Stage 1 Plan: DONE: Write a software algorithm to implement Karaoke singer "rules of rotation" This algorithm would be used verbatim in the final solution, and can be tested in isolation before committing to real code. Tweak and refine over time until we get it right Update: 5-11-05 - Zug: I have the first prototype written now.
I think it works as Toq described. The test program I wrote runs as a console application, no pretty gui, but that's how I like it! Need others to test and refine.
The program is here. Tutorial for how to use the program is here: AutoKDJ Rotation Test Tutorial
The algorithm is subclassed in C++, so it can be easily migrated to our final target. If someone wants to write a pretty GUI around it, let me know and I'll provide source. (Toq, where's that CVS server???)
DONE: Get the terminal-server remote control operation. The basis of this remote control operation will be this plugin:
http://sourceforge.net/projects/mlwww/
When loaded, WinAMP becomes a Webserver, so its playlist can be controlled by a different computer via a web browser or posts to HTTP (port 80).
But we can't use this plugin as it is, as it was not designed for Karaoke or Song Requests in general. It is driven by a complex web interface, not a user friendly thing that can be put on our terminal. It also gives the user TOO much control, they get the whole transport, so they could actually stop the whole show!
Fortunately, this is open source, so we can modify it.
With toq's permission, I now have a continually updated prototype of the modified plugin on the 7 bamboo site here.
I have also been keeping a journal of my progress here, but the page got too damn long so I now have it here: AutoKDJ Remote Control Progress
DONE: Next step, KDJs try for a weekend
This is Alpha Test.
Customers don't queue their songs themselves yet. Toq still runs the whole show by himself But he only uses the automated system, no manual edits, unless something screws up
If Toq can't make the system work, sure as shit customers won't get it to work either. Perhaps even test the web-based prototype front end. We this did and found the system was too difficult for customers to use, particularly without the barcode scanner.
DONE: Refine the system based on feedback Stage 2 Plan: Get barcode scanner and learn how to program. Buy a prototype, figure it out... Anyone done this before? Update: 5-11-05 - Zug: Toq sent a Scantech Polaris bar code scanner and USB cable to L1quid, who says the programming is a piece of cake. I need to get one of these myself. Will be checking e-bay, or maybe Fry's.
Come up with a Ticket Authentication Strategy
How will song tickets be generated? How will song tickets be authenticated? How will user tickets be generated? How will this tie into the AutoKDJ system? Proposal here: AutoKDJ Ticket Authentication Strategy
Write a software prototype of Song Queue Terminal Program
Model exactly what a customer would need to do, what they would see, what questions they are asked.
Tweak and refine over time until we get it right
Make sure flow is quick and intuitive before commiting to real code. Functional Specification is here: AutoKDJ Song Queue Terminal Application Specification
Update: 5-11-05 - Zug: L1quid seemed keen on the idea of doing this.
Update: 5-26-05 - Zug: L1quid requested I write the spec on this. See above link.
ALPHA: Continue to refine the server remote control application based on feedback Most important that we update Server Remote Control application to meet the needs of the Song Queue Terminal Program
See: AutoKDJ Remote Control Progress With the above, a couple computers and a duplicate Karaoke system, we should be able to develop a working prototype AutoKDJ System. (Anything missing?) So, build it!
Next step, make it pretty Get one or two of our Internet fan overlay artists to photoshop us some nice GIFs and stuff It would be cool if this worked like overlays, where we used different imagery every week. Maybe even match the current overlay in the video! Next step, we install a true public terminal where BooChat lives This is Beta test.
Customers have the first opportunity to queue their own songs. QUESTION: Where does BooChat go? Customers give feedback by typing into BooChat, or talking to Toq or Woody or Zug or anyone else around.
Refine the system based on feedback Go to stage 3
Stage 3 Plan: MP3+G to CD Conversion Gather various freeware components that can do : DONE: ZIP file extraction PENDING: MP3+G to BIN conversion PENDING: BIN to CDR Burn
Write a software prototype of CD Burning Terminal Program
Model exactly what a customer would need to do, what they would see, what questions they are asked.
Tweak and refine over time until we get it right
Make sure flow is quick and intuitive before commiting to real code. Functional Specification is Here: AutoKDJ CD Burning Terminal Application Specification Stage 4 Plan: (incomplete) Write software to do PayPal exchanges and file downloads
Anyone done this before? Others: (incomplete) Figure out if/how we want to do the auto mic level adjust feature I recommend not doing this unless we upgrade the sound system somehow Under discussion, see AutoKDJ OPEN QUESTIONS
Write software for terminal to interface to CDDB for Custom CD Scenario
Anyone done this before?
Update: 5-26-05 - Zug: BIG PROBLEM here. CDDB and FreeDB do not contain Karaoke CD entries. That means this whole scheme just won't work, unless we build our own KCD database. Toq talked about doing that. But there's no way we can get this done anytime soon. Moving it out to next stage.
