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: Wed, 17 Aug 2016 09:19:56 -0700

Hey Marcus (and anyone else paying attention!)

I've attached another MIDI file. It uses a sysex command with the MIDI
Tuning Standard. Unlike the previous one I sent this one assigns the
new MIDI + pitch bend to the same Standard MID pitch (previously I
just used the dummy pitch 1 for all the notes). The results are the
same: Timidity plays it fine but Fluidsynth doesn't. This MIDI file
plays all the notes in one octave of a 24-EDO scale. Playing this in
Timidity you should hear the quarter-tones. In FluidSynth all I hear
are the base notes (ie, no quarter-tones).



On Wed, Aug 17, 2016 at 8:22 AM, David Bellows <address@hidden> wrote:
> Hey Marcus!
>
> Actually that MIDI note shouldn't really matter as it's the sysex
> command that contains the pitch information for the note that's being
> re-assigned (1 in this case) to what it's supposed to sound like (60 +
> 2048 pitch bend, for example).
>
> In Timidity this plays just fine but the resulting MIDI file does not
> play in FluidSynth. However(!) what I just noticed is that the
> resulting flac file from Fluidsynth *does* play though it plays the
> wrong notes.
>
> Give me some more time to experiment with this. I don't think I had
> ever bothered having FS render an audio file before since I couldn't
> get the MIDI file to play but apparently something interesting is
> going on there. I'm going to try several other strategies for getting
> FS to play the correct notes.
>
> Dave
>
> On Wed, Aug 17, 2016 at 4:39 AM, Marcus Weseloh <address@hidden> wrote:
>> Hello David,
>>
>> I got triggered by your recent question about different tunings in
>> FluidSynth, as I will need different tunings as well. I found this old
>> posting of yours, so you seem to know about MTS and have tried to use
>> it. I had a look at your example file and am not surprised that it
>> doesn't gerenate anything useful. When dumping the file and looking at
>> the containted events, it seems like you are playing and chaning
>> tunings on MIDI key 01. That is very low indeed! Even if you could
>> hear the sound at all from your speakers, frequency changes at that
>> low tone range need to be very large for the human ear to pick up.
>> Maybe you could try again with something closer to "middle c" (key
>> 60). Let me know how you get on :-)
>>
>> Here's the dump of your file:
>>
>> ---------------------------------------------------------------------------
>> File: /scratch/Piano_Standard.midi
>> ---------------------------------------------------------------------------
>> Length: 9167 ticks
>> Duration: 9167000 microseconds
>> ---------------------------------------------------------------------------
>> DivisionType: PPQ
>> Resolution: 1000 ticks per beat
>> ---------------------------------------------------------------------------
>> Track 0:
>> -----------------------
>> tick 0: Set Tempo: 60.0 bpm
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: Sysex message: F0 7F 7F 08 02 00 01 01 1E 7A 7F 7F
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [C0 00] channel 1: program change 0
>> tick 0: [90 01 50] channel 1: note On C#-1 velocity: 80
>> tick 0: Set Tempo: 60.0 bpm
>> tick 0: [C0 00] channel 1: program change 0
>> tick 167: [80 01 50] channel 1: note Off C#-1 velocity: 80
>> tick 167: Sysex message: F0 7F 7F 08 02 00 01 01 28 02 40 7F
>> tick 167: [90 01 36] channel 1: note On C#-1 velocity: 54
>> tick 500: [80 01 36] channel 1: note Off C#-1 velocity: 54
>> tick 500: Sysex message: F0 7F 7F 08 02 00 01 01 64 02 40 7F
>> tick 500: [90 01 6A] channel 1: note On C#-1 velocity: 106
>> tick 833: [80 01 6A] channel 1: note Off C#-1 velocity: 106
>> tick 833: Sysex message: F0 7F 7F 08 02 00 01 01 58 02 40 7F
>> tick 833: [90 01 50] channel 1: note On C#-1 velocity: 80
>> tick 1166: [80 01 50] channel 1: note Off C#-1 velocity: 80
>> tick 1167: Sysex message: F0 7F 7F 08 02 00 01 01 1C 75 7F 7F
>> tick 1167: [90 01 6A] channel 1: note On C#-1 velocity: 106
>> tick 1833: Sysex message: F0 7F 7F 08 02 00 01 01 58 75 7F 7F
>> tick 1833: [90 01 6A] channel 1: note On C#-1 velocity: 106
>> tick 1834: [80 01 6A] channel 1: note Off C#-1 velocity: 106
>> tick 2166: [80 01 6A] channel 1: note Off C#-1 velocity: 106
>> tick 2167: Sysex message: F0 7F 7F 08 02 00 01 01 58 75 7F 7F
>> tick 2167: [90 01 50] channel 1: note On C#-1 velocity: 80
>> tick 2333: Sysex message: F0 7F 7F 08 02 00 01 01 15 00 00 7F
>> tick 2333: [90 01 50] channel 1: note On C#-1 velocity: 80
>> tick 2334: [80 01 50] channel 1: note Off C#-1 velocity: 80
>> tick 2500: [80 01 50] channel 1: note Off C#-1 velocity: 80
>> tick 2500: Sysex message: F0 7F 7F 08 02 00 01 01 23 78 3F 7F
>> tick 2500: [90 01 50] channel 1: note On C#-1 velocity: 80
>> tick 3167: [80 01 50] channel 1: note Off C#-1 velocity: 80
>> tick 3167: Sysex message: F0 7F 7F 08 02 00 01 01 64 02 40 7F
>> tick 3167: [90 01 50] channel 1: note On C#-1 velocity: 80
>> tick 3833: Sysex message: F0 7F 7F 08 02 00 01 01 25 7D 40 7F
>> tick 3833: [90 01 36] channel 1: note On C#-1 velocity: 54
>> tick 3834: [80 01 50] channel 1: note Off C#-1 velocity: 80
>> tick 4166: [80 01 36] channel 1: note Off C#-1 velocity: 54
>> tick 4167: Sysex message: F0 7F 7F 08 02 00 01 01 47 05 01 7F
>> tick 4167: [90 01 36] channel 1: note On C#-1 velocity: 54
>> tick 4500: [80 01 36] channel 1: note Off C#-1 velocity: 54
>> tick 4500: Sysex message: F0 7F 7F 08 02 00 01 01 66 7A 7F 7F
>> tick 4500: [90 01 6A] channel 1: note On C#-1 velocity: 106
>> tick 4667: [80 01 6A] channel 1: note Off C#-1 velocity: 106
>> tick 4667: Sysex message: F0 7F 7F 08 02 00 01 01 1C 02 40 7F
>> tick 4667: [90 01 6A] channel 1: note On C#-1 velocity: 106
>> tick 5000: [80 01 6A] channel 1: note Off C#-1 velocity: 106
>> tick 5000: Sysex message: F0 7F 7F 08 02 00 01 01 1C 02 40 7F
>> tick 5000: [90 01 50] channel 1: note On C#-1 velocity: 80
>> tick 5333: [80 01 50] channel 1: note Off C#-1 velocity: 80
>> tick 5333: Sysex message: F0 7F 7F 08 02 00 01 01 28 75 7F 7F
>> tick 5333: [90 01 6A] channel 1: note On C#-1 velocity: 106
>> tick 5666: [80 01 6A] channel 1: note Off C#-1 velocity: 106
>> tick 5667: Sysex message: F0 7F 7F 08 02 00 01 01 31 7D 40 7F
>> tick 5667: [90 01 50] channel 1: note On C#-1 velocity: 80
>> tick 6000: [80 01 50] channel 1: note Off C#-1 velocity: 80
>> tick 6000: Sysex message: F0 7F 7F 08 02 00 01 01 2D 00 00 7F
>> tick 6000: [90 01 36] channel 1: note On C#-1 velocity: 54
>> tick 6333: [80 01 36] channel 1: note Off C#-1 velocity: 54
>> tick 6333: Sysex message: F0 7F 7F 08 02 00 01 01 4E 7A 7F 7F
>> tick 6333: [90 01 6A] channel 1: note On C#-1 velocity: 106
>> tick 6666: [80 01 6A] channel 1: note Off C#-1 velocity: 106
>> tick 6667: Sysex message: F0 7F 7F 08 02 00 01 01 17 78 3F 7F
>> tick 6667: [90 01 50] channel 1: note On C#-1 velocity: 80
>> tick 6833: Sysex message: F0 7F 7F 08 02 00 01 01 23 78 3F 7F
>> tick 6833: [90 01 50] channel 1: note On C#-1 velocity: 80
>> tick 6834: [80 01 50] channel 1: note Off C#-1 velocity: 80
>> tick 7166: [80 01 50] channel 1: note Off C#-1 velocity: 80
>> tick 7167: Sysex message: F0 7F 7F 08 02 00 01 01 1E 7A 7F 7F
>> tick 7167: [90 01 6A] channel 1: note On C#-1 velocity: 106
>> tick 7833: Sysex message: F0 7F 7F 08 02 00 01 01 15 00 00 7F
>> tick 7833: [90 01 6A] channel 1: note On C#-1 velocity: 106
>> tick 7834: [80 01 6A] channel 1: note Off C#-1 velocity: 106
>> tick 8500: [80 01 6A] channel 1: note Off C#-1 velocity: 106
>> tick 8500: Sysex message: F0 7F 7F 08 02 00 01 01 25 7D 40 7F
>> tick 8500: [90 01 50] channel 1: note On C#-1 velocity: 80
>> tick 9167: [80 01 50] channel 1: note Off C#-1 velocity: 80
>> tick 9167: End of Track
>> ---------------------------------------------------------------------------
>>
>> 2016-07-10 19:33 GMT+02:00 David Bellows <address@hidden>:
>>>> FluidSynth is supposed to support MTS.  I have never used it myself 
>>>> though.  If you are having troubles using this, it may be a bug.  An 
>>>> example file would be helpful for testing purposes.
>>>
>>> Cool! I've attached a MIDI file generated by the Lua library at:
>>> http://www.pjb.com.au/comp/lua/MIDI.html.
>>> It is random piano notes using Pythagorean tuning. It plays just fine
>>> in timidity but I can't get it to play in fluidsynth. I am able to get
>>> conventional MIDI files to play in fluidsynth. The command I'm using
>>> is:
>>> fluidsynth -a alsa -m alsa_seq -l -i
>>> /home/dave/soundfonts/campbellspianobeta2.sf2 Piano_Standard.midi
>>>
>>>
>>>
>>> On Sun, Jul 10, 2016 at 7:46 AM, Element Green
>>> <address@hidden> wrote:
>>>> Hello David
>>>>
>>>> FluidSynth is supposed to support MTS.  I have never used it myself though.
>>>> If you are having troubles using this, it may be a bug.  An example file
>>>> would be helpful for testing purposes.
>>>>
>>>> Cheers.
>>>>
>>>> Element
>>>>
>>>> On Sun, Jul 10, 2016 at 7:57 AM, David Bellows <address@hidden>
>>>> wrote:
>>>>>
>>>>> First off, I really do not understand MIDI to a surprisingly alarming
>>>>> degree, so forgive me if none of this really connects.
>>>>>
>>>>> I'm working on some software that generates music using any tuning
>>>>> imaginable. The software generates a MIDI file that uses the MIDI
>>>>> Tuning Standard to basically (when seen from a high level description)
>>>>> send specific audio frequencies with each note (that's not really
>>>>> what's happening but that's kind of what it looks like) using various
>>>>> sysex commands.
>>>>>
>>>>> Right now I'm using Timidity to play those MIDI files and convert them
>>>>> to various audio files. I've been told that switching to FluidSynth
>>>>> will make things easier/better but for now I can't do this because FS
>>>>> doesn't seem able to playback those MIDI files my software generates
>>>>> using the MTS.
>>>>>
>>>>> Is there any plan to support the MTS in FluidSynth or is it something
>>>>> that is forever tied directly to a specific "manufacturer" and
>>>>> Timidity just took it upon itself to create meanings for these
>>>>> specific sysex commands?
>>>>>
>>>>> Thanks everyone!
>>>>> Dave
>>>>>
>>>>> _______________________________________________
>>>>> fluid-dev mailing list
>>>>> address@hidden
>>>>> https://lists.nongnu.org/mailman/listinfo/fluid-dev
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> fluid-dev mailing list
>>>> address@hidden
>>>> https://lists.nongnu.org/mailman/listinfo/fluid-dev
>>>>
>>>
>>> _______________________________________________
>>> fluid-dev mailing list
>>> address@hidden
>>> https://lists.nongnu.org/mailman/listinfo/fluid-dev
>>>
>>
>> _______________________________________________
>> fluid-dev mailing list
>> address@hidden
>> https://lists.nongnu.org/mailman/listinfo/fluid-dev

Attachment: Piano_Standard.midi
Description: MIDI audio


reply via email to

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