MMC fun

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: MMC fun
From: janne halttunen (jhalttun_AT_pp.htv.fi)
Date: Mon Aug 04 2003 - 12:21:36 EEST


hello all,

been trying to sync up my systems lately for good music making experience. ecasound (cvs) jack transport seems to work fine. you press "play song" in soundtracker (0.6.7-pre5) and ecasound starts nicely in sync.

now then, enter midi. found out that muse is a fine midi sequencer, at least it seems so. but when it's put in MMC slave mode and ecasound is set to send it the signal, it's a no go.

ran ecasound with debug, found out that midi server isn't started at all, even though it says so in the start messages:

--cut--

(eca-chainsetup-parser) MIDI-config: Adding MMC-send to device id "1".
(eca-chainsetup-parser) MIDI-config: Sending MIDI-sync.

--cut--

now then, took a look at the source, where there is a check in eca-engine.cpp

--cut--

void ECA_ENGINE::init_servers(void)
{
  if (csetup_repp->midi_devices.size() > 0) {
    use_midi_rep = true;
    ECA_LOG_MSG(ECA_LOGGER::info, "(eca-engine) Initializing MIDI-server.");
    csetup_repp->midi_server_repp->init();
  }
}

--cut--

edited out the check for "midi_devices.size()", now the server starts, but it segfaults:

--cut--

- [ Session created ] ------------------------------------------------------
- [ Chainsetup created (cmdline) ] -----------------------------------------
(eca-chainsetup-parser) MIDI-config: Adding MMC-send to device id "1".
(eca-chainsetup-parser) MIDI-config: Sending MIDI-sync.
- [ Connecting chainsetup ] ------------------------------------------------
(eca-chainsetup) 'nonrt' buffering mode selected.
(eca-chainsetup) Audio object "null", mode "read".
(audio-io) Format: s16_le, channels 2, srate 44100, interleaved.
(eca-chainsetup) Audio object "null", mode "read/write".
(audio-io) Format: s16_le, channels 2, srate 44100, interleaved.
- [ Chainsetup connected ] -------------------------------------------------
(eca-controller) Connected chainsetup: "command-line-setup".
- [ Controller/Starting batch processing ] ---------------------------------
(eca-engine) Initializing MIDI-server.
- [ Engine init - Driver start ] -------------------------------------------
Segmentation fault

--cut--

ecasound through strace:

--cut--

- [ eca-engine.cpp: Engine init - Driver start ] -------------------------------------------
 <unfinished ...>
--- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
<... rt_sigsuspend resumed> ) = -1 EINTR (Interrupted system call)
sigreturn() = ? (mask now [HUP INT QUIT PIPE TERM RTMIN])
kill(6419, SIGRTMIN) = 0
nanosleep({1, 0}, eca-engine.cpp: (eca-engine) Request start
midi-server.cpp: (midi-server) starting processing
midi-server.cpp: (midi-server) Sending MMC message 2 to device-id 1.
0) = -1 EINTR (Interrupted system call)
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

--cut--

MMC message is normally 2, which means "play" in MMC. number 3 means "deferred play", which possibly would work better with muse.

see down to the p.s. part of the message:

http://marc.theaimsgroup.com/?l=muse&m=105628447202081&w=2

MMC reference:

http://www.borg.com/~jglatt/tech/mmc.htm

now. what are the possible ways to start fixing this? somehow the midi-server should get to start even though there are no "midi_devices" as such. (do these mean -km operators?) also if some app needs "deferred play" instead of "play" MMC message, should this be addressed and how? (time for another EDI? :)

janne


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Mon Aug 04 2003 - 12:17:49 EEST