Music Blog Post:

Trying Beats Music again for 30 days, and writing a barebones JavaScript music player - funding welcome!
7/1/2014

Post Below
7/1/2014 - Trying Beats Music again for 30 days, and writing a barebones JavaScript music player - funding welcome! (Music)

    Hide/Show:


   ▲ Top  ▼ Bottom  △ TOC
Trying Beats Music again for 30 days, and writing a barebones JavaScript music player - funding welcome!
Tuesday, July 1st, 2014
03:57:27 GMT

Music

I decided not to accept the free 60 day trial of Beats Music* given to MOG* users. I refused it because apparently putting in credit or debit card info was required to get the free 60 days, and I'm still trying to mostly boycott credit cards (even though I occasionally make exceptions, like I did for MOG, since MOG didn't accept PayPal), and also, the billing errors I read about on the Beats Music support forums made me even more wary of giving Beats credit/debit card info.

If not for those billing errors I heard about, I probably would have done it, since it wouldn't have given a credit card company nor Apple* (which owns Beats Music) money if I canceled before my free 60 days ran out.

But, I didn't want to deal with the stress of knowing a potentially glitchy system has my debit card info. I don't even trust not-so-glitchy systems with my debit card info, because in my opinion, credit/debit cards seem to have really inadequate defenses against identity theft, etc. I believe credit card companies could and should do a lot more to protect their customers from identity theft, fraud, etc., and it's despicable for credit card companies not to.


I made some effort to try to get the 60-day Beats Music trial without a credit/debit card, but, alas, that didn't work out. After some contact with Beats customer support earlier this month, I got the mistaken impression that if I bought a gift card for Beats Music from Target, putting in credit card info wouldn't be necessary.

But alas, after I got a Target gift card for Beats Music on eBay and used it with Beats, Beats customer support told me I still had to put in credit card info. Oh, well.

So, from the gift card I bought, I got 30 days of Beats Music, which I started late on June 26th.


It turns out the Beats Music web player is still about as bad and feature-deprived as I remember it being in January/February 2014.

But, I've actually been enjoying my Beats Music trial, because I've been playing with the Beats Music Developer API.

In just a few days, I already managed to put together a very basic, barebones JavaScript music player which I already like much more than Beats Music's official web player. Though I definitely can't take all that much credit for it - I stand on the shoulders of giants. For example, the actual sound-playing part wasn't even built by me at all, but is instead handled by the JavaScript library SoundManager 2.

It's not ready for release yet, though. I need to figure out what kind of copyleft license(s) I can put on it, and also try to keep the web player code as separate as possible from code related to specific music streaming services.

I'd like to make it so it's easy to switch to using a different streaming music service. Spotify and Rdio both have APIs too:

https://developer.spotify.com/

http://www.rdio.com/developers/

However, if any of these streaming music services' APIs' legal terms are too obnoxious or grabby, then, I might have to release my player distinctly separate from any code associated with those music services.

At the very least, I will probably be able to release a simple free, libre, open source JavaScript music player that will play MP3 files, and could be modified to work with other things, like streaming music services.

I hope I'll get it releasable soon, and also hope that my and my family's financial issues won't pull me away from finishing it. Donations or microdonations or purchases of goods (none available yet) or services are very welcome!

And if Beats Music, Spotify, Rdio, or some other company like that might perhaps like to hire me or buy some of my work, please note that I am extremely stubborn about wanting to write only free (as in freedom), libre, open source software. So, while I'm not against getting paid, I'm generally against selling exclusive rights to any of my work.


Anyway, in some ways, I actually already like my barebones player even more than MOG*'s web player, because my barebones player is faster, modifiable, and doesn't have MOG's #1 most irritating glitch, where everything would freeze up and the page would become unuseable for maybe 30-60 seconds. That glitch used to happen to me pretty consistently, maybe several times per hour.

I also already like my barebones player more than Spotify and Rdio's players. Spotify's web player used to work OK for me, but sometime in the past few months, became horrendously, intolerably slow in my usual web browser. Meanwhile, Rdio's web player is very, very slick, and I actually like it a lot - but, I love having total control over my player's interface, and being able to totally do without needless user interface special effects like things fading in and out instead of appearing instantly. It's also nice not having to load album art, etc.


One disadvantage of my web player is that it doesn't run in Firefox 3.6.13 (a really old version of Firefox I still frequently use in Lucid Puppy Linux 5.2.8 version 004), so I have to use it in Chromium 18.0.996.0 (Developer Build 116133. Also, I'm not sure there's way to make it run from a file:/// address in your web browser, so, I've had to run it on a web server, even though it's just a client-side JavaScript with no server-side code.

I wish I knew if my web player's audio quality is better than Beats Music's official web player (which is reputed by various users on both the MOG support forum and Beats support forum to have audio problems, especially in comparison to MOG). I think my web player might be a bit better, but I'm not totally sure, and haven't done any formal testing. My web player definitely doesn't sound worse to me - either the same or better. But I could be wrong.


The beatsmusic-node-rtmp script someone linked to from this StackOverflow page (in reply to a perfectly good enough question which didn't deserve to be closed by StackOverflow's overzealous moderators) was quite educational and useful, and I probably wouldn't have figured things out so quickly without it. Thanks to the author(s) of that!

Another thing which was educational (even though I haven't actually used code from it so far (Edit, July 1, 2014, 3:41 AM: I forgot, I did use and modify a couple snippets), and haven't yet been able to figure out how to make it work with Beats Music) was cashmusic.js, which is free, libre, open source JavaScript software from a non-profit organization called CASH Music*. Thanks to them too!

Like the beatsmusic-node-rtmp script, cashmusic.js uses the SoundManager 2 JavaScript library, which, if I'm not mistaken, can play audio via Flash or HTML5. SoundManager 2 is also free/libre/open source, under the BSD license.

I thought since both cashmusic.js and beatsmusic-node-rtmp use SoundManager 2, that might mean cashmusic.js could be useable with Beats Music, but, I can't figure out know how to make cashmusic.js play Beats Music's RTMP streams, and don't know if there's an easy way to do it or not.


One thing that wasn't so helpful was StackOverflow*'s reaction to this simple post of mine, formerly here:

Can cashmusic.js - http://cashmusic.github.io/cashmusic.js/ - be used to play Beats Music music streams?

If so, how?

Thanks!

It received -3 votes, no answers, and 5 people put my post "on hold" for the questions supposedly being too broad. I edited it a bit, but in the end, I decided the answers (and waiting around for StackOverflow to remove the "on hold" status from my post) no longer really interested me, and I also dislike the idea that on StackOverflow, people could potentially edit my question posts and make it look like I wrote things I didn't write, so I just deleted it.


Happily, I surprisingly quickly figured out how to make make my own versions of everything that I thought I was most likely going to have to use cashmusic.js (or something similar) for - a song progress bar, song duration, and real-time updating of what time you're at in the song.

I managed to do this thanks to cashmusic.js itself, and also thanks to various educational posts and snippets of code I found by searching the web - which actually probably usually came from StackOverflow, which is still a useful resource despite its often rather overzealous and misguided moderation policies, and its total uselessness when I asked my questions above, the first questions I ever posted there.


Anyway - as usual, for financial reasons, I can't really afford to put that much time into my barebones music player (or anything else that interests me if it doesn't seem likely to make money somehow), so, I'm hoping I'll be able to make something releaseable in the next few days. I apologize in advance if it turns out I can't achieve that.

(Edit, 7/21/2014, 5:52 PM EDT: I released a basic player here: Astroblahhh Basic MP3 Player Version 1, in JavaScript.)

If you liked this post or found it useful, or would like to make it easier and less stressful for me to complete and/or release my barebones JavaScript music player, donations or microdonations or purchases of goods (none available yet) or services would be much appreciated!

Ideally, I'd like to somehow make at least $2400 a month, which is apparently around what my 4-person family needs to cover our expenses each month. Probably if I were living on my own in a small apartment, I could get by on far less than that, like maybe less than $800 per month. But, I don't actually want to move out - I'd rather just be able to afford to move out, and have a massive amount of savings built up, so we don't have to live in fear anymore.

If any rich person or people, or large multitudes of people sending smaller donations or microdonations, would like to rescue me and my family from having to worry about money all the time, that would be awesome. Thanks!


Click this link to display the blog comment thread hosted at the Eryss.Com Forum:

   ▲ Top  ▼ Bottom  △ TOC


    Hide/Show: