Multiple soundfonts in Carla

All your LV2 and LADSPA goodness and more.

Moderators: MattKingUSA, khz

Post Reply
tizo
Established Member
Posts: 18
Joined: Tue Dec 16, 2014 10:54 pm

Multiple soundfonts in Carla

Post by tizo »

I have seen that in Carla, soundfonts can be loaded one by one. The Fluidsynth Calf plugin allows to load only one soundfont too. What I would like to do, is to load several soundfonts together and then control them with banks and programs changes from an unique MIDI connection.

Something like that is possible in Qsynth, where several soundfonts can be loaded with different offsets (so they are loaded in different banks). I guess (but I am not sure) that with fluidsynth it can be done in Carla too, but I am looking for a graphical alternative.

Thanks very much.
tizo
Established Member
Posts: 18
Joined: Tue Dec 16, 2014 10:54 pm

Re: Multiple soundfonts in Carla

Post by tizo »

Of course I can load more than one, but this is not what I want. I think that I was not clear enough.

What I want, is a way to change the sound with MIDI bank and program change messages for live performance. For that, I would prefer that the component sending MIDI messages (mididings in this case), send them over an unique MIDI port. And yes, I could configure mididings to send messages over one, or other, or another MIDI port, but it could be a little tedious when using several soundfonts.

Thanks very much.

P.D: I could imagine a plugin that would do the job. It would receive MIDI messages over a port, and split them over several ports (one per soundfont). When a bank change arrives, it would route the corresponding MIDI channel over one of the outputs ports until another bank changes arrives. The selection of the output port would depend on its configuration, and it should subtract an offset of the bank change message before resending it.
ssj71
Established Member
Posts: 1294
Joined: Tue Sep 25, 2012 6:36 pm
Has thanked: 1 time

Re: Multiple soundfonts in Carla

Post by ssj71 »

I'm pretty confident you can send program changes to carla's fluidsynth and it will go to that sample in in the sf2. I've done it. You might need to check the "send program messages" box in the edit dialog. With that, perhaps you should consider combining the soundfonts you like into one that has just the presets you use. For live use I wouldn't want to have extra patches floating around that I might accidentally switch to. Just my opinion.
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!
tizo
Established Member
Posts: 18
Joined: Tue Dec 16, 2014 10:54 pm

Re: Multiple soundfonts in Carla

Post by tizo »

ssj71

I know that program changes are working. What I wouldn't like to do, is to edit soundfonts to place all the sounds I need in only one. That's because I am always trying an using new ones. Besides, I have plenty of memory in the machine, and mididings scripts preconfigured that let me choose only the right patches, so I don't really care about extra patches loaded.

What I'd like in Carla, is exactly the functionality that Qsynth has for loading multiple soundfonts, not more, not less.

Thanks very much.
tizo
Established Member
Posts: 18
Joined: Tue Dec 16, 2014 10:54 pm

Re: Multiple soundfonts in Carla

Post by tizo »

Ok. Mainly I wanted to know if exists something like that; the other was just an idea. So I will continue with Qsynth for now.

BTW falkTX, I have just started to use Carla two days ago; I must say that it looks very promising, I feel really comfortable using it.

Thanks very much.
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: Multiple soundfonts in Carla

Post by Frank Carvalho »

As you can see from another thread, I am working with a similar setup. Fortunately switching between samples is not a problem. Fluidsynth does respond to MIDI PRG changes. What you have to do, is to collect the set of samples you want to use in a single soundfont. In my case, I have made a mellotron soundfont, which has banks of "flute", "3 violins", "8 choir", "brass" and a couple of combinations of those as seperate instruments. I can effortlessly switch between these instruments using MIDI PRG changes.

When you work with live setups, you usually represent each instrument with a steady set of sample instruments, and you really don't need to experiment with new samples. (Unless of course live experimentation is your thing). In my case, one sample set is "mellotron", and that one should cater for all my mellotron sound needs. And you may want to have each sample set on its own Midi channel, so you can access it by changing channel, which in my case means, that the mellotron is always on channel 2..

I control the setup from MidiLayer, and I have made a setup which has complete song settings. Each setting sends the necessary MIDI PRG into Carla (as well as to external Midi units, so the setup used in each song is always predictable, and always has the right samples ready. I guess this is what you want to do?

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
tizo
Established Member
Posts: 18
Joined: Tue Dec 16, 2014 10:54 pm

Re: Multiple soundfonts in Carla

Post by tizo »

Frank, thanks for your time. Maybe I'll give a try in the future to make my own soundfont; I thinks that's could be a good alternative. What do you use for this task? Swami?

With regards of Midi Layer, AFAICS it does not work with jackd, and I'd prefer to work with it. What I use instead is mididings. Although it seems to be not maintained anymore, it's still very useful. For example, if you use your own soundfont, with mididings you can replicate the same MIDI messages over two or more different channels and connections. That means that you wouldn't have to make the combinations as separate instruments in the soundfount; you could simply configure the so called scenes (I use these for songs) and subscenes (I use these for parts of songs) in mididings, to use different channels with different soundfont instruments (even with different synths) in each one, and with the same MIDI messages.
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: Multiple soundfonts in Carla

Post by Frank Carvalho »

What do you use for this task? Swami?
Swami, yes. It is really very straightforward to use, and produces soundfonts that immediately load and work in Carla. First you have samples, these are then put together into instruments, and then instruments are combined into presets. The list of presets becomes the same as the list of selectable MIDI programs. When you work with a soundfont, you can save each instrument individually, so you can build more than one preset from the same instruments.
With regards of Midi Layer, AFAICS it does not work with jackd, and I'd prefer to work with it.
??? I have only worked with it in combination with jackd, so it certainly works, although with the a2j-bridge. (I wouldn't know how to work it without). MidiLayer shows up in the a2j-bridge as separate in and out in Carla. I combine MidiLayer, jackd, Carla, NonMixer and selected soft synths for a complete working live setup. Carla takes care of the MIDI routing between MidiLayer and everything else. ML also provides "scenes", with tabs for each individual configuration you want to make, and you can specify individual midi filtering, channel routing, control and sysex messages and much more for each tab, and with a nice GUI. Each change of preset will change everything in parallel.

I haven't tried mididings, but will have a look at it. But so far MidiLayer does everything I need, in a very convenient way.

Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
yagojrocket
Posts: 2
Joined: Mon Jan 11, 2016 11:57 pm

Re: Multiple soundfonts in Carla

Post by yagojrocket »

Hello people, I found this topic interesting so here I am.

I have problems related to changing presets, I have an Alesis q88 controller, 88 keys without knobs or sliders (just one volume slider), with pitch wheel, modulation wheel and 2 assignable buttons.

I am using qsynth because I like how it works with multiple soundfonts, and in my case I set one preset per channel... the problem is: when I need to change between presets, I need to press one "advanced" button and one key of my controller to select the channel, and playing live with this configuration isn't very efficient when I need to automatically change presets. (In this case I need to press a button/key 2 times)

Another solution I found is to assign the channel midi change function to those 2 buttons, but when I need to jump from a preset on channel 1 to the channel 6 is not good. (In this case I need to press for X number of times)

And PRG change on this controller is even worst: "advanced" button + program number + enter (for this reason is more convenient to have 1 preset per channel)

Well, is there a solution to change presets with just one keystroke with my equip? any tip is welcome, it would be wonderful if I could change presets with midilayer with a single keystroke per preset, I loved the midilayer + qsynth combination.
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: Multiple soundfonts in Carla

Post by Frank Carvalho »

If your presets come sequentially, then MidiLayer can be used, as all your presets are listed sequentially. I switch presets by using cursor down for next preset. The only major drawback right now, is that MidiLayer uses a whole second to switch presets. That is a long time for live use. But since I built my preset list from the default bank, and that one has at least 16 or 32 (can't remember) tabs per preset, there might be room for improvement, as I think each tab takes time to process. I really only need two or three tabs per preset.

Just had my first live gig with my setup friday night, and the setup worked flawlessly. The setup impressed everybody.

/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
yagojrocket
Posts: 2
Joined: Mon Jan 11, 2016 11:57 pm

Re: Multiple soundfonts in Carla

Post by yagojrocket »

I totally forgot this thread :lol:

Well, I found a cool solution to my problem, some months ago I suggested something like "keystrokes to change presets" on Midilayer FB page, and they said that Midilayer was designed to use one preset per song, and I noticed that I really don't need one preset per patch, what about one preset per song (or scenario) with patches divided by channel? In this way I can change from patch to patch (inside the same preset or song) using midi channel changes with my + - assigned buttons on my controller. 8)

For example:
Song 1 (Preset 1)
Intro = Strings + Brass (Midilayer elements on Channel 1)
Verse = Crystal piano + Brass (Midilayer elements on Channel 2)
Chorus = Strings + Brass (Midilayer elements on Channel 1)
etc

When the song ends, I can change my preset and... voilà! I have another scenario with diferent new elements/splits/layers on the previously used channels. :D

In this way the things become more straightforward since my band has a diverse repertoire, and sometimes I need to build complex patches with odd layers and splits to each song, I was using QSynth to load my soundfonts but now I'm using Carla to load sf2 instruments individually since this give me more control over each midi layer element, and give me a new range of possibilities with GIG, SFZ, VST instruments etc.

This is my definitive set (I think), I need some tips, my Carla patchbay will become very populated if I need to load more instruments soon, managing a lot of instrument outputs and connecting into system playback directly doesn't sounds good, sometimes I need to use a mono output (or just the L or R output of my M-Audio interface), and reconnecting all instruments again would be a pain in the ass.

Is there a plugin that I could use to manage my audio output before my audio signal come to system playback? :?

Image
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: Multiple soundfonts in Carla

Post by Frank Carvalho »

This looks a lot like the setup I have made. I had the same issue with the signal path, so I also have an instance of NON-mixer running, to take care of the audio balancing, and effects send. I have a stereo strip for each instrument, with AUX send to a reverb plugin, a reverb bus and a master bus before it goes to the sound card. The Carla window gets really busy, but hey, that's why I use Carla.
To make it all work, I have made a small startup shell-script, that will start things in the right order with sleep between each program to give it time to init. The idea is to have all inputs and outputs ready before Carla starts, so Carla can just autoconnect everything. So its jackd with optimized parameters first, then a2j bridge, then MidiLayer with preset parameter, then NON-mixer with preset parameter, then the odd stand-alone synth (Bristol Solina stringer in this case), and finally Carla with saved setup parameter.
I have made all preset paths relative to the script, so it is possible to package the entire setup in a zip file, and move it to a different computer. This does of course require proper configuration of paths to plugin settings etc., but it is in fact possible to package the entire setup into one zip file.

My setups are too complicated to have one preset per song. I typically use a number of presets, like scenes, per song, and advance presets using using cursor down. I have been looking for an external MIDI PRG remote control because MidiLayer itself does respond to midi program changes so you should be able to change ML presets from a keyboard for instance. I use midi split exactly like you do, to assign an instrument per channel, and then have MIDILayer configure midi re-routing from my two controller keyboards to the appropriate sound. My controller keyboards are always on midi channels 1 and 2 when they arrive at ML, and then ML sends them to whatever instrument, split or whatever is needed.

Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
Frank Carvalho
Established Member
Posts: 363
Joined: Sat Nov 17, 2012 3:36 pm

Re: Multiple soundfonts in Carla

Post by Frank Carvalho »

Images of the setup I use:
Carla:
Image

and the corresponding MidiLayer setup:
Image

Startup shell script:

Code: Select all

#!/bin/bash

## Set irq patterns for cores.
gksudo  ./pimpmyadio.sh

# Disable power management
xset -dpms

# Stand-alone jackd for internal sound card
/usr/bin/jackd -S -R -P89 -d alsa -d hw0 -r48000 -p256 -n3 -D -Chw:Intel,0 -Phw:Intel,0 2>~/.log/jack/jackd.log &
sleep 5
/usr/bin/jack-keyboard &
/usr/bin/a2jmidid -e &
sleep 5

# Set a2jmidid real time priority
A2JPID=`ps -ef | grep "/usr/bin/a2jmidid" | grep -v "grep" | awk '{print $2}'`
chrt -p 77 $A2JPID

/usr/bin/non-mixer ./NonMixerTestSetup &

# 32-bit
#./MidiLayer-0.4.3-x86_32/MidiLayer-0.4.3  &

# 64-bit
./MidiLayer-0.4.3-x86_64/MidiLayer-0.4.3  &
startBristol -solina &
sleep 4
/usr/bin/carla ./TestSetupCarla.carxp &
and script pimpmyaudio.sh:

Code: Select all

#Setup irq interrupts

# CPU1 exclusive for snd
irq=`cat /proc/interrupts | grep "snd_hda_intel" | awk '{print substr($1,0,match($1,":"))}'`
echo "echo 02 > /proc/irq/$irq/smp_affinity"
echo 02 > /proc/irq/$irq/smp_affinity

# No ACPI interrupts
irq=`cat /proc/interrupts | grep "acpi" | awk '{print substr($1,0,match($1,":"))}'`
echo "echo 00 > /proc/irq/$irq/smp_affinity"
echo 00 > /proc/irq/$irq/smp_affinity

# All other interrupts on CPU0
for irq in `cat /proc/interrupts | egrep -v "snd_hda_intel|acpi" | awk '{if(match(substr($1,0,match($1,":")),/[0-9]+/)) print substr($1,0,match($1,":"))}'`
do
  echo "echo 01 > /proc/irq/$irq/smp_affinity"
  echo 01 > /proc/irq/$irq/smp_affinity
done
exit
Notice another detail; I also use ML to control an amplifier of two input channels, so I can take in audio from physical instruments, and blend into the mix with the NON-mixer, and still have it controlled by the active ML patch.


/Frank
Vox, Selmer, Yamaha and Leslie amplifiers. Rickenbacker, Epiphone, Ibanez, Washburn, Segovia, Yamaha and Fender guitars. Hammond, Moog, Roland, Korg, Yamaha, Crumar, Ensoniq and Mellotron keyboards. Xubuntu+KXStudio recording setup.
Post Reply