I set out to do the following:
1. DETERMINE THE PERSON’S MOOD
2. PLAY SONG BASED ON THE MOOD
3. GIVE FEEDBACK ON HOW WELL THEY ARE DOING SINGING THE SONG
However...these 3 things are incredibly hard for a newbie coder to accomplish. I spent several weeks toying over what technology to use to make Mood Karaoke.
I started in processing, looking to use an opencv type interface when I came across code that someone wrote called P-smile, a smile detection code that displays how much the person is smiling.
I thought I could pair that with an if statement to start karaoke.
I started with if the person is smiling then start playing a song. Then I went to write code that if the person was smiling play beyonce and if they were not smiling play Celine Dion and I had success!
I started looking for similar type code in OpenFrameworks, but I was not understanding all the code although it was similar to processing. So about a week or so later I decided to stick with Processing.
My next hurdle was to make karaoke. One Saturday I went to a Music Maker Hack and was asking talking about making a karaoke player. One of the guys in charge suggested I look up .lrc files to use.
I never heard of an .lrc (lyric) file, so I was curious about it. I looked all over the internet to know if the technology could support it, but I couldn't find anything.
I opened up the file and saw that the timestamps were in brackets along side of the words...so I thought if I could just split the two items then I could somehow sync the lyrics with the time. This was done with a class object.
The data was split between bracket and words and then further split in the time slots.
Then code was written to sync the time and lyrics and additional code was added to play a song and change it randomly if a key is pressed based on a playlist. The user can add as many files as they want.
Lastly I wanted to experiment with data vis and music file I did previously with Beyonce.
So then I found myself with 3 different Processing files...and then the hard part...hacking them together so they work.
I then regretted using processing since I can't tell what is wrong where! ARGH!!! It was taking forever to find things that were not letting the code run properly...
I got the screen going, but it wasn't working with smiling then playing the music.
Next I added in some music visualization and while it was working, I didn't have much time to finesse it further and make it pop visually. (I'll be adding it to my next steps...Yes the project is technically done, but I want to get working the exact way I intended, so THERE ARE NEXT STEPS.)
So after doing all this hacking...I realized I had music playing with the artist voice in it! LOL, so I spent a lot of time finding instrumentals to update the .mp3s with and cleaning up the .lrc files because some of them had plain junk and would be displayed if that song was chosen.
What I ended up with was a karaoke where users can view themselves singing karaoke (see video below):
Code can be found here: https://github.com/Creatifcookie/creativecoding-git-test/tree/master/Final/testsubtitles_2
Next steps that I want to accomplish:
1. Create an intro title page
2. Have the lyrics morph while they fade away
3. Add data vis for the audio input