News on my Music and Projects

At some point, I’m going to expand the number of my songs available online at Fonte Labs to include all 195 of my recordings.
Right now, the “Web Audio Player” prototype for my MartiniJS music streaming framework has about a dozen of my original songs.

Also, I’ve decided to make the “OS Land” project an iOS app (and maybe Android at some point), using the PhoneGap™ framework.

I might make “OS Land” a web app again someday, but right now, let’s say… it’s a “closed beta” :)


Quick Update on my Projects

I’ve updated 3DFOE to work with the latest version of Three.js, the underlying 3D library (3DFOE uses three major libraries, along with a few polyfills and my own modifications).
Most of the demos for Three.js work with 3DFOE, with slight modifications to the way HTML5 Canvas elements are created.
The WebGL demos seem to work fine, in browsers that support it.

Also, I’ve made some progress on my “OS Land” project – the goal for OS Land is to provide an online developer environment, with support for mobile devices; in particular, the iPad is a top priority for testing compatibility. Storage for OS Land will mainly be through a 3rd party cloud storage system.


Introducing Fonte Labs – Experimental Programming Projects and Prototypes

I’ve created a new site at http://fonte.me/labs.

This new website will be the home to all of my new and experimental programming innovations and projects.
Once a project has reached a sufficient level of development, it will most likely be moved to its own domain. I may keep links to my finished projects on the Fonte Labs site.

My initial projects are:

  • My “Web Audio Player”, a prototype of a music streaming and download page for bands or individuals holding a copyright to their music. Essentially, this project is an early prototype of what I envision for MartiniJS and MartiniUI (the core music code and the user interface code, respectively). I will probably rewrite and enhance some of the code for the actual implementation, but I want to get a demo page up with the basic functionality.
  • While I have created a page for MartiniText, a CLI (command-line interface) to my music streaming library, it is a lower priority than the core music code (MartiniJS) and the user interface code (MartiniUI)
  • 3DFOE (3D For Old IE) – this project focuses on combining and enhancing various open-source libraries, to bring 3D JavaScript graphics to older versions of Internet Explorer (basically, IE8 and below). I have put this project on hold for a bit while I work on the Web Audio Player.

I have also started to look at developing Blu-ray apps, using Java ME and a Blu-ray recorder. I have some code I wrote a while back for accessing the Wikipedia API (and pretty much any MediaWiki-based site). My first Blu-ray app will probably be a way to browse and search Wikipedia on your Blu-ray player/TV. Like pretty much all of my projects, it will be open-source – though to use the code, you would need a Blu-ray recorder of your own.


HTML5 Web Audio API – EQ and Compressors

I dug through the official spec for the HTML5 Web Audio API, and I was thrilled to find that gain, low-pass and high-pass filters, shelf filters, and dynamic compressors were all included in the spec.

Apparently, only WebKit-based browsers (Safari and Chrome, maybe Chromium too) support the Web Audio API.

What this means is that MartiniJS will provide robust EQ or graphic equalizer functions, and audio compression (soft sounds will be louder, loud sounds will be limited or quieter). Sadly, this functionality will only be available to users browsing the web with Chrome or Safari.

I really hope that, at the very least, Firefox will support the Web Audio API. I’ll do further research on browser support, as my source for browser compatibility might be out of date.


More Details on MartiniJS

I’ve partitioned the MartiniJS framework into three components:

  1. MartiniJS – the core functionality for streaming non-commercial music, using JavaScript, HTML5, and either PHP or Node.js
  2. MartiniUI – the default web-based GUI for MartiniJS, based on jQuery UI and HTML forms
  3. MartiniText – a CLI or text-based UI for MartiniJS

I’ve pretty much finished the “download all” PHP code for MartiniJS, though it still needs to be polished a bit.

Next on the list is setting up my app on Heroku, so I can host a site based on Node.js. From there, I can work on developing both PHP and Node.js in parallel.


MartiniJS – My Non-commercial Music Streaming Open-source Project

I’ve put my 3D library, 3DFOE, on hold – to spend more time working on my non-commercial music streaming project, MartiniJS.

I’ll still allocate some time to developing 3DFOE, but I’ve always liked to have numerous projects and endeavors going on at the same time. In particular, I’ll wrap up the performance benchmarks for my 3D library fairly soon.

MartiniJS started out as a site for me to stream my own original recordings – all 195 of them! I only recorded two covers of other peoples songs, which I won’t be making available for streaming or download – with the covers, I’ve recorded 197 songs.

I decided to abstract some of the details of streaming music, so others can stream their own non-commercial recordings.

Please note that I will be incorporating a number of checks and verification steps with music metadata web services, to ensure all songs and albums being streamed or downloaded are entirely non-commercial.

For my own site, the technology stack is pretty much PHP, HTML5, JavaScript, jQuery, and jQuery UI – however, I’d like to experiment with Node.js for the server-side code in the open-source project.

I’ll be using the plist XML format for storing metadata about the tracks available for download and/or streaming.

More details will be coming soon!


Performance Figures for 3DFOE.js Coming Soon

Over the last week or so, I’ve compiled a number of performance figures for the initial release of 3DFOE.js, which is meant as a proof of concept.

Sometime soon, I’ll provide a link to the data in Excel 2007/2010 .xlsx format and Excel 2003 .xls format.

The tests were performed in both IE8, which uses Google’s Explorer Canvas library to simulate the 2D context of the Canvas element, and IE9, which natively supports 2D Canvas (but not the WebGL context of Canvas).

The computer used to run the tests had an Intel Core i7 quad-core processor, 8GB of RAM, and a 2GB Nvidia graphics card – I may add a slower computer’s results to the data at some point.


Review of O’Reilly Book on CouchDB in Progress

I’ve read about two thirds of the book “Getting Started with CouchDB” by MC Brown.
It’s a very interesting technology in the family of NoSQL databases. The interface to the DB is through HTTP requests.

I’m excited to experiment with a test installation of CouchDB – I’ll post my official review of the book when I finish the remaining chapters.


3DFOE.js Initial “Proof of Concept” Posted Online

I spent some time actually backtracking my JavaScript code to its earliest functional stage – the “3D For Old IE” project started out as highly experimental, so it wasn’t in a source control repository when I first created it.

I’ve put together a very spartan/simple sort of site to explain what 3DFOE.js is about, along with a link to the Google Code project hosting page for 3DFOE.

Please remember, the current version of 3DFOE is a proof of concept, and a very early version.  While the demo on http://3dfoe.com will render the 3D scene once on fairly recent computers, it will only be animated (when you click and drag on the 3D scene) if you have a higher-end processor.  Future versions will primarily be centered around fixing the performance issues, in particular, frame-rates for animation – plus adding support for IE7 and maybe IE6, instead of just IE8.

 

 


Announcing “3D For Old IE” or “3DFOE”

UPDATE: I’ve put together my initial code for this project as a proof of concept. My intent is to retain this functional but slow version for historical purposes, as the 1st version of the project. This initial version does not have performance enhancements. I will be uploading the code to the project page soon, along with a basic demo page.

In light of the growing need for cross-browser JavaScript libraries and 3D graphics libraries, I’ve spent my free time producing a JavaScript 3D library which brings web-based 3D to older versions of Internet Explorer – without plugins!

I am tidying up my code and creating an initial demo page; I hope to upload the source code today or in the next few days. Initially, I am focusing on supporting IE8 – I will add support for IE7 and possibly IE6 later on. Unfortunately, the underlying 3D graphics library does not currently run/compile in IE7 – I will probably have to rewrite portions of the underlying 3D code.

I am releasing this project under the Apache License 2.0.

You can follow along as the library progresses on the Google Code page for this project:

3DFOE on Google Code Hosting


Copyright © 2011 Jeremy Fonte. All rights reserved.
iDream theme by Templates Next | Powered by WordPress