Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 121211 - media-sound/rosegarden-4.1.0: SysEx events not recognized, not send and length=0
Summary: media-sound/rosegarden-4.1.0: SysEx events not recognized, not send and length=0
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High major (vote)
Assignee: Gentoo Sound Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-02-01 12:00 UTC by Onkobu
Modified: 2006-02-21 15:27 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Onkobu 2006-02-01 12:00:49 UTC
Rosegarden does not recognize SysEx events in version 4.1.0. When recording SysEx events the occur in the event list, but contain no data. When entering some SysEx ba hand and sending it to any device only the start- and stop-byte will be sent out. No action takes place. The current CVS HEAD (4.1.2_cvs) solves this problem. I already talked to developers via user mailing list, they fixed it. Maybe some testing release is possible (~x86, ~amd64). (SysEx maybe generated via vkeybd's reverb and echo knobs. aseqview maybe used as midi event dumper [contains aseqdump to see also SysEx events]).
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2006-02-01 12:23:44 UTC
What's SysEx? Please, always include full ebuild name and version in bug summary...
Comment 2 Onkobu 2006-02-01 23:48:14 UTC
There's only one version of rosegarden available and this is 4.1.0. On Rosegardenmusic.com it's called "1.0 stable release" and the md5sum of it's install archive is "ca63f343e2a6240a0f64d32e362bf436  rosegarden-4-1.0.tar.bz2"

SysEx is part of the midi standard and means: System Exclusive. Such messages are not like notes or controller events. SysEx-messages are more like a stream. The consist of a start byte (signalling "this is sysex") and are finished by a end byte (signalling "sysex finished"). Have a look at the midi standard to know more about sysex.

These messages are used for transmitting additional information like events of non-standard controllers. For changing the volume you have midi standard controller (CC) #7. But to setup the Reverb Effect for Roland's MC 505 you need SysEx messages. Nobody would use a standard on how to setup effects, routings and nice features only this device supports (that's why everybody must have it...).

The problem with Rosegarden was, that it recognized only the start- and the end-byte. So recording a SysEx-event with Rosegarden (maybe while setting the reverb effect to 'Hall2') results in a non empty segment, you can see the time the event occured, but the payload is lost, there is no information, the length of data is 0.

If you send any SysEx (no matter if recorded or entered by hand), Rosegarden only sends the start- and the stop-byte, containing 0-length payload. Every midi device recognizes the event, makes some light flickering, but no actions take place.

How to do it yourself:
1. start Rosegarden
2. choose the track of a SysEx-capable device (vkeybd generates SysEx if switching Reverb Mode)
3. make it the recording track, start recording
4. invoke the SysEx-action (switch Reverb for example to "Room 2" in vkeybd)
5. stop recording
6. open the newly recorded segment on the recording track in the "Segment Editor" and have a look at the only event in the list, it's data length is 0

To verify, that it's not 0-lengthed, install aseqview, start vkeybd (standard midi port should be 128:0, maybe search it with "aseqdump -l"), start aseqdump (bundled with aseqview) with vkeybd's midi port, do the same action again, you should see something like this:

$> aseqdump -p 128:0
Waiting for data. Press Ctrl+C to end.
Source_ Event_________________ Ch _Data__
128:0   System exclusive          F0 41 10 42 12 40 01 30 01 00 F7

There you see the start byte (F0), some bytes more and the end byte (F7). The bytes between them never occur in Rosegarden's SysEx editor. If you enter the exact number of bytes (incl. start- and stop-byte) into the editor and send this event to vkeybd (it's not capable of receiving midi events, though, but imagine it could be), it would not change the setting.

To sum it up: 4.1.0 is broken since the day it was released when it comes to dealing with SysEx-messages. The new CVS-Head solves this problem since Tuesday this week (I've tested it myself).

Don't hesitate to ask more questions, even Rosegarden Developer were quite suprised 'bout that mistake but it's there (installed from ebuild, did the actions->result as described above, installed from CVS-Head->no error, re-installed ebuild->same error again)
Comment 3 Carsten Lohrke (RETIRED) gentoo-dev 2006-02-21 15:27:25 UTC
(In reply to comment #2)
> SysEx is part of the midi standard and means: System Exclusive. Such messages
> are not like notes or controller events. SysEx-messages are more like a stream.
> The consist of a start byte (signalling "this is sysex") and are finished by a
> end byte (signalling "sysex finished"). Have a look at the midi standard to
> know more about sysex.

Thanks for the explanation. Unfortunately we don't have enough maintainers - not to speak about well-verced audio freaks who are hackers as well - so this bug had to sit a while. Please test v.4.1.2.3 and file bugs as you encounter them.