SOFTWARE UPGRADE: Global fine tuning & layer transpose

Hi @Zynthianers!

A new update is waiting for you. This update includes the next new features, although some of you already have the first one:

  • Global Fine Tuning: You can adjust the “middle A” frecuency unsing the webconf tool. Pitchbending messages are used for doing the trick, so it only work with ZynAddSubFX, FluidSynth and LinuxSampler. For setBfree and MOD-UI engines i’ve to find another way :wink:

  • Transpose: You can transpose layers. Well, in fact what is transposed is the whole MIDI channel, so all the layers in the same MIDI channel get transposed. You can access the “tranpose” feature from the “layer options” menu. You know, in the layer list, “bold click” on the layer you want to transpose. Currently this doesn’t work for MOD-UI engine.

FYI, the MIDI auto-connection layout have changed. Your MIDI keyboards/controllers are not connected directly to synth engines nevermore. All the MIDI messages are routed thru the zyncoder, that implements the midi filtering engine. AFAIK, no extra latency is added. Everything is done in the same jack processing frame :wink:

Enjoy!

4 Likes

I understand now, these are changes you were talkin about :blush::sunglasses:

I’ve uploaded new changes that implements fine tuning for setBfree, among other fixes. You have to update software and also update data from the admin menu!!

Regards!

1 Like

Since yesterday, the ui hangs sometime when browsing through LinuxSampler. Not FluidSynth.

DEBUG:root:BANK INDEX => 0
DEBUG:root:BANK LIST =>
[(’/zynthian/zynthian-ui/data/soundfonts/sfz/Bass’, 0, ‘SFZ/Bass’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Brass’, 1, ‘SFZ/Brass’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Drum Machines’, 2, ‘SFZ/Drum Machines’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Drums’, 3, ‘SFZ/Drums’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Ethnic’, 4, ‘SFZ/Ethnic’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Guitars’, 5, ‘SFZ/Guitars’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Organs’, 6, ‘SFZ/Organs’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Other’, 7, ‘SFZ/Other’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Percussion’, 8, ‘SFZ/Percussion’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Pianos’, 9, ‘SFZ/Pianos’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Strings’, 10, ‘SFZ/Strings’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Synths’, 11, ‘SFZ/Synths’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Woodwinds’, 12, ‘SFZ/Woodwinds’, ‘SFZ’)]
DEBUG:root:ZCTRL ‘Bank’: 0 (0 -> 13), None, None
INFO:root:Short Switch 1
DEBUG:root:BACK TO SCREEN => layer
DEBUG:root:ZCTRL ‘Layer’: 1 (0 -> 4), None, None
INFO:root:Bold Switch 3
DEBUG:root:ZCTRL ‘Option’: 0 (0 -> 3), None, None
INFO:root:Short Switch 3
WARNING:root:zynthian_gui.zyncoder_read() => 0 (ERR)

Hi @mheidt!

I can’t reproduce the problem. Could you or it’s random?

Regards

quite random, i just tried to remove the third layer (1,2 are fluid, 3 is ls) and same error.
INFO:root:Short Switch 1
DEBUG:root:BACK TO SCREEN => layer
DEBUG:root:ZCTRL ‘Layer’: 2 (0 -> 5), None, None
INFO:root:Bold Switch 3
DEBUG:root:ZCTRL ‘Option’: 0 (0 -> 3), None, None
INFO:root:Short Switch 3
WARNING:root:zynthian_gui.zyncoder_read() => 0 (ERR)

I added a gig file in my-data…but it doesn’t show. (do i have to do anything else)
But I think, that is independent, because I had ui crashes yesterday without the .gig as well.

I changed my default snapshot which contained linuxsampler layers first with 2 fluidsynth layers.
during startup:

INFO:root:Load SoundFont => /zynthian/zynthian-ui/my-data/soundfonts/sf2/NiceMarkus.sf2 (1)
DEBUG:root:proc command: load "/zynthian/zynthian-ui/my-data/soundfonts/sf2/NiceMarkus.sf2"
ERROR:root:zynthian_gui.loading_refresh() => main thread is not in main loop
ERROR:root:zynthian_gui.loading_refresh() => main thread is not in main loop
ERROR:root:zynthian_gui.loading_refresh() => main thread is not in main loop
ERROR:root:zynthian_gui.loading_refresh() => main thread is not in main loop
ERROR:root:zynthian_gui.loading_refresh() => main thread is not in main loop

You have to copy the gig file inside a subdirectory in the “soundfonts/gig” directory. Take a look to “sfz” directory :wink:

i did…but it doesn’t show. nevertheless…the crash is gone with the new default.zss.
What are you working on next?
Bank/Program change?
Volume/Mastervolume?
Speaking of which. is it possible to change the cc7? My masterkeyboard seems to send other commands.

gigedit crashes when I open the file…but why does linuxsample doesn’t “say” anything?

root@zynthian:/zynthian/zynthian-my-data/soundfonts/gig# ls
cp70.gig

INFO:root:Connecting with LinuxSampler Server…
DEBUG:root:ZCTRL ‘Channel’: 0 (0 -> 16), None, None
INFO:root:Short Switch 3
DEBUG:root:CTRL Decay [ms] => ms
DEBUG:root:CTRL Dry Level [dB] => dB
DEBUG:root:CTRL Wet Level [dB] => dB
DEBUG:root:CTRL Comb Filters => None
DEBUG:root:CTRL Allpass Filters => None
DEBUG:root:CTRL Bandpass Filter => None
DEBUG:root:CTRL Enhanced Stereo => None
DEBUG:root:CTRL Reverb Type => None
DEBUG:root:CTRL Frequency [Hz] => Hz
DEBUG:root:CTRL L/R Phase Shift [deg] => deg
DEBUG:root:CTRL Depth [%] => %
DEBUG:root:CTRL Delay [ms] => ms
DEBUG:root:CTRL Contour [Hz] => Hz
DEBUG:root:CTRL Dry Level [dB] => dB
DEBUG:root:CTRL Wet Level [dB] => dB
DEBUG:root:BANK LIST =>
[(’/zynthian/zynthian-ui/data/soundfonts/sfz/Bass’, 0, ‘SFZ/Bass’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Brass’, 1, ‘SFZ/Brass’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Drum Machines’, 2, ‘SFZ/Drum Machines’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Drums’, 3, ‘SFZ/Drums’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Ethnic’, 4, ‘SFZ/Ethnic’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Guitars’, 5, ‘SFZ/Guitars’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Organs’, 6, ‘SFZ/Organs’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Other’, 7, ‘SFZ/Other’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Percussion’, 8, ‘SFZ/Percussion’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Pianos’, 9, ‘SFZ/Pianos’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Strings’, 10, ‘SFZ/Strings’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Synths’, 11, ‘SFZ/Synths’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Woodwinds’, 12, ‘SFZ/Woodwinds’, ‘SFZ’)]
DEBUG:root:BANK INDEX => 0
DEBUG:root:BANK LIST =>
[(’/zynthian/zynthian-ui/data/soundfonts/sfz/Bass’, 0, ‘SFZ/Bass’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Brass’, 1, ‘SFZ/Brass’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Drum Machines’, 2, ‘SFZ/Drum Machines’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Drums’, 3, ‘SFZ/Drums’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Ethnic’, 4, ‘SFZ/Ethnic’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Guitars’, 5, ‘SFZ/Guitars’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Organs’, 6, ‘SFZ/Organs’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Other’, 7, ‘SFZ/Other’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Percussion’, 8, ‘SFZ/Percussion’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Pianos’, 9, ‘SFZ/Pianos’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Strings’, 10, ‘SFZ/Strings’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Synths’, 11, ‘SFZ/Synths’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Woodwinds’, 12, ‘SFZ/Woodwinds’, ‘SFZ’)]
DEBUG:root:ZCTRL ‘Bank’: 0 (0 -> 13), None, None
DEBUG:root:CTRL Decay [ms] => ms
DEBUG:root:CTRL Dry Level [dB] => dB
DEBUG:root:CTRL Wet Level [dB] => dB
DEBUG:root:CTRL Comb Filters => None
DEBUG:root:CTRL Allpass Filters => None
DEBUG:root:CTRL Bandpass Filter => None
DEBUG:root:CTRL Enhanced Stereo => None
DEBUG:root:CTRL Reverb Type => None
DEBUG:root:CTRL Frequency [Hz] => Hz
DEBUG:root:CTRL L/R Phase Shift [deg] => deg
DEBUG:root:CTRL Depth [%] => %
DEBUG:root:CTRL Delay [ms] => ms
DEBUG:root:CTRL Contour [Hz] => Hz
DEBUG:root:CTRL Dry Level [dB] => dB
DEBUG:root:CTRL Wet Level [dB] => dB
DEBUG:root:BANK INDEX => 0
DEBUG:root:BANK LIST =>
[(’/zynthian/zynthian-ui/data/soundfonts/sfz/Bass’, 0, ‘SFZ/Bass’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Brass’, 1, ‘SFZ/Brass’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Drum Machines’, 2, ‘SFZ/Drum Machines’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Drums’, 3, ‘SFZ/Drums’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Ethnic’, 4, ‘SFZ/Ethnic’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Guitars’, 5, ‘SFZ/Guitars’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Organs’, 6, ‘SFZ/Organs’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Other’, 7, ‘SFZ/Other’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Percussion’, 8, ‘SFZ/Percussion’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Pianos’, 9, ‘SFZ/Pianos’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Strings’, 10, ‘SFZ/Strings’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Synths’, 11, ‘SFZ/Synths’, ‘SFZ’), (’/zynthian/zynthian-ui/data/soundfonts/sfz/Woodwinds’, 12, ‘SFZ/Woodwinds’, ‘SFZ’)]
DEBUG:root:ZCTRL ‘Bank’: 0 (0 -> 13), None, None

Strange … check permissions and “strange characters”. It should appear. It’s a simple directory listing!!

Regarding the crash, I’ve fixed the startup sequence and now it shouldn’t happend. Update :wink:

Next step is probably MIDI master channel. First bank/program change and master volume later, although i’m not sure of how to implement this. Alsa volume is not a good option because some DAC boards doesn’t have mixer at all. Perhaps we need to include an “output” gain. It would be the first step of a global “FX chain”.

What MIDI message use your keyboard for master volume? CC7 is the common one, but it’s not really “master volume”, it’s channel volume" master volume is defined in General MIDI as a SysEx message.

Regards,

You have to create some category subdir inside the gig directory. Take a look to “sfz” directory :wink:

being on midi channel 6
buffer[0]=213

Is this the first byte of the 2/3-bytes sequence?

fprintf(stderr, “MIDI evt %d,%d,%d type=%d\n”, ev.buffer[0],ev.buffer[1],ev.buffer[2], ev.buffer[0] >> 4);

MIDI evt 213,39,0 type=13
MIDI evt 213,36,0 type=13
MIDI evt 213,33,0 type=13
MIDI evt 213,29,0 type=13
MIDI evt 213,26,0 type=13
MIDI evt 213,23,0 type=13
MIDI evt 213,21,0 type=13
MIDI evt 213,18,0 type=13
MIDI evt 213,16,0 type=13
MIDI evt 213,12,0 type=13
MIDI evt 213,8,0 type=13
MIDI evt 213,4,0 type=13
MIDI evt 213,2,0 type=13
MIDI evt 213,1,0 type=13

Curious! It’s an after-touch message. What is your keyboard?

From the MIDI spec:

Channel Pressure (After-touch). This message is most often sent by pressing down on the key after it “bottoms out”. This message is different from polyphonic after-touch. Use this message to send the single greatest pressure value (of all the current depressed keys). (vvvvvvv) is the pressure value.

Thx, after rtfm…

MIDI evt 149,36,0 type=9

This is a note-on message … but with velocity 0, so no sound at all.

https://www.midi.org/specifications/item/table-1-summary-of-midi-message