Soft/Hardcore: Single cycle waveform tools


Softcore / Hardcore

For the past few months I have been working on these two pieces of software that lets you sculpt a waveform via either additive synthesis (called Softcore) or maths functions etc (called Hardcore) and export the waveform to a .wav file. Specifically made for, but not exclusive to, Elektron Digitakt, Rytm, Monomachine and Octatrack. You can configure the software to target a specific device, or just set the samplerate, bit depth, cycle length (in samples) yourself.

It’s entirely built in Max and runs on Windows and Mac. You can grab the software for free:

(And in the spirit of this community, I will also release parts of the Max patches soon, specifically those that deal with the actual buffer generation.)

Softcore lets you make soft and fluffy waveforms using additive synthesis. This very old but effective method sums harmonic partials together, each partial being an integer multiple of the fundamental, which theoretically can be used to replicate any timbre if given enough partials. Softcore is limited to 16 partials, which is an easy to grasp amount with enough versatility to generate a wide variety of different timbres.

Hardcore focuses more on sharper waveforms using mathematical functions. By mixing two oscillators through various waveshaper functions, it is possible to make complex and intricate waveforms, from sounding analog to harshly digital.


looks great, going to give it a go thanks!

Looks ace. Haven’t tried your software (no max here), so not sure what is actually happening in your software, but additive synthesis, would be integer multiplies of the first partial (aka the overtone series). The partials get closer and closer, the second is (indeed) an octave, the third is an octave + fifth, the fourth is two octaves, the fifth is two octaves + major third.

If it was just a typo, sorry for the noise, if not, I suggest you try the overtones series (as above) instead of just octaves, you’ll find much more complex wave forms will appear than by just using octaves.

In any case, take this as a most friendly suggestion, and feel free to disregard all together :slight_smile:

hmm, on Mac (Mojave) i get " “” is damaged and can’t be opened. You should move it to the Trash." same with Hardcore. the "xattr -cr " in terminal doesn’t seem to help

It’s the same thing though. If you have an A at 220Hz and then multiply that by an integer like 2, you will have 440Hz which is an A an one octave above. Additive synthesis doesn’t need to be octaves either, but for this application (squeezing something into one cycle nicely) it’s best to keep each partial to an octave.

Does the Terminal throw an error when you try the command?

No, nothing, I press return and it just gives me a new prompt

this is really awesome! psyched to try generating some :ocean: for the digitakt

can’t open both .dmg files i get this info


I’m on OS X 10.11.6


on 10.13.6
same for hardcore

this looks very cool. can’t wait to give it a try. thanks for sharing!

edit: ok, really should read that README :slight_smile: though dropping into terminal window didn’t work here… but I did:

xattr -cr /Applications/
xattr -cr /Applications/

hm, the sliders appear to control the levels of first 16 harmonic partials, exactly as @a773 suggests, and calling them “octaves” is definitely confusing (to me.)

[edit] well, yes. ‘harmonics’ is a better term than ‘octaves’, because the former is true, and the latter is… not true? :slight_smile:

anyways, good lookin apps, thanks for sharing! i like the waveshaping and bias functions. it would be fun to process the output with lowpasses for bandlimited multisampling.


Yeah, can definitely see that - harmonics is a better term I guess. Although, I think octaves are easy to understand for someone who doesn’t have in-depth knowledge. Virtually, it’s the same thing in this case.

(Maybe it’s best to explain it properly! Everyone is happy then, haha.)


Hmmm. Lets start on 440Hz!

Octaves are 440, 880, 1760, 3520, etc
Overtones/partials are 440, 880, 1320, 1760 etc

Call them what you want, that’s what I (and everybody I know) call it :slight_smile:


Hmm! Ah yeah, didn’t think of the uneven numbers. Good point :slight_smile:
So yes - they are harmonic partials in Softcore, fundamental * n:th harmonic.

Edit: Shot myself in the foot a bit by thinking of how to describe it in the easiest way, haha.


don’t want to harp any more on this, but octaves are only powers of two (as you know, sorry!)

you have the fundamental, four octaves (2, 4, 8, 16), and 11 non-octaves.

just call them “harmonics”, which is common and not even technical (it’s the same term in music theory as physics &c)

anyways… think i’m gonna finally make a multisampler for supercollider, thanks for the nudge


Yeah, I know - just my mind rested on the number 3 and made the connection. Thanks!

xattr -cr /Applications/
xattr -cr /Applications/

these look awesome, excited to try soon!

this sounds awesome, excited to try [when possible]!

Windows Defender didn’t want me to run the installer because it’s not signed.

I can’t get the audio working at all on my machine at work. The menu gives me 10 options for drivers, none of which produce any audio when I click the speaker icon. There’s no choice anywhere for an output device though, other than the “Output 0” and “Output 1” assigned to left and right channels… whatever those are :slight_smile:

I’m using audio over Bluetooth since my work machine has no speakers.

I’m using DirectSound with MediaMonkey, MME with Audacity, and whatever it is that WaveEdit uses, and they all let me select between specific devices or a generic choice, e.g.


But then, Chrome doesn’t even have that choice and it just works by default (probably through the Windows sound mapper)

OK embarrassingly I just didn’t read/think the instructions properly, when I drop the app paths into terminal after the "xattr -cr " it does work fine!!