Programming U-He’s Zebra 2,Zebrify and ZebraHZ – DYCP Week 7

I love Zebra. I’m a convert. I see why Zimmer likes it so much. It’s so EASY to use and makes these funky, powerful sounds really quickly with very little effort. I can see it being a massive time saver with certain kinds of music. I have only 2 small gripes – there’s no bypass function on the modulators, and there’s not much in the way of visual feedback of modulation on any given parameter. The GUI all looks quite static even when, clearly, audibly, there’s a lot of movement going on under the hood.

The writer of the manual is a brilliant educator with a quirky, dry sense of humour. I don’t doubt the ease with which I picked up the ins and outs of this tool is mostly down to this person.

As an aside, and encouraged by Zebra’s XYPad Performance area, I’ve dug out TouchOSC on iPad for this program only and it is quite a bit of fun. I forget sometimes when I’m up against a tight deadline that a large proportion of my job could be fun if I had a tiny bit more time to just let myself play rather than be always so focussed on the end goal. It’s a perennial problem, but this self-directed project has a been a welcome opportunity to address more fully this time, and to set up some channel strips in Logic that I can use as templates for future uses of Zebra and other synths with external controllers, so I don’t have to set up the mappings every time I open a new instance. It’s the little things, you know.


Journal

2/2/22 (!)

ZebraHZ is ostensibly the same as Zebra 2 with a few extra bells and whistles. It was useful to go through the HZ manual to remind myself of everything I’ve gone over in the last few days and do a compare and contrast alongside an instance of Zebra 2. Cemented some knowledge there.


1/2/22

Zebrify is learned. Moving on.

SO since I also have the ZebraHZ version that apparently is a more souped-up version of the original Zebra 2 (I really wasn’t paying attention when I bought either, clearly) I’m going to have a proper look over that now. It has a few extra modules and a slightly different layout to fit their property pages in, but, on the whole, it’s basically the same beast.

Ok… it has a lot of extra modules and customisability, so, since anything that works in Zebra 2 (ie the original installation presets, any preset libraries I’ve downloaded separately and any that I’ve made) should work in Zebra HZ, then, if I’m going to be modifying/customising existing presets, I could probably only work with ZebraHZ and have the extra bits and bobs at my beck and call. Good to know.

2 asides, whilst I remember:

  1. PRO – Zebra’s zoom function is a wonderful thing. All plugins (and apps, for that matter) should take note. Don’t penalise people for not being able to read your tiny tiny text – I’m looking at you Native Instruments
  2. CON – Modulating a parameter doesn’t visually show the modulation on the parameter knob. This is a bit frustrating, as – at a glance – it’s not always intuitive what modulation is causing what parameter to change the sound. 
  3. Also another thing CON – you can’t disable or bypass modulators eg ENV 1 or LFO 1. This makes it awkward to temporarily stop the effect of a modulator on all the parameters that it’s affecting at once. You can set any assigned parameter’s modulation knob to ‘none’ instead of the particular modulator, but if said modulator is also routed to more than one parameter – say, on various different modules – you have to remember each one if you want put it back the way it was (the ‘undo’ button also works for this – but it’s still several steps where a simple fix would allow it to be only one step). Not ideal.

In all, I’m liking the way Zebra is put together. I think its capacity to make a near-infinite number of sounds is quite inspiring, and, on the whole, the interface is moderately intuitive considering the sheer epic number of controls it’s possible to tweak and modulate.

When it comes to the ‘Performance’ tab, this feels like it would take the most time to plan and set up properly, but in practise it’s the most fun to play with (in presets where all the XY Pads are already set up). For instance – if you’ve a number of effects or modules that are controlling the distortion of the sound, it’s worth considering in advance which parameters within those modules might be worth assigning to an XY Pad whilst the sound is being created and making a note of that separately to save time later, or to add it to the pad there and then (though that doesn’t necessarily make for the most intuitive or efficient workflow).

It’s also considering how you group any effects on the sound – cutoff and resonance are an obvious pair, with one on the X axis and the other on the Y on any given pad. Reverb is another. Chorus and ensemble another. The quality of the sound – brightness or smoothness, tone quality, the type of waveform creating the sound, timbre… all of that would work well on a single pad.

And then I wonder if perhaps I’m overcomplicating matters! I don’t want to ‘perform’ per se… but, as I say, it’s fun to play with once it’s all set up. The fun sparks ideas, so I see it as essential rather than an add on, so whilst bothering to programme in XY Pads on the Performance tab is an extra layer of complexity, it’s worth persuing, so it’s worth considering at the start of any preset’s invention and design.

I think this is the defining difference between sound design and composition – my approach to sound design is experimental, whereas composition is more deliberate from the start. Sound design may not have an end goal – it’s more ‘what happens if I do this…’, whereas composition is ‘how to I get to there…’. It is, perhaps, semantic, but it’s a distinction that determines the purpose, which in turn determines the process. Not to say that one can’t switch between the two, but that, when there’s a deadline the distinction helps to be more efficient. When there’s no deadline it doesn’t really matter. I guess then it’s more about context.

But I digress.


31/1/22

The manual continues to be a joy (! never thought I’d say that about a manual…) to follow.eg (italics+bold are mine)

“Arp Modulators The optional bipolar sliders labelled and can be used to modulate any targets (e.g. VCF cutoff and Glide rate) in step with the arpeggiator. For reasons that shall remain a mystery, the corresponding modulation sources are called ArpMod and ArpMod2. “

This person has an adorable sense of humour. I think we would get on.

I’m all the way to the end of the manual. I’ve made a few ‘instruments’ but they’re mostly just by following tutorials, so I don’t really count them as my creations without some more modding.

Zebra, while at first glance seems pretty complicated (and I was quite put off just noodling around with it when I first bought it because it looked so dense ), is quite a straightforward, powerful, and very customisable synth. I’m a convert. Plus I feel like now I’m BFFs with the individual who wrote the manual.

Excellent – in other news. Zebrify (which comes packaged as a separate plugin with Zebra) is just the effects module, so I can apply it to recorded audio. I think I knew this when I bought it (whenever that was) but I forgot. But now I know! Hurrah.


26/1/22

Perhaps I was a little harsh saying Logic’s ‘Smart’ Control mapping system was janky. It’s ok, and it works fine for plugins that for some reason don’t see incoming midi signals directly (or Logic doesn’t route them – eg for audio effects plugins. I can see how it might confuse matters if you want to send midi control information to the main instrument plugin on the channel, not any audio fx plugin.

But I did find another weird behaviour with Logic’s smart controls – say you want to change the smart control layout – its GUI appearance, and how many knobs are available. Say, Logic has automatically selected a layout with only 8 knobs, but you’d like 12? If you switch to 12, then switch back again, the layout might change and you end up with an unmapped knob or two and the rest in a different order. It’s the *order* of knobs that dictates how external controllers are mapped. Not the identity of the knob itself.
In theory, this is ace, because externally mapped knob 1 will always control smart control knob 1, whatever the internal mapping is, so you don’t have to label that on the external controller. It’s easy enough to remember. One might say logical.

BUT if you faff around (like I like to do), picking out different layouts, then return to the original one, then the internal mapping (from the smart control knob to the plugin control) will change. And this is a bit annoying if you haven’t saved your original internal mapping as a channel strip. There’s some internal coding that says how the mapping is translated from one mapping to the next, and it isn’t consistent

But you live and learn. It’s just the way this system works. I wonder how it works in Cubase – is it any more intuitive? Note to self: investigate.

ANYWAY. Back to Zebra’s manual I go (which seems very logical so far).

Whoever wrote this manual is a lovely, encouraging human:

Here are a few bullet points to get you started. Especially for Category tags, following a step-by-step tutorial is much easier than studying a full technical description. Try these: …(easy tutorial follows as straightforward, bullet point, follow-along instructions, then this)…Repeat the above a few times if necessary – you’ll soon get the hang of it!

This human should be paid much money to write all manuals everywhere.

And more!

This button selects the basic mode for the current oscillator: Geomorph, SpectroMorph, GeoBlend or SpectroBlend. All will become clear in the next few pages…

Lovely human, thank you for your kindly guidance.

Despite looking quite fiddly and complex… after following the kindly guidance of whoever wrote the manual, Zebra seems pretty straightforward and very powerful.

The only thing that looks awkward is getting recorded audio into the wavetable, if I wanted to do that for some reason, the same way you can with Serum. On a quick google, it seems like it’s doable but tricky and there are few (if any) solutions for Mac (which is what I’m on) rather than PC; it also seems like it’s been requested as an update for the next version of Zebra.

Considering it’s so easy to import sound into Serum, I’m surprised it’s so hard to do so in Zebra, but then it’s easy enough to draw a waveform into Zebra, and the imported sound in Serum was soooo very different as to be unrecognisable from the original audio.

I don’t think Serum nor Zebra’s strengths lie in importing externally recorded sound, but in the near-infinite combination (in Zebra’s case any way) of all its possible modules, signal routing and parameter modulation.

(ALSO – I wonder if you can you Zebra as an effect plugin*)

*see above – yes you can, it comes packaged with Zebra, and it’s called Zebrify


25/1/22

Running through the tutorial in the Zebra manual (very well written and straightforward so far) I see how principles from Serum <link> are applied – they’ve not called it a wavetable (yet), but a wavetable is what I’m working with in this particular example. 

As expected the rest of the Get Started tutorial was a great, easy-to-follow introduction. I’ve used many presets in Zebra before but only occasionally tweaked any settings by getting a bit put off by the complexity of the thing (usually up against a deadline etc etc). But after going through the super basic tutorial I think I’ve got a bit more of an ‘in’ with some of the more complicated options. *Famous last words*

Bit esoteric and not really Zebra-related, more to do with Logic and external controllers… I was faffing around with mapping Logic’s ‘smart controllers’ and Touch OSC on iPad (I’ve retooled ‘ZebraTouch’ by Daniil Kemperov and put it in my master Touch OSC template), but it meant that I was losing the mappings from my little midi controller. They were being replaced by the Touch OSC XY setup I’ve got, but I don’t want it to do that. I want to be able to use Touch OSC just for Zebra and keep the other hardware midi controller’s mappings when I go to another instrument.

But hey! – then I just realised that Zebra will take the midi directly, it doesn’t need Logic’s (somewhat janky) smart control intermediary mapping system.

So I can leave the little hardware midi controller’s mappings on the smart controls (as they are useful for instruments that for some reason aren’t happy with a direct midi CC input), change Zebra’s internal midi mapping to match the same CC mappings just in case I’d rather use the hardware controller’s knob for one parameter rather than Touch OSC’s XY matrices, then tweak the TouchOSC ‘ZebraTouch’ template to send those same CC’s.

I KNOW – I wish there was an easier way of saying this that sounded like, you know, English. But there you have it. At least I’ve got it to work the way I want it now. Hurray!