The number of channels in a block don’t affect whether you get gapless switching.
How come?
The number of channels in a block don’t affect whether you get gapless switching.
Because that’s how the system is designed.How come?
Yep.magic
(But doesn't every block basically have 4 (or whatever number) channels? Even if you don't use the channel, it's still there)
n
channel-chunks of memory. And it would have to happen for every preset, they’d have to be read sequentially through the system’s memory if channels were allowed to be up-to four. Or there’d have to be additional code that keeps track of where every preset begins in memory, which would eat into the saved memory space….Just a note that we're still working on this. Some of our staff has been out of work with persistent seasonal illnesses.Will gap/seamless switching be a part of the next update for FM3/FM3Turbo?
Yep.
Pre-allocating memory helps when processing speed is needed because the system then knows there are four chunks to read and grabs that many bytes and splits it into what it needs. The code has it all predefined after compilation.
Not pre-allocating and pre-defining means the code starts reading at the beginning of the block and searches for an indicator of the end of the channel’s information, or has to at least read a length byte saying grabn
channel-chunks of memory. And it would have to happen for every preset, they’d have to be read sequentially through the system’s memory if channels were allowed to be up-to four. Or there’d have to be additional code that keeps track of where every preset begins in memory, which would eat into the saved memory space….
Speed is extremely important for this type of system, and knowing ahead of time how many bytes it needs to read is a good way to get there.
Knowing the language they're using gives us some hints; IIRC, it's C++ and C loves structs, and it's really easy to tell it to iterate/grab/skip over big blocks of that particular struct-sized memory quickly and then grab the individual components/members that are also known sizes from that block. It's crazy flexible that way. I've always considered programming languages as if I was digging a swimming pool, what tool would I want, a spoon, a garden trowel, a shovel or a backhoe. C/C++ is all those things.I think this is what they are doing. […]
I think you got it figured out.I know this is greatly simplified (and potentially very incorrect)
Just a note that we're still working on this. Some of our staff has been out of work with persistent seasonal illnesses.
How do you mean? The FM3 is worked on separately. It's not like the FM3 team is having a lovely vacation in the tropics while others work on the FM9. I'm sure they're constantly working on porting features over as Cliff comes up with them for the Axe-Fx III.you can try to extrapolate the time between the fxIII and the fm9 firmware release posts and give us the results for the remaining waiting time for the fm3 release