Timidity++ as MIDI server (à la Linux)
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
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
More information about the freebsd-multimedia