Friday, October 22, 2010

js.music 0.1 release

0.1 still isn't quite as far along as I'd hoped it would be. I had some hiccups getting Git to work(yes, it got MUCH MORE COMPLICATED) but now it all seems to be good. I have music.js located right here. So far I've plugged the Scales¬es.js from Bloop into the spots where I THINK they might go. This data and the js.music template were provided by F1LT3R. The goal is to get bloop to use Music instead of Scales¬es.js.

I've produced the following demos as well:
Jupiter Approach
the file is named 'third' because my first one simply played a song in a browser. My second one was a godawful mess that got scrapped. This one, as I mentioned previously is based on a previously existing DSP demo. My changes put all the variable initialization inside the onAudioAvailable and onLoadedMetaData events. Previously it was hard coded.
Fascination
This one was much harder. After a few more attempts, I finally finished this, which uses beatdetektor and causes text inside the div to pulse.

0.2 will require more research(Research was a major portion on 0.1, the links to my resources are provided in my last post). I really need to remind myself about keys and chords and all that other music related information that has hidden in the darkest recesses of my brain from disuse.

for 0.2 I hope to add more meaningful contributions to music, and build a few demos of my own. I've already resolved to work much more openly, since all of my successes came when I actually spoke up in IRC.

I'm also going to try and build some popcorn demos using beatdetektor. (ie, play a music video and do crazy stuff to it on the beats.)

-Pete

Thursday, October 21, 2010

My new demo

ALRIGHT, I finished that little thing I mentioned earlier just now. And yes, going on IRC and actually speaking up helped quite a bit.


Basically, I took this demo and used it as my template(I removed all the webGL stuff). When I asked about it on IRC, the fellow who'd made these demos and wrote BeatDetektor was actually there to answer questions and explain how it worked... which was... awesome...


So this whole thing turned out pretty good. I can make it a bit more sophisticated later. For those who may be interested, the link is here.

I've also uploaded the first demo I got working with audio data API and it is here. This demo was just me pasting whatever song I wanted into an existing demo and automating onLoadedMetaData event so nothign was hardcoded.


The best part of this whole thing was when I thought my audio processing loop didn't work... so I put in a window.alert to test it thinking it would STOP the page. Instead it produced hundreds of alert windows. After that I knew it worked.


-Pete

More sound related stuff.

Shortly after my last post I got that demo I was trying to do working. Alright! It's a bit funny still... sometimes it sounds like the songs sort of 'doubles up', one instance of the song ever so slightly ahead of the other.

This stuff, I'm finding now is really quite overwhelming, and my 0.1 release is going to be very very underwhelming unfortunately. Most of the work I've done I just end up scrapping because it just doesn't work properly. Anyway, these are things that can be remedied by simply asking the right person and I've just sort of been trying to do all of this work in a bubble, which hasn't served me too well.

OKAY so anyways, the next demo I'd like to make, which I'm working on just now, will basically play a song (a .ogg file, as I learned last week) and by also using BeatDetektor.js, I'd like to make text on the page kind of 'pulse'. Maybe after that I can turn it all into a bookmarklet that can be run on any page. And music.js can be used to make the music that feeds beatdetektor and changes the text? Lofty ambitions for someone who has only just recently made an ogg file play in his browser!

-Pete

Friday, October 15, 2010

Today I learned...

There is a difference between wordpress.org and wordpress.com.

Wordpress.org is open and fun and you download the wordpress software and host it somewhere and you have this amazingly customizable content management and blog system that is free. Wordpress.com you simply sign up and if you want to customize things... there is a cost.

Anyway, there is now a wordpress up for the project I'm working on for YorkU, so for those who are interested it is here.

Fun with Audio tag

Hello every one.

So, last night I was looking at the Audio Data API and I figured I'd play around a bit and just try and get a song playing in my browser using the HTML5 audio tag. It took FOREVER because I didn't know that Firefox doesn't support mp3s in AUDIO. It makes sense now that it's been explained to me(Apparently it's a licensing issue and would break Mozilla's open source policy) but last night I was rage-facing like crazy ( ie. "WHAT THE HELL IS AN OGG FILE?!?!")

Alright, so I downloaded this mp3 to ogg encoder and I was on my way.

My next step was to take this Totally awesome demo and insert a song of my choice into it. This meant downloading a few javascript libraries(dsp.js, processing.js, init.js and jquery.somethingsomething.etc) Still didn't quite work.

In order to run this demo LOCALLY on my machine I have to change a variable in firefox's autoconfig by going to about:config and changing security.fileuri.strict_origin_policy to FALSE.

Finally, after some input from Dave Humphrey it seems like my next step is to ensure that the right encoding information is loaded into the demo. Currently sampleRate and framesize is hardcoded, and not the same as that of the song I was going to use. So I'm going to make sure that information is drawn from the file instead of simply hardcoded. Then I can spin Q and F dials on ALL MY FAVORITE SONGS.

-Pete

Wednesday, October 13, 2010

I've got to get a gig on Git.

As is so eloquently explained in the title of this post, I have exposed myself to the world of GIT. My repository isn't QUITE a gig yet, but these things do take some time.

This process of starting a repository and getting git working on my system was built up to be quite difficult, but I actually found it much easier than going through hg and building Firefox. It took maybe 30 minutes(as opposed to... hours...).

I started my journey with Git here and after signing up(for the very fair cost of zero dollars) I was provided with very detailed instructions of how to create my SSH key and how to begin my first repository. The fruits of my labours can be found here.

The readme file is empty. BUT it comes with a very special message: "My very first commit".

Tonight I'm going to finally get cracking at music.js so I can put something awesome in a new repository. Getting started on these things is always the hardest part, but once the ball is rolling... Oh my yes.

-Pete

Friday, October 8, 2010

My ongoing firefox build saga

Last night I was trying to get firefox to build on my machine, and for whatever reason I thought it just wasn't working. Well, today I found it 'why'. It's because I wasn't finding the right binary file. I came home today after learning of its' real location, found it, clicked it, and now I'm updating my blog from my very own version of Firefox, built right here on my computer.

SO, after going through your make, my firefox.exe is located here(results may vary)

c:\Users\pete\src\obj-i686-pc-mingw32\dist\bin\firefox.exe

I assumed it simply didn't work because:
a)I was clicking the wrong .exe
b)I assumed the worst when 'Make' didn't give me a friendly "Firefox build was successful" message
c)The error messages I was getting later were because I was running make in the wrong directory


Oh, silly me.

-Pete

Thursday, October 7, 2010

Firefox building.

Yes. On Tuesday we were tasked with downloading the source code for firefox and building it. It actually wasn't too hard to start, once I'd actually dug into it.  Here's a good launch pad for anyone interested in starting this tonight. (start now, it'll be done by tomorrow morning...)

So I installed Mercurial and connected, then downloaded the newest source for Firefox 3.6 which took about 2 hours due to strangely horrible internet connection.

And actually, getting into this was pretty easy, the directions are pretty clear and my stumbling point came about 5 minutes ago when I realized I had a version of Visual Studio that apparently can't compile Firefox 3.6... I have Visual Studio 2010, and the make command cries "c++ compile cannot create executables" and then tells me to correct the error.

arrrrggghhh

In other news, I now work in the TEL building here at Seneca/York working on an open source project called OpenVULab, which is a web accessibility  research tool! Right now it doesn't look like there's much on the web about it, but I'll be tweeting about it here so please feel free mosey on over and have a read. This project will have a bit more presence on the web after I've been working there for a bit!


Anyway, time to work out firefox.
-Pete

Thursday, September 30, 2010

OSD600 Audio Data API project

This semester I'll be working with the ever expanding Audio Data API which is used to augment the way we currently use the HTML5 audio and video tags. At the bottom of that page are a whole pile of samples that use this new API, and they're just... so cool. I chose to work on this because it's just very new. It's exciting to imagine that I'll be working on bleeding edge web technology. I feel like expanding an web audio API is sort of a frontier area with lots of room to find a niche, and lots of room to find gaps that need to be filled. That, and for many many years I've been interested in working with audio and just never gave myself that 'kick' to do it.

For those who'd like to follow my progress, my project page is located here. Everything I ever post in there will be linked to or cross-posted in this blog though.

As my '0.1' release, I'll be hacking up Bloop to use music.js. Doing this will get me into javascript again, and really let me figure my way around this API. Following that, I'll have a much better idea of where I can fit into this area. Obviously my work won't stop with rewriting an existing demo; by the end of this semester I'm hoping to have contributed something actually meaningful and useful to the Mozilla community, and to 'the internet' in general.

Areas that I'm told I may fit into are: extending dsp.js - an audio library used for 'D'igital 'S'ound 'P'rocessing and expanding on music.js by filling in some gaps that exist.  Also, apparently bands and artists have approached the Audio Data API team requesting visualizations of their music. I'm sort of leaning towards working on this area.

Aside from David Humphrey, my contacts in this area are Al MacDonald and Corban Brook. I havn't yet talked to either of them, but I suspect I will soon. David basically filled me in on what areas need work, and pointed me towards the technologies I'd be working with. (Audio Data API, dsp.js, javascript)

So this is the part where I talk about the risks and fears I may have. Honestly, I havn't had experience with music and audio in a very long time. I'm OBVIOUSLY a little worried that I may be in a bit over my head. However, to be quite honest, all of these projects are very much NEW to everyone involved.
There are lots of risks going into this. It's new, and complex and I'll be working with people who have lots of experience in this industry and kind of secretly hoping to impress them. There's a lot of pressure with this project that doesn't REALLY exist in other courses, but those things are really what make this class and these projects exciting and inspiring. By the end of this, I'll have somethign amazing to show people, I'll have a foothold in the industry and an area to sort of call 'mine', and I'll have an edge on my resume. Knowing that stuff really mitigates any fears I may have entertained while jumping into this.

-Pete

Wednesday, September 29, 2010

Here is something cool I found.

Hello everyone! This is a link that needs to be viewed: It's some crazy javascript you put in your address bar that constructs a little spaceship that shoots HTML tags and blows them up. Works on ads, paragraphs, links, ALL KINDS OF STUFF.

IT'S SO COOL

here is the mother-lovin' link

-Pete

Tuesday, September 28, 2010

THIS IS PERFECT

Ah, finally I can hold my iPhone, iPad, AND my Starbucks coffee!
 
hmmmmmmm

JUST PEACHY!

Bug reporting!

Last week I joined Bugzilla so now instead of just complaining about bugs I can actually meaningfully contribute to a community by submitting bug reports! Here is my first submitted bug! Firefox rendered triangles in a weird way when compared to Chrome. The task set upon me by the Firefox gods is thus: produce a reduced test case.

SO, now it's time for me to brush up on my Javascript skills! It's certainly a new experience for me, using javascript for anything other than client-side validation. I was definitely not aware of just how useful and complex Javascript can be. How fun!

Also quite surprising to me was just how quickly I received responses from the Mozilla devs. Like, instantly my inbox was on fire with emails regarding this bug.

I'm 3 weeks into this class, and it's been very cool. If there are any other CPA students reading this, I strongly urge you to take this class in the future. Obviously other classes teach useful skills, but OSD600 actually connects you with a real development environment and with people who are in the industry working on important things. We also get the opportunity to work on bleeding edge web technology that people need and want. The work you'll do in this class will actually set your resume apart. Seriously, take this class.


-Pete

Sunday, September 19, 2010

Chrome Experiments and Minefield

Okay, so last week as a class we went and visited The Chrome Experiments  in order to assess which experiments broke or put the stress on the newest pre-release version of Firefox.

After downloading and installing Minefield, I started going through these experiments thinking 'Gosh, Minefield is exactly like regular Firefox... and all these experiments run really poorly'. It turned out I wasn't even running Minefield. Opening Minefield when some other firefox version is open simply opens a new window of that version. OOPS. Anyway, these experiments all ran about a thousand times better in Minefield than regular ol' Firefox.

There was only one that really crippled Minefield, and that was Pop-up Pong which is a classic PONG game that opens pop up windows and uses them as the paddles and ball. Works great in Chrome but woe-betide those who dare play it in Firefox. Get ready for a wild ride through glitch town if you want to click that link.

Also, because of this class I'm back on IRC, which I havn't used in like 10 years. Currently I lurk on #developers and #seneca on the Freenode and Moznet servers. My nick is peleaning for those who might want to /msg me.

Now all this talk about minefield has me thinking about Minecraft, which is free to play this weekend. Don't click that link if you value productivity.

-Pete

Monday, September 13, 2010

Blog resurrection

Hello Planet CDOT and OSD600 fall semester students! My name is Pete and I'm bringing this blog back from the dead to post about the work I'll be doing this semester in OSD600.

If you'd also like to read about my work in a few game design related courses then please feel free to click the following link where you will soon find a blog bursting with posts. Here is the link

Also, happy programmer's day!

-Pete