Resynth2 Beta Testing

[edit: ReSynth2 has now been released]

Today, I am glad to announce the first beta of ReSynth2.

It has really been a community lead project for this iteration. It started off with a poll of user feedback of requested features and I think I managed to get nearly all of them in.

First, the bad news: Despite leading the poll, FM synthesis has not been included. This was mainly due to keep the code sane and it really made the GUI a horrendous clutter. However. stay tuned for a potential new FM synthesis tool in the future…

Now onto the good stuff:

Here it is. ReSynth2 beta:

ReSynth2 has been a complete rewrite and is internally much cleaner than the original ReSynth. This has lead to less code duplication and a much faster synthesis.

Because of the speed gains, I managed to add additional features and keep the general overall speed about the same.

Guided walkthrough of the features:

  • Immediately, you can see there are four oscillators. This allows you to create some BIG sounds.

  • Each oscillator can be either ‘analog’ or ‘wavetable’. These will be explained later.

  • Each oscillator has a ‘calm’ or ‘harsh’ setting. This changes the sounds interpolation settings and has the overall effect of something similar to oscillator smoothing.

  • The analog oscillator has four basic waveforms:

  • sin/tri

  • pulse wave

  • sawtooth

  • noise

The analog oscillator has retained the wavemod control but the behaviour is slighty different depending upon the waveform.

  • For sin/tri is morphs the sample from a pure sine wave to a more triangular waveshape.
  • For pulse waves, it sets the default pulse width (50% down to 0.8%).
  • For sawtooth and noise it has no affect.

The wavemod can also have an LFO applied. This has both a depth control for the amount of LFO to apply and the length of the LFO (from 2 up to 256 wavecycles). To maintain speed, it is only applied if both of these are > 1.
Next along is the settings for the wavetable oscillators. This allows the user to quickly and easily load in their own samples to replace an analog oscillator. Samples must be placed in the ‘waveforms’ folder within the tool. Each folder will appear as a ‘wavebank’ within which all ‘.wav’ samples are listed as available ‘waveforms’. Samples should be tuned to ‘C’.
Each oscillator has a transpose (-24 to +24 semitones) and fine tuning (-63 to +64 cents) control.
Each oscillator has a volume (off, or -36 to +12db) and panning (50L to 50R) control.
Patch management has been really simplified, just treat the instrument as a normal XRNI. Everyone will be able to play the instrument due to the prerendering of waveforms, while users who have the tool installed will be able to simply open the instrument and continue editing.
If the sample editor is visible in the main Renoise window, modifying the controls (via GUI or MIDI) will display the associated updated waveform to visually show what changes are occuring.
To display the values assocated with any rotary dials on the GUI, hover the mouse over the control and the tooltip will display the current value.
Most controls are MIDI mappable. The only exception is the wavetable bank and wave selection boxes as if you have many files in the sample folder, sometimes you cannot select some due to the limited resolution of MIDI controls.

As with Resynth1, all instrument envelopes, filter settings etc will need to be set from the normal Renoise window due to no API access.

To access the tool, select ‘New Resynth Instrument’ to start afresh or ‘Open as Resynth Instrument’ to attempt to open the selected instrument as a Resynth patch. These menu items appear both in the instrument list and the Tools main menu.

Enjoy! :)

Please give feedback. Like it? Found a bug? Made it crash? Made a great sound? Reply to this thread please.

[edit: we found a bug on IRC. on startup, each oscillator is set to -3dB. For four oscillators this results in a total instrument peak of +6dB. Thus, if your headroom is above -6dB you will experience clipping. This will be fixed in the defaults for the final release]

[edit2: beta1 removed, get release candidate 1 here]

please make ReSynth available in the Instrument Box context menu :)
please make the pitch knob output to show_status so one can see when one is at -12 or -24
instead of having to guess

nice1, knob values would be nice to have indeed.

I have a shortcut configured for opening and closing an external vsti/au instrument interface. I would dearly love to use something like this for a ReSynth instrument on the slot. Will you make such shortcuts possible natively in ReSynth? (one shortcut that opens the gui, or if the gui isopen, closes it)

By the way, I have one helluva hack for ya. If you were to create an additional sample in the ReSynth instrument, this could be the sample which shows the contents of the 4 oscillators like this:
||"| /\ ()~) |_/|
basically what i’m getting at is the possible improvement of the “show oscillator in sample_editor”, where you would have a combined-sample which would be accessed whenever one is in sample_editor, chosen, and then the knobs would show the miniature copies of the actual oscillator in the same sample-space.

Do you mean the instrument list?

It should appear there already (menu bindings are in the code)?

Updates to push to the Renoise status bar is possible. To be implemented before final release.

I can add a keybinding shortcut for ‘new instrument’ / ‘open instrument’. These will be added before final release. [edit: keybindings are already in place, doh!]

I’m not so keen on the extra sample slot hack. I was using an extra sample slot in Resynth1 and it wasn’t a very ‘elegent’ solution. It doesn’t feel like the correct solution.

However, all the parameters are in the text string in the sample name. The first one indicates the oscillator type and the second (if analog) is the waveform reference (1 = sin/tri, 2 = pulse etc.) if that helps. It’s arguably better as you can see more information.

Yes, it’s the Instrument Box:. Anyway, ReSynth is not there.

I’ve just checked this and they appear on my machine. Can other users indicate if the two menu items appear on their machines?

Thanks

Got it here, WinXP SP3.

Awesome!
Thanks for creating this!

Great tool!! The Resynth2 option is available in the instrument box (Win7 32bit)

Nice! Available in the instrument box here too (OS X).

Minor bug: UNDOing a change isn’t reflected in the GUI – the parameter is returned to its original value but the knobs don’t update.

hah, i was expecting there to be a sub-context-menu saying ReSynth, so when I didn’t see it, I thought ReSynth wasn’t in the InstrumentBox at all…

Cool, though this makes me wonder if it is hard to fetch & display values underneath the resynth controls using the current api? Doesn’t it make more sense to have it in the tool gui, then having to look in another part of the screen?

Not an earth shattering omission anyhow, getting some pretty sweet results, thanks!

Please find release candidate one attached.

Three main changes:

  • Internally: The code is a bit cleaner. More unneeded code duplication removed. Named constants rather than magic numbers.
  • Default volume is -12dB per oscillator to avoid clipping. Maximum volume per oscillator has also been reduced to +3dB.
  • UI: A ‘status bar’ has been added to the ReSynth GUI window. This gives feedback from the last action.

Enjoy!

[edit: Here is a small archive with an example bass patch (XRNI) and an mp3 example of it playing the Blue Monday riff to give an idea of what it can sound like. Everything you hear is just the instrument. There are no DSP effects applied on the track]

Rate has no effect on Sawtooth?

No, the wavemod control has no effect on sawtooth or noise waveforms.

will it eventually have at least some sort of control? :)
hint: what i’m getting at is: it could do something else to the sawtooth waveform which would be unique unto itself? :)

Is there a way to init all parameters of Resynth2 without the need to add a new instance?

okay i’m running into issues where renoise actually chokes up, when a sinewave (osc3) is at maximum rate and i move LFO around while playing notes. i will experience a hung note while (i’m on osx) i see the cursor spin its rainbow spin, and then eventually the resynth gui will update the knob position, the note will stop playing and i’ll continue playing notes, until i switch the lfo knob around again. it seems that 32768bytes is too much when both jamming and shifting the lfo button.

This is really sweet, I didn’t realise that it could be used with the sample envelopes to make percussive sounds when using pitch and volume. :drummer: