I’ve been thinking about how the iPhone is one of the few (only?) media technology deliver systems that did NOT use porn as a catalyst. Porn is tasteless, style-less, demeaning (basically the Church of Apple anti-christ) – but porn is a serious technology innovator. I know I’m missing a bunch of cases but virtual shopping carts/payment systems, video streaming, security, scaling all owe a debt to porn. I guess the Apple brand and the fact that we all, er, need a phone, allowed them to skip over the steep adoption curve that porn enabled in everything from photography, movies, VCRs, cable to the Internet itself but they could end up really, really sorry by voluntarily denying themselves the technology innovations porn could have brought to them.
By the way, those apps they removed from store – porn? really? calling that porn… now THAT’s motherfuckin offensive.
I am awed and inspired to say that Karen Agresti accepted my proposal of marriage, which involved the songs “Ring of Fire”, “Ring My Bell,” “Single Ladies (Put a Ring On It)”, a jar of herring, a can of Pringles, a spring, a key ring, an onion and an engagement ring on a plate.
The proposal idea was to do a series of subliminal “ring” hints until she finally couldn’t not get it. She could tell there was something staged going on but I had to go all the way to the “onion rings”, which had the ring itself, for the thing to become clear.
Life is good, I have to admit. Pretty damn good alright.
This kind of post is more of a Facebook thing than a blog thing, given that this blog is about technology and business and not about my personal life. But since it is a personal blog I thought it would be awkward to not say something here.
MOG is hiring a senior developer in our Berkeley office to implement our music service on devices like Boxee, Roku, Vudu, Sonos, etc. It’s cutting edge technology, and we need somebody with the experience to go where few have gone before.
Daily activities include:
Working with partner(s) technical teams to gain clarity around services, SDKs, and device-side requirements
Working with internal teams to extend internal APIs to meet partner device/integration requirements
Ability to design core functionalities, libraries and port to end-device configurations
The core profile for this job is coding, but it would be handy if you could do backfill on wireframes and Photoshop work. Light skills in interaction design or graphic design are a plus.
Another bonus would be prior hacking on new teevee systems, just being familiar with the whole genre of applications.
Booting porn from the app store seems self defeating for Apple. Porn isn’t going away. Moving it out of the app store will create a thriving market that Apple doesn’t control. It will be web apps, not native apps, and third parties will dominate the payment infrastructure.
MP3 files can contain text, of course, and I’ve occasionally found lyrics stored inside TEXT and USLT frames. But there’s no consistency at all, probably never will be – more likely to find spam inside a TEXT frame.
Your idea for linking to time points is a cool notion, Lucas. Related to this, Real’s servers provide for a “start” parameter on a/v URIs, allowing one to jump to a time point, e.g.
Some of the various SMIL specs provide begin and end params for the same purpose (http://is.gd/5I3jL). Aside from that and Real’s faded format, my hunch is that most a/v is not very content-addressable, partly due to the fact that a given song can be found in the wild with many encoding variations. If I make in/out time points for lyrics on my rip of a CD track, your rip might not sync with it. Also, radio vs. album versions of a song may vary in duration and content.
Event-based synchronization, i.e. the beat-counting idea Piers brings up, might be worth looking into-
This would need a filter to recognize beats and count them. Possible, just not as simple as time. Might be more consistent than seconds-based.
Perhaps there’s another type of common event found in audio streams that could provide consistency, but I like drum beats because they’re less likely to get corrupted or folded than high frequencies, and less common than human voice-range freqs.
The karaoke industry seems to have cracked this nut, but I’m gonna hazard a guess that it’s all proprietary.
These guys sell player sw that syncs lyrics for 1 million songs, they claim: http://is.gd/5I48w. They appear to target music teachers in their marketing.
When you think about it, a technological component in a media player can auto-magically beat-sync two tracks by comparing basic structure and determining BPM. Word documents used to be the bane of the structured data movement, because they trapped content in a non-structured format, but ODF and OOXML have changed that game completely, creating a new class of semi-structured data; so why not music or video?
It’s fascinating to consider that if more artists released works under CC-NC by attribution, remix artists could provide additional value by micro-tagging individual samples within the deeper structure of their compositions – particularly if this functionality were baked into the software used to assemble the composition.
It seems to me that the magic is to find a way to refer to semantic elements of a song, both of which are abstract things that only loosely map to specific bytes in a specific file.
The place has a scrappy startup style but is stable and well managed. They bring their hearts to the product. They’ve survived remarkably long in the brutal internet music business.
My title is product manager. I’ll keep what I’m working on confidential in the short term, but not for long.
I have to say a little bit about the subscription business. Just a little, but something.
I think subscriptions are a worthwhile thing to work on. The internet music industry is full of smoke and mirrors, and subscriptions are not that. Yes subscription companies often make lame software, but they don’t have to. Subscriptions to an on-demand stream service can be fun, useful, usable, awesome.
I don’t think everybody in the world is going to get a subscription, and I don’t think subscription companies need that big a market to be healthy businesses. I don’t think the fate of the music business rests on the shoulders of the subscription music companies.
All these companies have to do is please their customers and earn profits for their shareholders, and I think MOG has the chops to pull it off.
I’ll be moving to San Fran for the job. I’ll miss my friends in LA and lots of things about the city. I don’t like moving. But the bay area is the real homeland for web developers, even ones like me that specialize in music.
One of the functions of a well designed instrument is to help players understand where they are in the composition, in the rhythm, and in the harmony. I’m interested in this as a dynamically tweakable user interface, because that makes it possible for the interaction design to evolve.
The Streaming Content Payment use case for PaySwarm encompasses the same multi-vendor music provider environment as Playdar:
Tellulah is a DJ and would like to setup a non-profit Internet radio station to stream Weekly Top 40 songs along with a mix of independent music. She would like to cover her expenses as well as the standard per-song ephemeral broadcasting fee set by the US Copyright Arbitration Panel to ensure she is legally compliant at all times. Registering and tracking royalties can be a very daunting and time consuming process. A mechanism that reduces the burden of legal compliance could drive more stations to come online.
Online radio broadcasters are also presently limited in their ability to grow their stations due to the ephemeral broadcasting royalties that must be paid on a per person/per song basis. Running these stations make it difficult to collect, track and distribute royalties in a way that makes it easy to integrate into the web browser. Often, donating or signing up to a single download provider can be more trouble than it is worth. If there was a universal mechanism to pay very small amounts for data streams on the Web, new legal avenues for distributing content legally would be enabled.
4.1 Requirements
Payment must be able to be associated with a section of a stream of data. Payment should be allowed to be associated with a particular number of bytes or temporal time frame.
Small fractions of whole currency amounts should be allowed in order to ensure accurate metering and payment recouping for content streams.
The “web” answer is more in the client / user agent than in the cloud.
Generally, payment mechanism on the web rely on someone being registered with a service, and then authenticated for each transaction.
That service handles a bunch of stuff that has to do with banking, and so is designed fundamentally as a node in the bank network rather than as a node on the WWW.
I don’t think that can be moved to the web in an open way. But, it’s possible to make that whole experience much more streamlined.
For example, someone who has a Google Checkout account can easily buy anything sold via Google Checkout. Same with PayPal and Amazon.
And, same with iTunes.
(And, on the other side: same with sellers, albeit with different restrictions about who can sell what / where through each service.)
And, that layer of web-to-banking service, theoretically, can be built on. And, I think it’d be most direct to work at the browser level, e.g. smart user agents.
In this case, an online seller would present, via a data format, a manifest of acceptable payment services, behind the scenes to the user experience. The buyer’s user agent (say, web browser) would then, behind the scenes and without hassle to the end-user, select the user’s preferred payment method and present the user with the minimal confirmation steps necessary to complete the transaction through that mechanism.
This could be akin to how Firefox handles subscription to RSS feeds, allowing the user to have a preset feed reader application that is invoked automatically when the user clicks a “subscribe to RSS” link.
However, in the case of online financial transactions, the user agent would want to allow for many services or protocols, and let the user define which is preferred for which types of transactions.
So, it’s “web” in the sense that it’s web browsers working directly banking APIs.
The PaySwarm web platform is an open standard that enables web browsers and web devices to perform micropayments and copyright-aware, peer-to-peer digital media distribution.
Who can implement and use the technology?
Anybody. The entire PaySwarm standard is implementable on a patent and royalty-free basis, just like HTTP, HTML 4.01 and Javascript. This means that anybody may implement any part of the system without worrying about technology licensing fees or patent suits from any of the participating W3C member companies.
One of the problems faced by music application developers is the issue of ID translation. You may have a collection of music that is in once ID space (Musicbrainz for instance) but you want to use a music service (such as the Echo Nest’s Artist Similarity API) that uses a completely different ID space. Before you can use the service you have to translate your Musicbrainz IDs into Echo Nest IDs, make the similarity call and then, since the artist similarity call returns Echo Nest IDs, you have to then map the IDs back into the Musicbrainz space. The mapping from one id space to another takes time (perhaps even requiring another API method call to ’search_artists’) and is a potential source of error — mapping artist names can be tricky – for example there are artists like Duran Duran Duran, Various Artists (the electronic musician), DJ Donna Summer, and Nirvana (the 60’s UK band) that will trip up even sophisticated name resolvers.
We hope to eliminate some of the trouble with mapping IDs with Project Rosetta Stone.
For now they only support two identifier types, Musicbrainz’ and their own Echonest IDs. But keep an eye out for the addition of commercial ID spaces that will allow easy mapping being Echo Nest IDs and those associated with commercial music service providers.
If I were a commercial provider I’d be looking in getting my own IDs into this API.