New features: Sub-snapshots, setBfree Keyboard-splits, Combo-organ model and more!


#1

Hi @zynthianers!

I’ve been working on some nice new features and improvements. The changes are not merged in the master branch yet. I would prefer to do a good testing before …

For getting the changes into your zynthian, you have to use the development branch:

cd /zynthian/zynthian-ui
git fetch
git checkout setbfree-multiconf
cd /zynthian/zynthian-data
git fetch
git checkout setbfree-multiconf
/zynthian/zynthian-sys/scripts/update_zynthian.sh
reboot

And these are the main changes:

Sub-snapshots:

I use “zs3”, that means “Zynthian Sub SnapShot”. The idea behind this feature is to have a fast preset-change mechanism, easily mapable to MIDI Program Change events. For achiving this, i’ve modified the UI workflow:

From the Zynthian-UI control screen, you bold-click the snapshot button. You will see a green message: “Awaiting for a Program Change event…”. Simply push a “Program Change” button in your keyboard/controller and the zs3 will be stored in memory, associated with the Program Change number you send. After that, you can recall any stored zs3 by simply pushing the same PC button again. The memory-stored zs3s will be saved with your snapshot and restored when it’s loaded again.

Every zs3 includes:

  • Layer ID
  • Bank
  • Preset
  • Controller values

As you can see, it has sense in a SnapShot context, where a set of layers are defined. Zs3 changing is very fast, as no engine must be started.

In combination with the “Single Layer” feature, it turns Zynthian in a “Stage-Beast”. You can prepare a snapshot for the full performance, and use zs3 for fast changing from a song to another, or inside the same song.

BTW, given that workflow had to be modified, i decided to add a “touch-less” mechanism for CC MIDI-learning:

  • From the Zynthian-UI control screen, you bold-click the snapshot button. You will see the green message: “Awaiting for a Program Change event…”. Then you short-click again, and you will be in CC MIDI-learn screen. It’s indentical to the Control screen, but all the for controllers have a tiny green “???” in the bottom.
  • Move a zynthian controller, it will remain with the tiny “???” while the other 3 will go back to normal state.
  • Finally, move a knob/fader in your MIDI keyboard/controller and the binding is done. The new CC number should appear in the bottom of the learned controller.

setBfree improvements:

Most of keyboard players love to have a decent Hammond emulation. So i’ve been working on improving setBfree-zynthian integration, thinking in the stage-player needs:

  • Manual configuration and Keyboard splits: I’ve added a select screen like this:

    • Upper => 1 layer
    • Upper + Lower => 2 layers (and 2 MIDI channels)
    • Upper + Pedals => 2 layers (and 2 MIDI channels)
    • Upper + Lower + Pedals => 3 layers (and 3 MIDI channels)
    • Split: Upper + Lower
    • Split: Upper + Pedals
    • Split: Upper + Lower + Pedals
  • Controllers feedback: in setBfree there are some controllers that are related to others. Changes in the value of one of this controllers will change the value of the others, etc. For dealing with this, setBfree have a MIDI output port, so cascade-modified controller values are sent as CC feedback events. This remained to be implemented in Zynthian … until now :wink:

  • Tonewheel generator model (waveform): Although most of people love the original Hammond sound, based in sinoidal waveforms generated by electro-mechanical tonewheels, some genres from 60s and 70s used “Combo-Organs” like the “Continental Vox” and the “Farfisa Compact” that used transistor circuits to emulate the Hammond sound. These combo organs also used square and triangle waveforms, what completely change the sound you get. It’s the “cheesy” sound, very used in some famous themes from psychodelia, etc.
    I spent several days playing with “foo-yc20”, that it’s a free software combo-organ emulator. I’ve compiled the last version, and added some optimizations and CLI options needed for having a decent Zynthian integration. It’s almost done, but foo-yc20 faust self-generated DSP code is quite CPU intensive and our beloved RBPi is not enough for having a good playing experience. Ohhhh!! Perhaps RBPi4 will be enough.
    But don’t worry… while tweaking the setBfree config i found a few lines in the configuration file that i’ve totally forgotten until now. Using these options it’s easy to modify the waveform used by the tonewheel generator. Adjusting the sub-harmonics in the right way you can get a decent triangle or square waveform … so … I added a second select screen like this:

    • Sine
    • Square
    • Triangle

The result is quite curious, and it really sounds “cheesy”, specially when you use the right drawbar combiantion with vibrato. Of course, it doesn’t fit the real sound of any vintage combo-organ, but i’m pretty sure that you will enjoy playing those psycodelic grooves you love :wink:

And that’s all … ups … or not!! Have i told that i refactorized all the engines for using “pexpect”? :wink:
I hope this change will increase the stability of zynthian UI, specially when loading snapshots, and also should simplify the creation of new engines.

Enjoy!


#2

Really??? Not more??? :rofl:

Ok - that’s really fantastic :heart_eyes:! I am so curiuos… many thanks!!!

Regards, Holger


#3

Well… all those good news, and I just found this on my desk… could it be a sign of destiny saying “it’s time to build a second Zynthian”? :smiley:


#4

It’s clearly a sign of destiny, my friend!! :smile:


#5

I even have everything at home to build one. rPI, display, an audioinjector board… even a Leap Motion controller (playing zynthian as an “air guitar” is a little more manageable than using a full sized laser harp… how do I know? I have built one of those too :D)

It’s just the spare time that’s missing :smiley:


#6

Me, too. But I hope I can find some time around xmas. Would like to use a midi-looper :smile:


#7

A little demo of Combo-Organ “cheesy-sound” with setBfree:

Excuse my poor playing and the clicks on the recording. It seems that there is some problem with recording to the SD card … jajaja! OK! I know it’s not recommended :wink:

Enjoy!


#8

There are little bluetooth gyro-accelerator that could give the feel of a pick, someone is marketing an air guitar for cell phones. (I wish there was a Zynthian utility menu entry or web interface for switching on Bluetooth midi, which kills serial MIDI on a Ras Pi)

The $19.95 AirJam

There’s a Wireless MIDI gesture controller with it’s own low latency wireless interface Ring being marketed to serious players that should be more snappy than bluetooth. It’s been in “pr-eorder” limbo for some time 319.00 euros.


.
.
.

nRF51%20Sensor%20Tag%20on%20hand%20sm
Here’s a slightly more gaudy piece of jewelry for doing the Bluetooth route for under $20, has a coin battery socket and a few sensors, if sealed in a box you might be able to blow in it to change the atmospheric pressure.
(documentation is hard to find but available)


.
.
.
The Leapmotion relies on some pretty heavy stereo camera processing by a PC. That’s probably not a likely candidate for a controller, unless it emerges from a PC (Unity3D has a Leapmotion interface available, you can probably process it a bit with C# and output USB MIDI (a monitor showing how the hands are interpreted would be a great aid.)

Leapmotion and Web MIDI?

There’s an obscure Chip with built in 98x98 IR camera and DSP that can track 16 objects in 2D space, it’s native optics focal length is mouse oriented, but some masterful engineer/coder might be able to get it to track painted marking on a hand. It’s the pixart.com.tw PAJ7025R2


#9

Do you know “Light my fire”? (classic cheesy organ)


#10

I know the song, but not how to play it :rofl::rofl: … Ray Manzarek’s playing is fucking crazy and i can not do what he does. His brain must be separated in 2 independent parts. I could learn to play the bass part (it’s a Fender Rhodes Bass) or the right hand (it’s supossed to be a Continental Vox), but i don’t think i can play both at once … whoaoooo!! :open_mouth::open_mouth:

Regards,


#11

Yup. Indeed we used a small Intel NUC… well … small in form factor, but it was an I7 with 16GB :wink:


#12

The Leapmotion rewrite for VR has been in beta for like 2 years, that’s a bit worrisome, the scattered IR laser 3D sensor used in the kinect game interface (also on iPhone 10) is a more sophisticated, and had a development environment for the PC version, seem to be long gone, but one might be able to work with one from a thrift store.
A full body interface would be more interesting on stage.

http://www.kinecthacks.com/kinect-midi-controller/


#13

Wow! program change is terrific!! :blush:


#14

It can be better … :star_struck:


#15

Kinect… Yep… Have one.I modified this for PC connection and I use it as a 3D scanner… :slight_smile:


#16

Now it’s better. Update and try it :wink:

Regards,


#17

wow… the entire list of programs :smiley:


#18

Yellow ?? first before you select the encoder . . . Needs a mouse or touch screen equivalent of second encoder press because you want to do a lot of mapping from remote controllers like a Motor61


#19

But there is a MIDI-learning touch-interface already, @wyleu :wink:


#20

Give us a chance there are lots to work through… :smiley:

The program change mapping is certainly nice. It cuts out lots of mental gymnastics to remember which pc maps to which sound.

From a usability point of view when configuring a lot of external MIDI cc’s etc I’m finding a mouse and on screen cursor is a lot quicker than using the encoders and the touch screen, to set up the mappings but that could just be me.