But the actual problem has just been circumvented by the user.
From scratch:
1. I create a Fluidsynth layer
1#FSPiano -> Ch1
Now I use the sustain pedal on Ch1 - OK works.
2. then I create a 2nd Fluidsynth layer
2#FSRhodes -> Ch2
Now I use the sustain pedal on Ch2 - OK works.
Now I want to play both from MIDI Ch1
3. I select 1#FS and use Clone MIDI to … [CH2]
Result: sustain (MIDI-CC 64) is just recognized by the 2#FSRhodes layer only. Which means I can’t use sustain on the 1#FSPiano
Imho there should at least be some CCs that are used on all cloned layers. These are: CC#1, CC#2, CC#64, CC#67, CC#68, CC#69. For the time beeing, that should at least satisfy the piano players
64
Damper Pedal / Sustain Pedal
On/Off switch that controls sustain. (See also Sostenuto CC 66)
65
Portamento On/Off Switch
On/Off switch
66
Sostenuto On/Off Switch
On/Off switch – Like the Sustain controller (CC 64), However it only holds notes that were “On” when the pedal was pressed. People use it to “hold” chords” and play melodies over the held chord.
67
Soft Pedal On/Off Switch
On/Off switch - Lowers the volume of notes played.
68
Legato FootSwitch
On/Off switch - Turns Legato effect between 2 subsequent notes On or Off.
And here’s the stretch: for all other MIDI-CC there should be a MIDI-filter for every layer, be it cloned or not. I know this goes a long way, but that would be so great!
With such a system, you could make the most use out of synth stacks and a MIDI controller.
I tried, but as I understand MAP that can’t work.
If I type
MAP CH#0 CC#64 => CH#1 CC#64
I can use the pedal on the 2#FSRhodes → Ch2 but then it is gone on the piano on Ch1.
Then, if I type
MAP CH#0 CC#64 => CH#1 CC#64
MAP CH#0 CC#64 => CH#0 CC#64
or even
MAP CH#0 CC#64 => CH#1 CC#64
MAP CH#1 CC#64 => CH#0 CC#64
The the second mapping overrides the first one and now only the piano has the pedal working.
I guess, once you map sth it is taken out of the MIDI stream.
It would be cool to use multiple mappings, though. Meaning one source to many destinations. Or as you implied a COPY function for that matter, which leaves the original message as is and truly copies the message to the other channel.
The lesson here is that no one needs a reason to dislike things. Give them a go and if you find it distasteful then try something else but remember that tastes change and you may find yourself back at the code store asking to taste it again in a few years. Now what did Fortran taste like…
Go ahead, its’ a ll a broad church. I tend to stop when I hit the C layers as that’s not my world, but get your fingers dirty. Obviously the zynth itself is basically python around a C core, and to mix anything else in would be involved. . .
Course what takes place in the hideous worlds of the engines is a completely different debate and best left to the Baby eating bishop of Bath & Wells and other such luminaries who live outside of paradise . . .
Python should be pretty easy if you speak fluent C,
Once you’ve got indentation sussed (no {} ; and lays out tends to make it always look the same…)
It’s pretty simple
() are tuples: Immutable series
[] lists mutable series
{} dictionaries hashes
def … functions returns None if nothing specified. Parameters generally passed by reference, but massive flexibility ) . Also first class objects so can , and often are, chucked around like confetti . . .
class Object Orientated bit,
Instantiated with init method, and object passed around as self within the object. . .
tuple list and dictionary comprehensions used a lot to cut down on typing and indents
Fortran… I still use assembly instead of C in many of my firmwares because I don’t trust compilers for critical sections, and I won a programming challenge in… gosh… INTERCAL… and I actually liked it…
Hi! Don’t waste your time with this … i was working a little bit and have a good solution, although not finished yet… I’m pretty sure you will love it …
FYI, the hardest part is C code (the MIDI router stuff), and python is used only for the UI, so you will enjoy reading it