[Mono-dev] Mono.Media for GSOC

Prashant Vaibhav p.vaibhav at jacobs-university.de
Mon Apr 7 12:30:02 EDT 2008

Dear Miguel,
Dear All,

Glad to hear codecs are not a focus for Mono.Media (at present). Somehow
most discussion in this area seems to be focused on re-implementing
gstreamer or creating bindings for it (a/v format coding/decoding in
general). Last weekend I submitted an application for Mono.Media GSoC. My
proposal seeks to provide high performance, low-level audio/MIDI features
for Mono, rather than a generic coder/decoder framework. One thing I have
focused on is fairly complete MIDI support.

I didn't base my proposal on the Java media framework (I don't have much, if
any, experience with Java, plus I saw discussion on how JMF's heavily
asynchronous design is undesirable), so I might be missing some obvious
features. I'll appreciate if the Mono dev community could comment on my

Following is an excerpt from the proposal:

The architecture of the Mono.Media.Audio section would be as follows:
> - Classes representing audio devices will be implemented. These will
> abstract out platform-specific code (ie. the same AudioDevice would use
> WDM/KS on Windows and Jack/Alsa on Linux)
> - Classes representing audio sources will be implemented. These will have
> methods to *provide* audio.
> - Classes representing audio consumers will be implemented. These act like
> sinks. An AudioSourcePlayer for example will continuously stream audio from
> an AudioSource to an AudioDevice. The AudioDevice will have a callback
> method on its own high priority thread to get audio buffers.
> - Further classes like Mixer, CrossFader, Equalizer etc. might be
> implemented as a combination of sinks and sources.
> - Classes for reading/writing simple audio files (.wav, .aiff etc.) will
> also be implemented.

The MIDI architecture will consist of :

- Classes for MIDI input and output devices. These will represent actual
> devices on Windows (which does not support the concept of virtual devices),
> and software ports on Linux and Mac. The winmm API will be used on Windows,
> CoreMIDI on Mac, and ALSA sequencer API on Linux.
> - Classes for MIDI events (a generic event, NoteOn, NoteOff events, SysEx,
> MetaEvents, Controller etc.). These will allow easy creation/manipulation of
> MIDI data, shielding the programmer from the actual byte-stream.
> - Classes for storing/manipulating these (e.g. MidiTrack, MidiSequence,
> MidiRecorder etc.)
> - Classes for handling MIDI file input/output
> - Classes for handling MIDI time code and transport control messages
> Basically the MIDI framework will be a fairly complete implementation of
> everything that MIDI has to offer (except perhaps highly specialized
> standards like Sample Dump Standard). If we have time, an OSC interface
> might also be implemented.

Of course this design is open to discussion. Thanks for your time!


On 07/04/2008, Miguel de Icaza <miguel at novell.com> wrote:
> > I'm interested in applying for GSOC to work on Mono.Media and I was
> > just wondering if I could get a few more details about the project.
> > Has any work been completed on it?  How comprehensive in terms of
> > codec support are you looking for?
> I do not believe that there is much along the lines of codecs in
> Mono.Media.    Please read the Java specification as its really working
> with a different set of problems.
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list

School of Engineering and Science, Jacobs University Bremen

Postal address:                                Phone: +49 421 200 5714
College Ring 7, Box 83                  Apartment: College III B202
Bremen 28759, Germany
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20080407/189919a3/attachment.html 

More information about the Mono-devel-list mailing list