Any modern alternative to Shortcircuit?

Sampler and Sampling discussion (techniques, tips and tricks, etc.)
RELATED
PRODUCTS

Post

wikter wrote: Fri Apr 18, 2025 2:29 pm
audiojunkie wrote: Wed Apr 16, 2025 12:46 pm Sfizz-UI is more of a library player than a sampler. It doesn’t have a GUI for creating instrument presets. That’s been the Achilles heel of SFZ since the beginning. Things would be completely different for SFZ if an open source GUI-based instrument creator had been developed by someone. SFZ is a nice format, but the ability to code the gui components and the midi cc controls and such that make SFZ really useful is outside of the abilities of a non-programmer to create from a text file. Most musicians are not programmers. This is why Shortcircuit-XT holds so much promise.
DiscoDSP Highlife
I fail to understand why you have posted DiscoDSP Highlife. Do you even own it? I do. Highlife, and Bliss both have the ability to create sampled instruments from other VSTs (at least the old version of DiscoDSP Highlife does, the new version had the ability removed). But that has nothing to do with it being a gui based SFZ instrument creator. It can't create midi CC capable SFZ files. In fact, both Highlife and Bliss use such a small number of SFZ opcodes that they barely get beyond the sample mapping stage. I believe, when I checked last, that in total, less than 10 opcodes were used to create the instruments that SFZ and Bliss make. They are as limited as the ones I make--in fact, more so. If you want to post a useful example, you need to mention a synth. For example, Altitude uses SFZ instruments for the sampled oscillator section of the instrument, and uses regular synth tools such as filters, midi cc, adsr, etc., etc., as a synth. Everything is accessible. I don't meant to be rude or negative in any way. I really don't. But DiscoDSP Highlife is a poor example.

Sadly, when it comes to SFZ for most users, it really is the synths that use SFZ as oscillators that have made the format useable, with the exception of those few SFZ instruments that have been designed by those who understand coding and can code in the opcodes that are required for Midi cc code of those important things that I mentioned above. This is why Shortcircuit holds so much promise. :)
Vendor‑Dependent Copy Protection: Customers lose. Pirates win.:mad:
(Also: I'm Accused of lying about Linux—it boots, runs my pro audio workflow, stays stable, updates--though yearly dismissed as “niche”. Yet I'm the deluded one.)
:roll:

Post

But that has nothing to do with it being a gui based SFZ instrument creator
In fact, both Highlife and Bliss use such a small number of SFZ opcodes that they barely get beyond the sample mapping stage
Contradiction.
Highlife 1.4 was able to create & edit SFZ files, but you prefer other tools.

Post

wikter wrote: Fri Apr 18, 2025 9:40 pm
But that has nothing to do with it being a gui based SFZ instrument creator
In fact, both Highlife and Bliss use such a small number of SFZ opcodes that they barely get beyond the sample mapping stage
Contradiction.
Highlife 1.4 was able to create & edit SFZ files, but you prefer other tools.
Are you really, purposely trying to fight with me?! Or is English a second language? I don't know if you realize how offensive, condescending, and aggressive your statement sounds.

You are, of course incorrect in both your assertation and in your accusation. I was given a copy of Highlife back when Arguru was still alive. You may have to look that up to see who that even is.

My copy is an old Windows version of the software--I believe it is pre version 1. Seriously, I'm talking about 20 years ago. I use Linux these days. Highlife 1.4 does not exist in any legally available form, to my knowledge. There was a short period when it was available for non-commercial use, but that was immediately removed. The only existing "legal" version of highlife is 2.3--again, to my knowledge.

"Highlife 1.4 was able to create and edit SFZ files, but you prefer other tools." False accusation. Furthermore, please demonstrate how Highlife was able to "edit" SFZ files in version 1.4? You can't even edit SFZ files in version 2.3, let alone version 1.4. I am having serious doubts that you've ever even used the software.

This is all that highlife supported back in 2009:

HighLife SFZ Implementation

HighLife supports a subset of the sfz specification v1.0 opcodes. Unsupported opcodes can be included in the file. These will be ignored and should not cause any errors or misinterpretations. Unsupported headers (sfz v2.0 or third party) will be skipped. The parser will jump the next header if it finds an unknown one and ignore all opcodes inbetween.

Supported sfz Opcodes
sample, lokey, hikey, lovel, hivel, offset, tune, pitch_keytrack, pitch_keycenter, transpose, volume, pan, loop_start, loop_end, loop_mode, loccN, hiccN, lobend, hibend, lochanaft, hichanaft, lopolyaft, hipolyaft, trigger, group, off_by.

Supported Sfz Headers
<region>, <group> (new)

-----------------------------------------
My copy of Highlife is older than 2009.

Please, for the sake of civility. Don't turn a discussion into a fight. I am a fan of Shortcircuit-XT. I'm passionate about all of this, as I am sure that you are as well. Let's keep it civil.
Vendor‑Dependent Copy Protection: Customers lose. Pirates win.:mad:
(Also: I'm Accused of lying about Linux—it boots, runs my pro audio workflow, stays stable, updates--though yearly dismissed as “niche”. Yet I'm the deluded one.)
:roll:

Post

audiojunkie wrote: Thu Apr 17, 2025 6:25 pm
...
I'll take your word for it. Maybe you can help with a template that will make me no longer need to complain about the difficulties of programming SFZ text. But I have to say, that what you are showing here is not what I'm referring to. I'm referring to midi CC controlled items, such as midi cc controlled ADSR, modulation, cutoff frequency, resonance, pitch wheel control, vibrato wheel control, volume control, pan control, etc. etc. Open and available for anyone to use their knobs on their midi controller or automation in their DAW. Things become a whole lot more difficult when trying to set up and control that stuff. And that stuff is what takes a plain boring sample to the next level of being useful. Are you able to set up a generic template that can be appended to the beginning of any SFZ text file? That's what I am needing and wanting. :)
So, at sfzformat.com --> tutorials you'll find all sorts of
examples, suggestions, and templates. Everyone should surf
there and try out the examples.

Of course, it's as simple as I said. Let's take your ADSR case.
The simple definition is this:

ampeg_attack=0.01
ampeg_decay=0
ampeg_sustain=100
ampeg_release=0.2


If you want to control it with MIDI, just write:

ampeg_attackcc73=0.5
ampeg_decaycc75=1.0
ampeg_sustaincc76=1.0
ampeg_releasecc72=0.5


The number indicates the "range." For example, "0.5" means that
you can control a range of 0 to 500 milliseconds with the cc73 MIDI
controller using 0 to 127.

To have a controller on the sfz player, you must also specify:

label_cc73=attack time
label_cc75=decay time
label_cc76=sustain
label_cc72=release time


And it's just as easy with all the other parameters.
It's explained again here. It's just as easy with modulation,
cutoff frequency, resonance, pitch wheel control, vibrato
wheel control, volume control, pan control, etc. etc.

Of course, it would be great for many people if Shortcircuit already
had these options as buttons and controls, but anyone can
construct them almost instantly on their sfz player. :wink:
free mp3s + info: andy-enroe.de songs + weird stuff: enroe.de

Post

audiojunkie wrote: Fri Apr 18, 2025 11:12 pm Are you really, purposely trying to fight with me?! Or is English a second language? I don't know if you realize how offensive, condescending, and aggressive your statement sounds.
You are, of course incorrect in both your assertation and in your accusation. I was given a copy of Highlife back when Arguru was still alive. You may have to look that up to see who that even is.
My copy is an old Windows version of the software--I believe it is pre version 1. Seriously, I'm talking about 20 years ago. I use Linux these days. Highlife 1.4 does not exist in any legally available form, to my knowledge. There was a short period when it was available for non-commercial use, but that was immediately removed. The only existing "legal" version of highlife is 2.3--again, to my knowledge.
Really? :hihi: :borg:
Highlife 2.2 (my current VST64 version, i'm still keeping a 1.4 version since 2006) exports SFZ files the same way old versions did. What's the problem? Not enough opcodes supported? It's exporting SFZ files anyway.
You can use it or you can leave it.
Highlife 1.4 does not exist in any legally available form
You can still get it, just Google it.
https://cdm.link/highlife-the-free-must ... r-windows/
http://web.archive.org/web/200612051000 ... /highlife/
https://www.google.com/search?client=fi ... ghlife+1.4+
/////////////////////////////////////////////////////////////////////////////
/// sfz definition file
/// copyright rgc:audio 2004
/// -------------------------------------------------------------------------
/// Application: HighLife
/// Vendor: discoDSP
/// -------------------------------------------------------------------------
/// Program Name: GEM Equinox A096 Massive Strings
/// Num. Regions: 5



/////////////////////////////////////////////////////////////////////////////
// Region Name: 00 Eqx A96 C1

<region>
sample=00 Eqx A96 C1_0000_00 Eqx A96 C1.wav
lokey=0 hikey=35

loopmode=loop_continuous
loop_start=35000 loop_end=105001
pitch_keycenter=36



/////////////////////////////////////////////////////////////////////////////
// Region Name: 03 Eqx A96 C2

<region>
sample=00 Eqx A96 C1_0001_03 Eqx A96 C2.wav
lokey=36 hikey=47

loopmode=loop_continuous
loop_start=35000 loop_end=105001
pitch_keycenter=48



/////////////////////////////////////////////////////////////////////////////
// Region Name: 06 Eqx A96 C3

<region>
sample=00 Eqx A96 C1_0002_06 Eqx A96 C3.wav
lokey=48 hikey=59

loopmode=loop_continuous
loop_start=35000 loop_end=105001



/////////////////////////////////////////////////////////////////////////////
// Region Name: 09 Eqx A96 C4

<region>
sample=00 Eqx A96 C1_0003_09 Eqx A96 C4.wav
lokey=60 hikey=71

loopmode=loop_continuous
loop_start=35000 loop_end=105001
pitch_keycenter=72



/////////////////////////////////////////////////////////////////////////////
// Region Name: 12 Eqx A96 C5

<region>
sample=00 Eqx A96 C1_0004_12 Eqx A96 C5.wav
lokey=72 hikey=96

loopmode=loop_continuous
loop_start=35000 loop_end=105001
pitch_keycenter=84

Post

I can take it or leave it? What an attitude. Considering that what you posted has no midi cc control, your “solution” isn’t a solution.

Well, you’ve succeeded in your goal. My enthusiasm is gone. I guess that you can take your satisfaction in that.
Vendor‑Dependent Copy Protection: Customers lose. Pirates win.:mad:
(Also: I'm Accused of lying about Linux—it boots, runs my pro audio workflow, stays stable, updates--though yearly dismissed as “niche”. Yet I'm the deluded one.)
:roll:

Post

enroe wrote: Sat Apr 19, 2025 7:02 am
audiojunkie wrote: Thu Apr 17, 2025 6:25 pm
...
I'll take your word for it. Maybe you can help with a template that will make me no longer need to complain about the difficulties of programming SFZ text. But I have to say, that what you are showing here is not what I'm referring to. I'm referring to midi CC controlled items, such as midi cc controlled ADSR, modulation, cutoff frequency, resonance, pitch wheel control, vibrato wheel control, volume control, pan control, etc. etc. Open and available for anyone to use their knobs on their midi controller or automation in their DAW. Things become a whole lot more difficult when trying to set up and control that stuff. And that stuff is what takes a plain boring sample to the next level of being useful. Are you able to set up a generic template that can be appended to the beginning of any SFZ text file? That's what I am needing and wanting. :)
So, at sfzformat.com --> tutorials you'll find all sorts of
examples, suggestions, and templates. Everyone should surf
there and try out the examples.

Of course, it's as simple as I said. Let's take your ADSR case.
The simple definition is this:

ampeg_attack=0.01
ampeg_decay=0
ampeg_sustain=100
ampeg_release=0.2


If you want to control it with MIDI, just write:

ampeg_attackcc73=0.5
ampeg_decaycc75=1.0
ampeg_sustaincc76=1.0
ampeg_releasecc72=0.5


The number indicates the "range." For example, "0.5" means that
you can control a range of 0 to 500 milliseconds with the cc73 MIDI
controller using 0 to 127.

To have a controller on the sfz player, you must also specify:

label_cc73=attack time
label_cc75=decay time
label_cc76=sustain
label_cc72=release time


And it's just as easy with all the other parameters.
It's explained again here. It's just as easy with modulation,
cutoff frequency, resonance, pitch wheel control, vibrato
wheel control, volume control, pan control, etc. etc.

Of course, it would be great for many people if Shortcircuit already
had these options as buttons and controls, but anyone can
construct them almost instantly on their sfz player. :wink:
Thanks for the info. Maybe I’ll take another shot at it sometime.
Vendor‑Dependent Copy Protection: Customers lose. Pirates win.:mad:
(Also: I'm Accused of lying about Linux—it boots, runs my pro audio workflow, stays stable, updates--though yearly dismissed as “niche”. Yet I'm the deluded one.)
:roll:

Post

audiojunkie wrote: Sat Apr 19, 2025 10:53 am I can take it or leave it? What an attitude. Considering that what you posted has no midi cc control, your “solution” isn’t a solution.
Well, you’ve succeeded in your goal. My enthusiasm is gone. I guess that you can take your satisfaction in that.
SFZ does everything you're enthusiasmed about, but the problem remains because there's no widely supported & open format that keeps the parameters you want to keep. SFZ, AKP, Decent sampler others support some functions but there's no extended standard in CC > functions designation.

I published a list of parameters > CC list some years ago in a forum that I used to assign to BCR2000 in Studio One. That was based on my own device file created for the BCR2K and the layout:
<Control name="encoderA1[0]" title="O1 Tune" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="1"/></Control>
<Control name="encoderA1[1]" title="O1 Fine" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="2"/></Control>
<Control name="encoderA1[2]" title="O1 Vol" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="3"/></Control>
<Control name="encoderA1[3]" title="O2 Tune" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="4"/></Control>
<Control name="encoderA1[4]" title="O2 Fine" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="5"/></Control>
<Control name="encoderA1[5]" title="O2 Vol" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="6"/></Control>
<Control name="encoderA1[6]" title="O3 Fine" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="7"/></Control>
<Control name="encoderA1[7]" title="O3 Vol" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="8"/></Control>

<Control name="encoderA2[0]" title="O1 PW" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="9"/></Control>
<Control name="encoderA2[1]" title="O1 L>P" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="10"/></Control>
<Control name="encoderA2[2]" title="O1 FM" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="11"/></Control>
<Control name="encoderA2[3]" title="O2 PW" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="12"/></Control>
<Control name="encoderA2[4]" title="O2 L>P" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="13"/></Control>
<Control name="encoderA2[5]" title="O2 FM" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="14"/></Control>
<Control name="encoderA2[6]" title="O3 PW" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="15"/></Control>
<Control name="encoderA2[7]" title="O3 FM" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="16"/></Control>

<Control name="encoderA3[0]" title="O1 Shp" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="17"/></Control>
<Control name="encoderA3[1]" title="O1 L>Shp" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="18"/></Control>
<Control name="encoderA3[2]" title="O1 Ring" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="19"/></Control>
<Control name="encoderA3[3]" title="O2 Shp" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="20"/></Control>
<Control name="encoderA3[4]" title="O2 L>Shp" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="21"/></Control>
<Control name="encoderA3[5]" title="O2 Ring" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="22"/></Control>
<Control name="encoderA3[6]" title="Noise" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="23"/></Control>
<Control name="encoderA3[7]" title="Ns Shp" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="24"/></Control>

<Control name="encoderA4[0]" title="Lfo1 wav" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="25"/></Control>
<Control name="encoderA4[1]" title="Lfo1 dly" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="26"/></Control>
<Control name="encoderA4[2]" title="Lfo1 Rtg" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="27"/></Control>
<Control name="encoderA4[3]" title="Lfo2 wav" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="28"/></Control>
<Control name="encoderA4[4]" title="Lfo2 dly" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="29"/></Control>
<Control name="encoderA4[5]" title="Lfo2 Rtg" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="30"/></Control>
<Control name="encoderA4[6]" title="E31" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="31"/></Control>
<Control name="encoderA4[7]" title="E32" options="transmit receive nofeedback public"><MidiMessage status="Controller" channel="0" address="32"/></Control>
The list is larger, but the idea after this is that noone has established an standard complete list that covers all synthesizer parameters of any kind, or maybe someone did but it is not extended enough. Once a standard CC to parameters is created, you can care about an open sampler format with CC values. My starting point for the BCR was a 4 oscillator 2 filters 2 LFO 2 EG synth, but there's still room for some more if channels are assigned to each block iteration.
CC00 - CC10 : Common Values + Amp
CC11 - CC30 : Oscillator
CC31 - CC50 : Mixer/waveshape
CC51 - CC70 : Filter
CC71 - CC90 : LFO
CC91 - CC110 : Envelope
CC111 - CC127 : FX
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<configuration version="1.0" homepath="d:\#samples\#shc" path0="d:\#samples\#shc" path1="d:\#samples\#drumkits" path2="d:\#samples" path3="d:\#patches" path4="" externaleditor="c:\archivos de programa\sonic foundry\sound forge 6.0\forge60.exe" outputs_stereo="6" outputs_mono="0" default_headroom="6" flags="9">
<control i="0" type="CC" number="70" name="F Attack" />
<control i="1" type="CC" number="71" name="F Decay" />
<control i="2" type="CC" number="72" name="F Sustain" />
<control i="3" type="CC" number="73" name="F Release" />
<control i="4" type="CC" number="74" name="F Cutoff" />
<control i="5" type="CC" number="75" name="F Resonance" />
<control i="6" type="CC" number="76" name="F EGMod" />
<control i="7" type="CC" number="77" name="Main Level" />
<control i="8" type="CC" number="78" name="Amp Attack" />
<control i="9" type="CC" number="79" name="Amp Decay" />
<control i="10" type="CC" number="80" name="Amp Sustain" />
<control i="11" type="CC" number="81" name="Amp Release" />
<control i="12" type="CC" number="82" name="Osc Mix" />
<control i="13" type="CC" number="83" name="Osc Detune" />
<control i="14" type="CC" number="84" name="FX1" />
<control i="15" type="CC" number="85" name="FX2" />
</configuration>

Post

This has diverted a little. But the way short circuit works is to allow you to map arbitrary cc or midi messages to any modulation target in the mod matrix at whatever depth you want. Short circuit is quite a bit “bigger” than sfz etc (more filters effects etc) and this works well as a model

We have an open issue to export to sfz as best as possible which we will probably do before first release but of course the things which aren’t in sfz spec will just be ignored. Similarly we have limited support for sfz sf2 exs multi sample gig import today and plan to do decent and akp

Witker to your point I bet mod matrix “presets” could be quite handy in a post 1.0 world

Audiojunkie you really should just download and try it. It would help level set a lot of your questions!

Post Reply

Return to “Samplers, Sampling & Sample Libraries”