Sunday, July 26, 2015

Band linking web app proposal


 This is no longer a proposal but a fully functional realeased project.  For more up to date info on this project see: https://github.com/sacarlson/song-list-rank/wiki

This  now remains only as a historic document that shows the first planning stages of the project.

This is a proposal to create some  webapp software  to help bands organize what songs they want or can play together in real-time and later help find new local band members that play the same songs your band likes to plays.  As far a user is concerned it will just be a website on there browser.

This is an idea that came to me after dealing with my attempts to help organize a group of people in a new band to figure out what we wanted or could play together. We originally started by at least getting our group together on a group chat channel to discuss what we wanted to play and exchanged youtube links of songs that we liked so others in the band could listen and feedback weather they liked it or didn't or if they could play it or not. After a while we had lots of song links spread over days of chatting about some of them and forgetting others we had already discussed before. So what I first did was go back over what all we chatted before and collected all the youtube files and again pasted them on the time-line of chat that we were presently chatting about and said OK which of these do we now want. Some of the songs most of us didn't remember so we would have to start playing them again to even know what artist or song it was and we still didn't come to any conclusion of what we all wanted to play. So what I thought might make this work would be this:

I would create a website that each of the band members could add any number of songs to a list that everyone could see all the changes that everyone made in real time. This list would include:
band members name that suggested the song, the artist name, song name, youtube link.
Each line of songs would also have a vertical check mark box that each band member could check off or a symbol that would include , they like it, they don't like it, they can play it, they can't play it, and maybe a few more symbols. With this at a glance the whole group will see what they could play together or not or see if they had anything in common or not.

In later development in the software this data that is collected above in a mysql database could also be used if more than one band that was doing the same thing linked there data to all the local groups in the aria or world groups so that band members could find a better fit in anther group or band of people to play with in a local or world band if playing with something like Jamulus.

I tried to looking for something like this already on the Internet but failed to find it. Maybe I just didn't look long enuf. So before I continue I would like others to point me to something similar before I start this.

I already have the first test version of this website now running that doesn't have all the planed features yet but gives you an idea of what it will basicly look and feel like when it's done.  see: http://wesuk.ddns.net/

The first version doesn't even ask for a nick name.  anyone can add, delete or edit song link lines to or from it.  The ranking system is also now integrated into the system that auto sorts the list by the bands avg rank if you select the optional sort page http://wesuk.ddns.net/sort_list.php default view is sorted by when it was entered into the system. later we will add admin functions so not everyone can delete and edit things.  and later we will add the other planed features discussed here.  The above link can't handle much traffic so may not be up all the time.  I also continue development so might be bugs that show up.

I estimate the first fully functional very simple website app that I could create would only take me a few days but it won't be pretty. It will be bare bones with nothing fancy so it just works and is simple to use with virtually no security or membership features to start. It will be simple if anyone knows the name of the website of the app, they can simply add there nickname and be in the band much like simple IRC bridge websites work that would  look like this:

After you submit your nickname and band you will be sent to the song list page that looks  like this:


This is the first version of the  play list that you can click on youtube links to hear what they sound like and play the video.  Note the link at the very top left "add new song"  click that and you will get the screen bellow to add new songs to the list.

For a band member to add a song they would hit the "add new song" link and would see a simple form like this one:


  Note it's just 4 boxes with song name, artist, youtube link and  rank number 1 - 5.  when the info you want to share is filled in the member would hit the submit botton that would add a line to the song list.  Note you don't have to file all the boxes or any for that mater to submit a song.  You will then be redirected to the song list to view the new updated list.  Remember more than one person on the Internet can edit it the list at the same time so more things may apear with a refresh than you might expect.  Note the 4th rank box is no longer used so just leave it blank.  Use the group ranking links instead under your name on the list.

. In the future other programers will have to add the needed eye candy to make it look good with background images and things to make it popular in the modern worlds view and interface it to the likes of facebook and or G+ or some totally new social networking system.


Other Planed methods of group ranking
I have other plans other than simple average of rankings that we now use in posible future additions.  It might be something like this later: The total ranking number if none of the members ranks the song as 1 is the total average of all the members rankings for that song
if any member ranks a song with a 1 then the ranking will be the total average of all the members that have not ranked as 1 * (times)  each player that ranked 1 with be a multiple of the total band members reciprical or in this case 1/5 or 0.2 .  what I guess I should also add is if parts of the band have not yet ranked the song yet but not sure what to do in that case yet.


The ranking numbers can be thought of as this:
0. unranked default value (no effect on rank)
1. hate it or can't play it
2. can't play it but maybe can learn
3. want to learn to play it with this band
4. can play it
5. love it and can or have played it already in a band

We could make ranking range from 1 - 10 later if desired.

In the sample view above it's just a speadsheet but on a browser the youtube links would be clickable to be able to view the song for the other members of the band to check out before they rank it.

Future aditions
One thing I was thinking about was to a least add a play list export so it would play or export a list that would be downloaded or ported to some kind of player.  I know youtube supports play list so I will have to look into what format they support to allow importing or auto creating playlists in youtube.com

Tecnical plans
I presently plan to write this in php code that will run on an appache server with a standard LAMP install.  It will first reside as a test on one of my local websites that I keep on my local linux system.  It could also be written in ruby or python or many other such programing languages if we find a need.  I might add some ruby links to the php at times if needed as I'm better at ruby programing than php.  The database will be in mysql with supporting apps also linked into the package like phpmyadmin.  It could be designed to install as a deb package in ubuntu or debian dirivitive but also could be just a ziped package that is uploaded to an already running appache LAMP hosting system.   The software will be published on my sacarlon github account as open source as most all my projects are for others to use and improve upon.