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