iPhone App Directory

Audio Sharing Public format?

This comment arrived on the Audio Sharing post:
The Intua code is just a simple copy/paste of audio file, broken-up into chunks. No meta info such as tempo/pitch - so not terribly useful (bit of a missed opportunity!).

Haven't seen the Sonoma code, as that seems to require signing-up to legals etc., which seems pretty OTT for something so simple.

Seems like we could do with a simple public format. Can't be that hard - anybody up for a 3rd format? This is as good a place to come-up with one as any. Feel free to pitch in. :-D

All we need is something like this:
- UTF-8 string in bytes (*including* null byte). If this is just null byte, then
- This UTF-8 string contains list of tags in format:
tag="value",tag2="value2"
e.g. this (containing sample tags that would be fine to start with IMO):
format="palmsounds",tempo="129",root="g#",scale="major",mime="audio/x-wav"

- remaining bytes: the file data

That is just a quick outline idea... anybody fancy implementing & pasting candidate code?

If developers want to use this post as a place to discuss the issue that's fine with me.

13 comments:

Marek said...

I would gladly put something like that in my apps (thump+sampletoy), although I don't have much spare time to take this on. An open standard would be awesome, or maybe one already exists. I could definitely help if someone else took the lead?!

I found it weird that sonoma had a license agreement, the only reason I can think that they do is to get their copyright visible on your documentation/packaging. Gonna sign up to it anyway...

oliver said...

Hello from nanoloop


I'm not too familiar with the various approaches for audio file exchange yet, but can someone explain why we need additional info besides the file binary at all? WAV and other formats provide header fields for all kinds of information, adding an extra header outside the file seems somewhat redundant to me. Using existing file formats will also make things easier if apple allows a shared file area for all apps one day.
Thank you.

Oliver

kd said...

As Marek said, I would also love to help out if there is an already open sourced way to do copy/paste or if someone starts it. With daily jobs it's hard to start something new.. :( pretty sad, I'd say. haha

Anonymous said...

It would make sense to leverage Intua's spec, augmenting it with metadata.

The UIPasteboard is pretty flexible and can support multiple items simultaneously. So maybe it makes sense to specify an optional metadata "side-car" object to augment the Intua WAV data object.

The other feature that might be of interest is support for collection objects to store multiple sound clips.

There may be features of an Open Audio Sharing protocol for iPhone OS that would be better to discuss after the iPhone OS 3.2 NDA is lifted.

Unknown said...

Just my 2cts: why not using json for the metadata block? It will allow more structured metadata to be copied along with the audio (markers... location of beats/events... pattern data...), and JSON is so cheap to parse... It might sound overkill but it's better to communicate about "JSON data" than "my own key-value string format".

Sigmund said...

Hey Marek, I love your apps and would love them even more with the ability to copy paste from them.

Anonymous said...

Interesting. What about a format that also supports copy/paste of MIDI files or clips? I am sure that if one is possible, then so is the other? That would also open up more possibilities for creation on iPhone.

Anonymous said...

If there is something coming soon in 3.2, we should use that ultimately. *But* for us all to support old iPods, we should extend the Intua SDK to have tag info (including the ones listed in the post, all good). Text or JSON, I don't mind!

I can't see any reason at all to use Sonoma - the only solution that will win ultimately is a totally open one.

Anybody here from Intua got any word on if there is a new format coming with tag support, and explicit support for files other than just wav e.g. by MIME type tag?

iceGear said...

From ARGON

I think Open Audio sharing Public format is a good idea.
But, I have some questions about this features.

For example, how to write a piece of classical music that its tempo is changed in the middle?
And, How use metadata(root, scale) to other app(which receive metadata)?

Concerning expansion and compatibility,
I think You'd better add a new CHUNK into .wav file and add it into clipboard according to intua's way.

Anonymous said...

For example, how to write a piece of classical music that its tempo is changed in the middle?

This is a standard MIDI file feature; send your score as a MIDI file.

And, How use metadata(root, scale) to other app(which receive metadata)?

That is up to the application. Those apps which do pitch shifting / time stretch can take advantage of that info.

Pete Cole said...

Now that is cool... the Intua code is now on Google Code:

http://code.google.com/p/intua-audio-sharing/

Excellent - an open source solution that we should all be able to work with. Congrats to Intua!

Marek said...

I just saw that intua thing on google code!

ashley said...

Glad so many of you saw the Intua page go up at google code. I link to it here:

http://the-palm-sound.blogspot.com/2010/03/intua-audio-sharing.html

I probably won't be checking in at that site regularly as most of it will go over my head, so please keep me posted on how it is going