fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] Recent discussions on sysex commands and the MIDI Tuning


From: David Bellows
Subject: Re: [fluid-dev] Recent discussions on sysex commands and the MIDI Tuning Standard
Date: Thu, 18 Aug 2016 08:17:57 -0700

>Your Sysex messages are incorrecly formatted. The EOX end marker (last
byte of your Sysex messages) should be 0xF7, but yours end with 0x7F.

F7!?! Yep, your right! Good eye! I swear, any other value than that
and neither I nor the two other people who helped me in setting this
up would have made this mistake.

Strangely the resultant MIDI file sounds very thin and tinny compared
to the same thing in Timidity, but I'll look into that separately.

> Oh, and also fix your cent values, as R.L. Horn has pointed out.

Of course the fix was easy. I bandaided it by checking for an MSB of
128 and then setting it to 0 while incrementing the base note by one.
Strange that Timidity handled it like I expected it to but not
FluidSynth. But I guess the lesson here between both of these issues
is that Timidity is more forgiving and FS pickier. And while pulling
my hair out all the time is annoying, I'd rather have the MIDI files
correct than just working!

Thanks for slogging through all of this with me!

Dave

On Thu, Aug 18, 2016 at 2:56 AM, Marcus Weseloh <address@hidden> wrote:
> Hi David,
>
> Good news: the problem is not a bug in FluidSynth but a problem with
> your code :-)
>
> Your Sysex messages are incorrecly formatted. The EOX end marker (last
> byte of your Sysex messages) should be 0xF7, but yours end with 0x7F.
> That causes FluidSynth not to discard the last byte when reading from
> the file, which in turn makes the tuning mechanism bail out because
> the message data has the wrong size.
>
> Fix your Sysex messages and I think you should hear the correct
> tuning, even when specifying the MIDI file via command-line.
>
> Oh, and also fix your cent values, as R.L. Horn has pointed out. The
> 14 bit cent value should be transmitted in normal MIDI fashion as two
> data bytes which have their MSB (highest bit) set to 0. So these two
> byes are never allowed to be larger than 0x7F (01111111).
>
> Cheers,
>
>    Marcus
>
>
> 2016-08-18 10:14 GMT+02:00 Marcus Weseloh <address@hidden>:
>> Hi David,
>>
>> 2016-08-18 0:09 GMT+02:00 David Bellows <address@hidden>:
>>> I'm using Kubuntu 16.04. dpkg -l fluidsynth lists:
>>> fluidsynth                      1.1.6-3              amd64
>>>
>>> And are you sure it plays fine? I don't mean to question your ears but
>>> I'm definitely not getting the quarter-tones in the Fluidsynth
>>> version.
>>
>> Yes, it plays fine, I can hear quarter-notes. But I started FluidSynth
>> as a server and used aplaymidi to send the file to it. When specifying
>> the file on the command-line, I get the same results as R.L. Horn
>> mentioned, so there seems to be a problem with parsing the MIDI file.
>>
>> Try running fluidsynth as a server:
>> fluidsynth -a alsa soundfonts/fluid.sf2
>>
>> Then in another shell:
>> aplaymidi -p 129:0 Piano_Standard.midi
>>
>> Your port number will probably be different, not 129:0. Check it with
>> aplaymidi -l
>>
>> Cheers,
>>
>>    Marcus
>
> _______________________________________________
> fluid-dev mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/fluid-dev



reply via email to

[Prev in Thread] Current Thread [Next in Thread]