Timidity++ as MIDI server (à la Linux)

Juergen Lock nox at jelal.kn-bremen.de
Mon Sep 19 17:00:39 UTC 2011


On Sun, Sep 18, 2011 at 08:29:37PM -0500, Conrad J. Sabatier wrote:
> On Mon, 19 Sep 2011 01:57:13 +0200
> Juergen Lock <nox at jelal.kn-bremen.de> wrote:
> 
> > On Sun, Sep 18, 2011 at 05:29:09PM -0500, Conrad J. Sabatier wrote:
> > > Would anyone have any idea if it would be possible to somehow tweak
> > > the Timidity++ port to provide functionality similar to that under
> > > Linux, where Timidity can be launched as a daemon, thereby
> > > providing MIDI "ports"/emulation/functionality within apps such as
> > > Rosegarden?
> > > 
> > > Is this even technically feasible under FreeBSD, or are the
> > > differences between ALSA and our sound subsystem just too great?
> > > I've worked with Rosegarden under Ubuntu, and having this
> > > functionality greatly enhances the program's usability.  Very
> > > tedious to have to continuously export one's work-in-progress to a
> > > MIDI file and play it externally, not to mention the lack of a
> > > number of user-configurable MIDI parameters (such as channel
> > > assignment, etc.) within Rosegarden. 
> > > 
> > It seems both Timidity++ and Rosegarden only know the alsa seq midi
> > interface which FreeBSD doesn't have nor emulate.  It also seems
> > the linux folks are now moving to jack instead of using alsa directly
> > which is less of a problem on FreeBSD, in fact I just committed a
> > jack port update today and you can test an alpha version of ardour3
> > that I even got working with a midi keyboard via jack_umidi:
> > 
> > 	http://lists.freebsd.org/pipermail/freebsd-multimedia/2011-September/012432.html
> > 
> > (and qjackctl as jack config gui as well as fluidsynth for playback,
> > the latter is a bit like a jack midi equivalent of what you did with
> > Timidity++ on Linux.)
> > 
> >  HTH, :)
> > 	Juergen
> 
> Thanks, I'll have a look at that.  I've tinkered briefly with jack,
> fluidsynth, qsynth, but have yet to arrive at something that actually
> works for me.  To be honest, I haven't spent a great deal of time with
> any of these.
> 
> I'm very partial to Rosegarden's Notation Editor (my preferred method
> for inputting music).  To have MIDI playback working within
> Rosegarden as it does under Linux, with realtime scrolling of the
> score as the music plays, would be a real "productivity booster".
> 
> I do have a Yamaha SO3 MIDI-capable synth/keyboard, but it's currently
> not connected to the computer (not really sure how to go about it
> under FreeBSD).

Yeah with ardour3 and jack_umidi it should work...

>  I basically just like to use the Notation Editor for
> composing, transcribing and arranging, and general "testing out" of
> ideas that I couldn't possibly play with just two hands on the
> keyboard, so having something/anything that could make MIDI playback
> work within Rosegarden would be a real godsend.
> 
 If you want a notation editor there also now is audio/musescore
in ports, that at least can playback on FreeBSD, tho not take input
from a midi keyboard because it also depends on alsa seq and can't
use jack midi for that.

> I suppose I could always resort to using the "Live CD" feature of the
> Ubuntu install CD, but I *hate* rebooting.  :-)  I really should spend
> more time familiarizing myself with what's available under FreeBSD.
> 
> I just wish we had a "FreeBSD Studio", along the lines of "Ubuntu
> Studio".  :-)

 That's probably still quite some time off... :)

 And I looked at rosegarden a bit more and found it also has builtin
synth plugins, _but_ I also found rosegarden's jack support doesn't
seem to work (anymore?), it fails to connect to jackd which says...

[...]
client event poll on 13 for qjackctl starts at 19123690163
back from client event poll after 13 usecs
start poll on 7 fd's
could not handle external client request
server thread back from poll
marking client rosegarden with SOCKET error state = Not triggered errors = 0
waking server thread
trying to lock graph to remove 1 problems
we have problem clients (problems = 1
++ Removing failed clients ...
client oss error status 0
client rosegarden error status 10000000
removing failed client rosegarden state = Not triggered errors = 10000000
removing client "rosegarden"
removing client "rosegarden" from the processing chain
+++ deactivate rosegarden
[...]

 and rosegarden says...

[...]
JackDriver::initialiseAudio - JACK sample rate = 48000Hz, buffer size = 1024
JackDriver::initialiseAudio - creating disk thread
JackDriver::initialiseAudio - found 2 JACK physical outputs
JackDriver::initialiseAudio - connecting from "rosegarden:master out L" to "system:playback_1"
JackDriver::initialiseAudio - connecting from "rosegarden:master out R" to "system:playback_2"
JackDriver::initialiseAudio - found 2 JACK physical inputs
JackDriver::initialiseAudio - connecting from "system:capture_1" to "rosegarden:record in 1 L"
JackDriver::initialiseAudio - connecting from "system:capture_2" to "rosegarden:record in 1 R"
JackDriver::initialiseAudio - initialised JACK audio subsystem
ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
AudioInstrumentMixer::destroyAllPlugins
done
AudioInstrumentMixer::~AudioInstrumentMixer
AudioInstrumentMixer::removeAllPlugins
AudioInstrumentMixer::~AudioInstrumentMixer exiting
DataBlockRepository::clear()
SoundDriver::~SoundDriver (exiting)
AudioPlayQueue::~AudioPlayQueue()
Composition::getTrackById(0) - WARNING - track id not found, this is probably a BUG src/base/Composition.cpp:1560
Available track ids are: 
audio file manager emitting fake setValue(100)
[...]

 Or is rosegarden closing jack by itself (SoundDriver::~SoundDriver
(exiting)) because it can't open the alsa seq device?  (..and without
jack support enabled in rosegarden I also didn't get sound even
with the builtin synth plugin.)  I'll Cc the rosegarden port
maintainer.

 :(,
	Juergen


More information about the freebsd-multimedia mailing list