Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Sep 1999 18:28:15 -0700 (PDT)
From:      The Utz Family <utz@serv.net>
To:        Christoph Kukulies <kuku@gilberto.physik.RWTH-Aachen.DE>
Cc:        multimedia@FreeBSD.ORG
Subject:   Re: rosegarden
Message-ID:  <Pine.BSF.4.02.9909171823070.55815-100000@itchy.serv.net>
In-Reply-To: <199909171435.QAA18780@gil.physik.rwth-aachen.de>

next in thread | previous in thread | raw e-mail | index | archive | help

On Fri, 17 Sep 1999, Christoph Kukulies wrote:

>
> Anyone successfully using 'rosegarden', the midi and notation tool?
>
>
> --
> Chris Christoph P. U. Kukulies kuku@gil.physik.rwth-aachen.de


somebody has, but i cant confirm there success because my hw is
unsupported currently :-(

here is the two mail items they sent into the rosegarden mailing list.
u might want to get in touch with the author of these patches

###########################################################################

Hi!  I'm trying to use Rosegarden 2.1-beta on FreeBSD 3.2-stable
and came across the following problems:

 Trying to play _BREEZE.MID (example from session wintendo sequencer)
kills Rosegarden Sequencer, popping up the dialog with Chris Cannam's
old email address. (which bounced which is why i subscribed to this list.)
Trying to play almost(?) anything else, for example glazunov.rose
sends SEQ_MIDIPUTC with strange device bytes (the one i checked was 0x20,
i have only one midi device configured), leading to kernel panics until i
patched this:

Index: sequencer.c
===================================================================
RCS file: /home/cvs/cvs/src/sys/i386/isa/sound/sequencer.c,v
retrieving revision 1.23.2.1
diff -u -r1.23.2.1 sequencer.c
--- sequencer.c	1999/05/04 13:42:01	1.23.2.1
+++ sequencer.c	1999/06/14 22:42:44
@@ -338,7 +338,7 @@
 
 	if (event[0] == SEQ_MIDIPUTC) {
 
-	    if (!midi_opened[event[2]]) {
+	    if (event[2] >= max_mididev || !midi_opened[event[2]]) {
 		int             mode;
 		int             dev = event[2];
 
@@ -853,7 +853,7 @@
 	break;
 
     case SEQ_MIDIPUTC:	/* Put a midi character */
-	if (midi_opened[q[2]]) {
+	if (q[2] < max_mididev && midi_opened[q[2]]) {
 	    int             dev;
 
 	    dev = q[2];

 (2.0.1 didn't do this.)  Does 0x20 have some special meaning FreeBSD's
sound system doesn't yet know?  Now it prints

Rosegarden OSS Mapper: write /dev/sequencer failed: Device not configured

which is most likely generated by the patches 1st hunk.

 Here is how i patched rosegarden to make it see FreeBSD's sound system:

Index: configure.in
@@ -160,7 +160,7 @@
 
 	*freebsd*)
 	defines="-DNO_SYS_ERRLIST"
-	AC_CHECK_HEADER(sys/soundcard.h, sound_system="-DSYSTEM_FREEBSD")
+	AC_CHECK_HEADER(machine/soundcard.h, sound_system="-DSYSTEM_OSS")
 	# extra_libs="-lmalloc"
 	LDFLAGS="-L/usr/lib -L/usr/X11R6/lib"
 
Index: include/Mapper_OSS.h
@@ -4,7 +4,7 @@
 #undef MIDI_PITCH_BEND
 #endif
 
-#ifdef SYSTEM_FREEBSD
+#if defined(SYSTEM_FREEBSD) || defined(__FreeBSD__)
 #include <machine/soundcard.h>
 #elif SYSTEM_OSS
 #include <sys/soundcard.h>
Index: mapper/src/Mapper_OSS.c
@@ -13,6 +13,9 @@
 #include <sys/stat.h>
 #include <unistd.h>
 #include <fcntl.h>
+#ifndef ENOENT
+#include <errno.h>
+#endif
 
 #include <MidiFile.h>
 #include <MidiErrorHandler.h>

 and _BREEZE.MID i can mail to anyone interested...

 Regards,


-- 
Juergen Lock <nox.foo@jelal.kn-bremen.de>
(remove dot foo from address to reply)
--



[Cc'd to -hackers because of the MIDI sound driver patches, i'm running
this on FreeBSD 3.2-stable with Seigo TANIMURA's midi driver for serial
ports and with an old Atari MSTe as serial<->midi interface...]

On Wed, Jun 16, 1999 at 09:05:29PM +0200, I wrote:
> Hi!  I'm trying to use Rosegarden 2.1-beta on FreeBSD 3.2-stable
> and came across the following problems:
> 
>  Trying to play _BREEZE.MID (example from session wintendo sequencer)
> kills Rosegarden Sequencer, popping up the dialog with Chris Cannam's
> old email address. (which bounced which is why i subscribed to this list.)
> Trying to play almost(?) anything else, for example glazunov.rose
> sends SEQ_MIDIPUTC with strange device bytes (the one i checked was 0x20,
> i have only one midi device configured), leading to kernel panics until i
> patched this:

First, this was actually 020 ie 16...

 anyway, problem fixed itself:  rebuilt mapper/src/Mapper.o with -g and
found out Mapper_NewDeviceList() turned Device.Data.Midi.device from 0
into 16.  Looked at the source and thought `strange'...  Rebuilt
mapper/src/Device.o with -g and suddenly Mapper_NewDeviceList()
stopped doing that and everything worked again!  Rebuilt Mapper.o
and Device.o without -g and everything still worked.  *hmmm*.
Any insight how that could have happened very much appreciated...

 As for _BREEZE.MID, i guess that still segfaults (haven't tried).

 Okay so playback works again, now recording:  it played back nothing
from the existing tracks until i hit a note, then it played a few notes
and stopped until i hit another note, and so on.  Also the stop button
didn't visibly react until i hit another note.  Well so that must be a
real difference between linux' sound system and FreeBSD's...  this patch
fixed it:

Index: sequencer.c
===================================================================
RCS file: /home/cvs/cvs/src/sys/i386/isa/sound/sequencer.c,v
retrieving revision 1.23.2.1
diff -u -r1.23.2.1 sequencer.c
--- sequencer.c	1999/05/04 13:42:01	1.23.2.1
+++ sequencer.c	1999/06/20 20:44:37
@@ -162,8 +162,23 @@
 	int             chn;
 
 
+#if 1
+	/*
+	 * XXX don't wait if pre_event_timeout 0 (default),
+	 * rosegarden sequencer seems to expect this
+	 * behaviour  (use -1 for no timeout)
+	 */
+	if (pre_event_timeout == 0) {
+		splx(flags);
+		return 0;
+	}
+	midi_sleeper = &chn;
+	DO_SLEEP(chn, midi_sleep_flag, pre_event_timeout == -1 ?
+		0 : pre_event_timeout); 
+#else
 	midi_sleeper = &chn;
 	DO_SLEEP(chn, midi_sleep_flag, pre_event_timeout); 
+#endif
 
 	if (!iqlen) {
 	    splx(flags);
@@ -402,7 +417,7 @@
 
 
 	seq_sleeper = &chn;
-	DO_SLEEP(chn, seq_sleep_flag, 0);
+	DO_SLEEP(chn, seq_sleep_flag, hz / 10);
 
     }
     if (qlen >= SEQ_MAX_QUEUE)
@@ -1223,7 +1238,7 @@
 	int  chn;
 
 	seq_sleeper = &chn;
-	DO_SLEEP(chn, seq_sleep_flag, 0);
+	DO_SLEEP(chn, seq_sleep_flag, hz / 10);
 
     }
     splx(flags);

 (the bottom 2 hunks are for a hang in ioctl SNDCTL_SEQ_SYNC and
a possible similar hang in another place.)

 Alright so now i have a recorded track.  But trying to delete a
note got me a segfault and viewing the data as piano roll as well
as saving and reloading the midi file got me -- an empty track.
Also the `Recorded Track ..' and `Created by the Rosegarden sequencer'
labels appeared at the end of the new track not at the start...
Well, i found the fix for that too: :)

Index: sequencer/src/Record.c
@@ -178,6 +178,7 @@
                                                         (&EventBuffer, True));
     }
 
+    RunningPtr = (EventList)First(RunningPtr);
     TempPtr = Midi_SeqRecordTimingDefaults(&RunningPtr);
     Midi_TrackConvertToOnePointRepresentation(TempPtr);
     Mapper_NewTrackMetaInfo();

 Now i still have to find out why my midi keyboard keeps changing
the volume between full and low at the start of every x'th playback,
another problem of the more stranger kind...

 Happy MIDI-ing,
-- 
Juergen Lock <nox.foo@jelal.kn-bremen.de>
(remove dot foo from address to reply)
--
To unsubscribe, send email to rosegarden-unsubscribe@lists.bath.ac.uk

On Fri, 17 Sep 1999, Christoph Kukulies wrote:

> 
> Anyone successfully using 'rosegarden', the midi and notation tool?
> 
> 
> -- 
> Chris Christoph P. U. Kukulies kuku@gil.physik.rwth-aachen.de
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-multimedia" in the body of the message
> 



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-multimedia" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.02.9909171823070.55815-100000>