On Thursday, 1 June 2006 02:43, Deep Rave wrote:
> On 5/31/06, Deep Rave <[EMAIL PROTECTED]> wrote:
> > I think really that most Solaris users (and BSD, and OSX), wich actually
> >
> > > uses like i Rosegarden on any Linux partition, could be happy to use it
> > > on their preferred and first OS.
> >
> > Yes, if not the requirement for ALSA I would be using FreeBSD myself
>
> Seeing this thread, and finding out that folks over at FreeBSD is working
> on bringing their OSS implementation up to date has me working on building
> RG/trunk on FreeBSD (and possibly midi support in FreeBSD uaudio module).
>
> I was a little surprised that code in RG is conditional on ALSA being
> present (is this historical only?) and there is indeed code for an OSS midi
> interface, so I got much much further than expected, but for some reason
> miss sound/MidiArts.h and class definition for RosegardenMidiRecord. I
> suspect the OSS version of this class was just not done/completed/comitted
> or it's a build style that is current untested/unfinished.
>
> I need to sit down and study the code some, but if anyone can point me to
> any cheat notes or clue me in on the state of OSS/Midi, I'd certainly
> appreciate it. I'd love to get this working.
 
The basic developer documentation is here:
http://rosegarden.sourceforge.net/code_doc/

It is a bit outdated, but you can get the idea. MIDI implementation belongs to 
the sequencer process, an executable named 'rosegardensequencer' that is 
launched by the GUI, and uses DCOP send/receive messages between the two 
processes.

The Rosegarden MIDI driver is a class, extending SoundDriver:
http://rosegarden.sourceforge.net/code_doc/classRosegarden_1_1SoundDriver.html

There was an old ArtsDriver class, but it is obsolete now. Dead way. 
AlsaDriver is also a subclass of SoundDriver. You can write another class, 
say CustomDriver, extending SoundDriver and implementing the needed methods. 
Take also a look to the class SoundDriverFactory, where you should create the 
instance of your class, if available at compile time. Of course, you must 
also tell the build system that you want to compile your custom MIDI  driver 
instead of AlsaDriver.
http://rosegarden.sourceforge.net/code_doc/SoundDriverFactory_8cpp-source.html

About the implementation, the basic features that the underlying MIDI 
infrastructure should provide are:
- Play scheduled events: be able to enqueue timestamped events for the 
Operating System, to be played asynchronously.
- Timestamped incoming events: be able to read received (recorded) events from 
the Operating System with an attached time label. The events should be 
enqueued by the underlying MIDI system as they arrive, to be read by 
Rosegarden asynchronously.

Other key features are device enumeration and timer synchronisation. I think 
that it should be possible to write a driver class for Rosegarden using the 
OSS "/dev/music" (formerly "/dev/sequencer2") interface. I'm not going to try 
it, but if somebody is brave enough I may help.
http://www.4front-tech.com/pguide/index.html
http://www.4front-tech.com/pguide/musicin.c

Regards,
Pedro


-------------------------------------------------------
All the advantages of Linux Managed Hosting--Without the Cost and Risk!
Fully trained technicians. The highest number of Red Hat certifications in
the hosting industry. Fanatical Support. Click to learn more
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642
_______________________________________________
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to