Jump to content


Photo

New Tool (2.8, 3.1): MorphSynth


  • Please log in to reply
45 replies to this topic

#1 drakmaniso

drakmaniso

    Advanced Member

  • Normal Members
  • PipPipPip
  • 102 posts
  • Gender:Not Telling

Posted 12 October 2012 - 20:25

MorphSynth is a (somewhat experimental) sample generator capable of creating complex waveforms through the combination of morphing oscillators, two operators FM and ring modulation.

 

You can download the latest version on the tool page.

Morphsynth_0.5_screenshot.png

How to use it:

Right click an empty slot in the instrument list and choose "MorphSynth Instrument..." in the menu.
 

  • The first section of the window is for global settings that affect the whole instrument (sample rate, note range).
  • Next come the voice selector.
  • The following section is for settings that affect the current voice: volume, panning, etc.
  • Below that you can choose whether you edit the main audio signal (carrier), the FM modulators, or the Ring Modulator.
  • Next is the main section, where you can set up the various oscillators shapes of the current voice, and the duration between them.
  • The last section controls how the voice is looped.
  • When you're done with the settings, the "Generate" button will create the samples.

Notes:

  • You can layer MorphSynth on an already existing instrument, it should not interfere. For example, it's possible to have both PadSynth and MorphSynth on the same instrument.
  • Almost all waveform shapes start at 0 with the default phase, in order to avoid clicks.
  • Currently, looping is somewhat broken when using pitch modulation.
  • If you have a very short loop (a few oscillations), you should consider using the 440000 sample rate (not 441000), and a note range based on a "A" note, with a step of 12. This way you'll avoid truncation errors (which can create unwanted harmonics)

Any feedback or question is welcomed!

Previous Versions


Edited by drakmaniso, 15 October 2015 - 22:38.

  • Conner_Bw, Djeroek, Dunks and 8 others like this

#2 Dunks

Dunks

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 304 posts
  • Gender:Male

Posted 12 October 2012 - 21:04

Another Amazing tool! Thanks!

#3 Dunks

Dunks

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 304 posts
  • Gender:Male

Posted 12 October 2012 - 21:11

seriously wow! kicks, snares, hats, basslines the lot are so easy to make.

#4 drakmaniso

drakmaniso

    Advanced Member

  • Normal Members
  • PipPipPip
  • 102 posts
  • Gender:Not Telling

Posted 12 October 2012 - 21:18

seriously wow! kicks, snares, hats, basslines the lot are so easy to make.


Thanks. The tool evolved as I found new ideas, that's why there's a lot of possibilities. I'm glad you find it easy to use, that was my main concern.

#5 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6744 posts
  • Gender:Male
  • Location:Borneo

Posted 12 October 2012 - 22:45

Cool stuff!

Adjusting fine-tune settings for the detuning, phasing win!

#6 2 daze j

2 daze j

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 751 posts
  • Gender:Male
  • Interests:Ghosts, aliens, space, the afterlife, music, high energy music..

Posted 12 October 2012 - 23:09

Wow.. Cool!

:yeah: :w00t: :walkman:



Edit = if I find any bugs or anything, I let you know. but this is very cool


Thank you/cheers

Edited by 2 daze j, 12 October 2012 - 23:10.

I woke up with my mind on the floor...

#7 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 722 posts
  • Gender:Male
  • Location:London

Posted 13 October 2012 - 02:50

Awesome, this is seriously cool Posted Image
First Padsynth and now this! We are spoilt! Thanks for making this..

I got the following error when adjusting the 'loop from' value:


'/Users/Creative/Library/Preferences/Renoise/V2.8.0/Scripts/Tools/org.drakmaniso.Morphsynth.xrnx/main.lua' failed in one of its notifiers.

Please contact the author (drakmaniso | moussault.laurent@gmail.com) for assistance...

./MorphSynth.lua:191: attempt to index field '?' (a nil value)
stack traceback:
./MorphSynth.lua:191: in function 'generate_one_sample'
./MorphSynth.lua:77: in function 'generate_samples'
./MorphSynthWindow.lua:86: in function 'generate_samples'
./MorphSynthWindow.lua:694: in function <./MorphSynthWindow.lua:694>

#8 drakmaniso

drakmaniso

    Advanced Member

  • Normal Members
  • PipPipPip
  • 102 posts
  • Gender:Not Telling

Posted 14 October 2012 - 14:15

Thanks for the feedback and bug reports.

Here's a new version, which adds FM and Ring modulation, plus a "Sample & Hold" parameter (and fixes a few bugs).

Attached File  org.drakmaniso.Morphsynth_Rns280_V0.2.xrnx   12.64KB   234 downloads

Please note that you won't be able to load instruments created with the previous version; sorry for the inconvenience.

morphsynth-0.2-screenshot.png

Each voice now has three sections: one for the carrier (the main audio signal), one for the ring modulator, and one for the FM modulator. The two modulators can be as complex as you wish.

The "S&H" (sample and hold) parameter does something similar to the LoFiMat renoise effect, except the rate is always proportional to the current note frequency.

Note that looping is not always seamless when using modulation, I'm not sure if this is fixable.
  • afta8 likes this

#9 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 722 posts
  • Gender:Male
  • Location:London

Posted 14 October 2012 - 20:45

Great update, this tool is really deep, must admit I'm having a lot of fun with it!

Some feature requests:

- It would be cool if it had a live mode where new samples are rendered straightaway after changes are made. This would help with workflow when designing sounds as its a bit annoying to keep having to pressing generate samples for every little tweak.

- Copy settings from other voices, for example if I am working on voice 2, I could copy the settings from voice 1 or any of the other 7 voices, useful if I want to create stacked/detuned sounds

- Crossfade loop - The looping does sound odd with longer samples, however doing a crossfade loop makes a big difference, maybe this could be integrated into the tool (I have some code for an adjustable crossfade loop if you want it?)

#10 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6744 posts
  • Gender:Male
  • Location:Borneo

Posted 14 October 2012 - 20:50

Awesome update! + yes,crossfade loop option please! :drummer:

edit:

got this notice after saving an instrument in Renoise, loading another .xrni in an empty instrument slot while having the gui still open and pressing generate in your tool:

'C:\Users\plugexpert\AppData\Roaming\Renoise\V2.8.1\Scripts\Tools\org.drakmaniso.Morphsynth.xrnx\main.lua' failed in one of its notifiers.

Please contact the author (drakmaniso | moussault.laurent@gmail.com) for assistance...

std::logic_error: 'trying to access a nil object of type 'class RenoiseInstrument'. the object is not or no longer available.'
stack traceback:
[C]: ?
[C]: in function '__index'
[string "do..."]:36: in function <[string "do..."]:35>
.\MorphSynth.lua:38: in function 'generate_samples'
.\MorphSynthWindow.lua:86: in function 'generate_samples'
.\MorphSynthWindow.lua:769: in function <.\MorphSynthWindow.lua:769>


Edited by Djeroek, 14 October 2012 - 21:37.


#11 drakmaniso

drakmaniso

    Advanced Member

  • Normal Members
  • PipPipPip
  • 102 posts
  • Gender:Not Telling

Posted 14 October 2012 - 22:13

@afta8: an auto-update feature is on my todo list, though it will probably only for a test note, as rendering for full key range can take a lot of time (which reminds me, I need to move sample generation in the background thread). I also need to improve the UI for managing waveforms, a copy/paste feature is a great idea.

I didn't think about cross-fading the loop, this is probably the best solution, I'll look into this. If you have some code to do it, I'd love to take a look at it!

@Djeroek: thanks for the bug report. I'll try to fix this in the next version.

#12 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 722 posts
  • Gender:Male
  • Location:London

Posted 15 October 2012 - 00:36

I made a basic crossfade loop feature in this tool, which copies a section of the audio before the loop point; applies a fade in, and then mixes it with the same size portion at the end of the loop which has been faded out.
Send me a PM if you want to discuss it in more detail and i'll be happy to help. The fades applied in my version are linear which don't always give the best result because the volume can dip where the crossfade happens, if the fades are curved I think it will sound better.. Hope that helps :)

Edited by afta8, 15 October 2012 - 00:37.


#13 drakmaniso

drakmaniso

    Advanced Member

  • Normal Members
  • PipPipPip
  • 102 posts
  • Gender:Not Telling

Posted 15 October 2012 - 10:35

Thanks, that's very helpful. I think I'll add an option for 0-crossing, too.

For cross-fading, I searched on the net which curve to use, the best answer I found is this one. So I guess it's either a logarithmic curve, or the cosinus based one proposed there.

EDIT: There's one thing I don't understand though, if I use logarithmic curves or similar, then the sum of the two cross-faded signal can be greater than 1, introducing distortion. Does this mean I must scale down the whole sample first?

Edited by drakmaniso, 15 October 2012 - 11:34.


#14 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 722 posts
  • Gender:Male
  • Location:London

Posted 15 October 2012 - 14:48

There's one thing I don't understand though, if I use logarithmic curves or similar, then the sum of the two cross-faded signal can be greater than 1, introducing distortion. Does this mean I must scale down the whole sample first?


My first thoughts are yes if you do it in the way described in that link. However I was thinking you could do it where the fade in curve is the opposite curve to the fade out curve, this way the sum would never be greater than one. I don't know how this would sound though.

Also I was curious about how the Renoise built in crossfade worked as this sounds good on your tool when I do it manually, applying it to a square wave gives this result:

Screen shot 2012-10-15 at 12.53.47.png


So i'm guessing it must be a linear fade, in this case it may be just simpler to apply a linear crossfade and see how it sounds, the simplest solution may be the best one after all.

#15 drakmaniso

drakmaniso

    Advanced Member

  • Normal Members
  • PipPipPip
  • 102 posts
  • Gender:Not Telling

Posted 20 October 2012 - 19:33

Here's a small update:

Attached File  org.drakmaniso.Morphsynth_Rns280_V0.3.xrnx   13.99KB   260 downloads

Note that instruments created with the previous versions won't load; sorry for the inconvenience.

In this version:
  • A few important bugs have been fixed.
  • There is a second FM modulator, with a configurable "FM algorithm": parallel or serie.
  • The exponential / logarithmic scale range for the durations has been doubled.
  • The amount of modulation is now configured in the modulators section, not the carrier section.
  • The amount of FM modulation (aka "modulation index") range has been increased to 13.1, which was the value used in the DX synths. I'm not sure what's the rationale behind it, though.
  • The FM modulators are now configured with a ratio, rather than an offset in semitones. It's easier to find "musical" values this way.
I think now the "synthesis" part is good enough, I'll focus next on improving looping and UI.

I'm moving in a few days so I probably won't have net access for a while. Hopefully there isn't to many bugs in this version.
  • Djeroek likes this

#16 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6744 posts
  • Gender:Male
  • Location:Borneo

Posted 24 October 2012 - 00:21

opened your tool on an already existing morphsynth instrument, made with the same, latest version and got:

'C:\Users\plugexpert\AppData\Roaming\Renoise\V2.8.1\Scripts\Tools\org.drakmaniso.Morphsynth.xrnx\main.lua' failed in one of its notifiers.
The notifier will be disabled to prevent further errors.

Please contact the author (drakmaniso | moussault.laurent@gmail.com) for assistance...

.\MorphSynthWindow.lua:1072: attempt to compare number with nil
stack traceback:
.\MorphSynthWindow.lua:1072: in function <.\MorphSynthWindow.lua:1070>


..after adding some new waveforms.

#17 2 daze j

2 daze j

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 751 posts
  • Gender:Male
  • Interests:Ghosts, aliens, space, the afterlife, music, high energy music..

Posted 24 October 2012 - 01:28

The samples that are made still load right? I made some sub bass, and bass this morning.. The samples should load, shouldn't they?



Btw, this tool is :-) very impressive..

Cheers
I woke up with my mind on the floor...

#18 drakmaniso

drakmaniso

    Advanced Member

  • Normal Members
  • PipPipPip
  • 102 posts
  • Gender:Not Telling

Posted 24 October 2012 - 08:29

@Djeroek: I guess it happened after clicking on one of the parameters value field? All these value fields are very buggy at the moment, I really need to fix that. Thanks for the bug report.

@2 daze j: Yes, previous samples will continue to play. It's just you won't be able to edit them with MorphSynth.

Edited by drakmaniso, 24 October 2012 - 08:30.


#19 zonachirenoise

zonachirenoise

    Member

  • Normal Members
  • PipPip
  • 12 posts

Posted 20 December 2012 - 14:09

mmm this seems a very very powerful tool, but it is not easy for a noob like me to understand how it works.
I guess that it is completly stupid to use it like a normal synth: what is very hard to understand is the fm modulation part.
I only know subtractive synthesis basis. Can someone post a little tutorial explaining what can be done with this tool? Or maybe posting some good sounds and then explaining how to get that sound!

Thank you!

#20 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6744 posts
  • Gender:Male
  • Location:Borneo

Posted 20 February 2013 - 15:02

This one should be on the tool page imo.
  • Conner_Bw and afta8 like this

#21 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 722 posts
  • Gender:Male
  • Location:London

Posted 20 February 2013 - 23:58

Agreed, I use it all the time...

#22 DrFreq

DrFreq

    New Member

  • Normal Members
  • Pip
  • 6 posts
  • Gender:Male
  • Location:Berlin (Germany)

Posted 19 May 2013 - 12:38

great tool, nothing to complain, also some sort of self explainng gui... if you know about synthesizer will will be fine

#23 emre_k

emre_k

    Big Daddy Member

  • Normal Members
  • PipPipPipPipPipPipPip
  • 432 posts

Posted 10 March 2015 - 13:47

Wanted to give this a shot but is it possible to get it working in R3?



#24 sharku

sharku

    Advanced Member

  • Normal Members
  • PipPipPip
  • 91 posts

Posted 08 April 2015 - 14:17

Would love to see this in R3 as well. For me this was the most versatile and creative "toolsynth", and an amazing tool for creating unique samples (not the least drums.). I miss it. 


  • Djeroek likes this

#25 4Tey

4Tey

    Big Daddy Member

  • Normal Members
  • PipPipPipPipPipPipPip
  • 413 posts
  • Gender:Male

Posted 08 April 2015 - 20:37

A very very quick hack of mine if you would like to try this version for R3.  I've taken the delete samples call out (so you'll have to do this manually with this), but you might be able to get some noise out of it now folks :)


  • tL One likes this