Synclavier Voice implemented in Moselle Software Synthesizer (Michael Jackson "Beat It" Gong)

Поделиться
HTML-код
  • Опубликовано: 12 сен 2024

Комментарии • 30

  • @Gerald_Daniel
    @Gerald_Daniel 2 месяца назад +3

    "Respect" is probably the dullest comment within your community but that's exactly what I have for your effort.

  • @adamarmfield1069
    @adamarmfield1069 2 месяца назад +3

    synclavier's always intrigued me, I like the idea of being able to split a sample into bands and synthesise each, dave griffiths did "midimutant" which analyses a sample and turns it into a DX7 patch

  • @ataricom
    @ataricom 2 месяца назад +2

    Synclaviers used to intimidate the hell out of me, then I listened to Jazz From Hell and Civilization Phase III.

    • @Lantertronics
      @Lantertronics  2 месяца назад

      I'm not sure how Jazz From Hell would make them any less intimidating. ;)

    • @chupathingy5862
      @chupathingy5862 2 месяца назад

      Side note, Jazz From Hell was the first instrumental album to get a parental advisory sticker. Although I think it might have more to do with the fact that one of the tracks was called G Spot Tornado. Oh, Zappa, you rascal!

  • @franksheeran9243
    @franksheeran9243 2 месяца назад +1

    7:52 Moselle supports an infinite number of envelope segments if you want to number them in time/level pairs T1, L1, etc. It also supports WAIDBPSR notation for Wait Attack Impact Decay Break Slope Sustain Release, and you can use any subset for an "anonymous module." Dr. Lanterman is perfectly correct using ADSREnv() with attack and sustain of 0, but a shorter alternative would be DREnv(8376ms, 581ms) The "DREnv" simply means you'll supply a Decay and Release.. One more example: say you want vibrato to fade in slowly after a second. WAEnv(1, 2) would give you a wait of 1 sec and an attack of 2 sec.

  • @zmix
    @zmix 2 месяца назад +1

    4:30 Aliasing in synchronus instruments and emulations is a real problem, however the Synclavier II used an asynchronous voice generation system which varied the pitch of the voice by changing the playback rate so aliasing technically cannot exist (all harmonics generated by overmodulation would track the pitch of the voice).

  • @_fig.8
    @_fig.8 2 месяца назад +1

    oh im getting popcorn for this one! cheers

  • @franksheeran9243
    @franksheeran9243 2 месяца назад

    7:03 In case it's not clear from the tutorial patches, pretty much everything in Moselle is normalized to a [0,1) range. MIDI controls go from 0 to 1, not 0 to 127. Phase inputs and outputs aren't 0 to 360 or 0 to 2pi, but again 0 to 1. Sin() and so on take 0..1 as input and output -1..1.

  • @nonyobiz-records
    @nonyobiz-records 2 месяца назад +1

    what an intro!

  • @franksheeran9243
    @franksheeran9243 2 месяца назад

    16:15 this pattern X^((Note:NoteNumber-69)/12) is the correct way to do what you want. I don't think there's a simpler way in Moselle. arbitrary powers (that carat) aren't fast to compute in any language, but Moselle's optimizer will figure out that this can be computed once at note-on.

  • @franksheeran9243
    @franksheeran9243 2 месяца назад

    13:00 Your scope code looks fine! The scope and the DFT though are both basic and buggy. Hopefully they're useful when playing single notes, but it hasn't been a priority to make them actually work well.

  • @ArgumentShow
    @ArgumentShow Месяц назад

    Synclavier II is the only synth i regret selling

  • @franksheeran9243
    @franksheeran9243 2 месяца назад

    14:19 Hmmm, I realize there's no tutorial for Envelope:Speed ... now I've made one. You can put that 1.44... subexpression in Speed, and all times for the envelope are divided by that. (Speed=2 means twice as fast.)

  • @franksheeran9243
    @franksheeran9243 2 месяца назад

    16:39 I'm pretty certain it's a bug in the public Moselle version. However something similar works in my development version. If you email me the patch as it's failing for you, I'll ensure it's fixed in the next release.

  • @biomechanoid
    @biomechanoid 2 месяца назад +1

    Sounds kinda similar to the pharaoh's curse meme music

    • @Lantertronics
      @Lantertronics  2 месяца назад

      I hadn't seen that meme and had to go look it up. Yeah, if you slowed down the main attack, and cranked down the frequency modulation amount, it would be similar!

  • @nsputnik
    @nsputnik 2 месяца назад +1

    How about a Moselle playlist?

    • @Lantertronics
      @Lantertronics  2 месяца назад

      I plan to set up a general digital synthesis playlist (to contrast with my analog synthesis playlist) and Moselle will be part of that.

  • @franksheeran9243
    @franksheeran9243 2 месяца назад +1

    2:49 re: square root, cube root talk. Would it be correct to say that the POWER of the harmonics of a sawtooth are equal, but the AMPLITUDE is a reciprocal of the harmonic number? That is how I tried to explain it in the Moselle tutorials, but to be honest I'm not positive I'm using these words correctly. In other words, if the bar graph you're showing worked like Moselle, making each bar equal height would produce a sawtooth (if you could keep going up, though that Synclavier emulation limits you to 24). In Moselle's SWO, you would say "HarmonicForm=1".
    I can't imagine why the creators of this software would have used the square root to cube root relation you're talking about, which is the kind of amorphous, complicated, multi-factor description that might be true (and especially in describing a physical system), but might also be because we simply haven't hit upon the correct and simpler formula. Perhaps the software shown at this point is, just like Moselle, simply letting you set power, not amplitude, and is merely mislabeled? The key question is: if you set all bars equally (e.g., to max) do you get a sawtooth (albeit missing harmonics above 24)? If so, then I'd suspect the mathematical relation between bar size and amplitude is simply the reciprocal. If that's not what the authors did, I would suggest they consider it. It was one of the decisions in Moselle I wasn't sure of but in fact it worked out perfectly, making design of waveforms really fun and easy (such as tutorial patch 1112 SWO Cookbook).

    • @Lantertronics
      @Lantertronics  2 месяца назад

      "Would it be correct to say that the POWER of the harmonics of a sawtooth are equal, but the AMPLITUDE is a reciprocal of the harmonic number?" -- I'm not sure how you are defining power here? Parseval's theorem says that the square integral of a waveform in the time domain is proportional to the sum of the square magnitudes of the Fourier coefficients. So if you were to isolate one coefficient I'd say the power in that sinusoid is the square of the amplitude.

    • @Lantertronics
      @Lantertronics  2 месяца назад +1

      "In other words, if the bar graph you're showing worked like Moselle, making each bar equal height would produce a sawtooth (if you could keep going up, though that Synclavier emulation limits you to 24)." Ah, I'm now really confused. I just tried as you suggested, made all the harmonics in a SWO be "1" and indeed got a sawtooth! Are the harmonic setting here not amplitudes? I assumed they were amplitudes. Is there some scaling by harmonic number built in, like you are each number I give by the harmonic number "k"? If so that will seriously confuse people, I think.
      If you have a sum of sinusoids and they're all set to to the same amplitude, that should give you an impulse train, not a sawtooth.
      People will expect that if you set the numbers to 1, 1/2, 1/3, 1/4, 1/5, etc, they'll get a sawtooth (or a wave sonically equivalent to a sawtooth). Anything else will lead to mass confusion.
      If these harmonic numbers aren't amplitudes, then to make this patch closer to the original Synclavier sound I'd need to go change the numbers -- all my numbers assume that they're amplitudes.

    • @Lantertronics
      @Lantertronics  2 месяца назад +1

      According to Cameron Jones, the square root in the middle and cube root at the bottom was just to get a scale that made the user more easily make fine adjustments at the lower end. There's not any particular magic to it. I'm not follow what you mean by reciprocal -- that would suggest that higher bars give lower amplitudes which isn't the case.

    • @Lantertronics
      @Lantertronics  2 месяца назад +1

      "if you set all bars equally (e.g., to max) do you get a sawtooth (albeit missing harmonics above 24)? Nope, you get an impulse going up next to an impulse going down, which is what I'd expect from adding sine waves. And if I change the phases to 90, I get just one impulse, which is what I'd expect from adding cosine waves. There's no way I can picture things where setting bars in any software to equal height should give me a sawtooth wave.

    • @Lantertronics
      @Lantertronics  2 месяца назад +1

      Oooooh, OK, I see what you're doing. I just set the harmonic values equal to the harmonic numbers, like Harm1 = 1, Harm2 = 2, Harm3 = 3, etc, and got the up-down double impulse I would expect from equal amplitudes. So it looks like you are taking the number the user provides, and then dividing by the harmonic number to get the actual amplitude.
      I know it will take a lot of work since you will have a lot of tutorials to fix, but whatever the next release of Moselle that you put out is, I *strongly* recommend fixing that. The amplitudes should just be the amplitudes. Otherwise it will confuse the daylights out of people; nobody's expecting Fourier amplitudes to be written with hidden 1/k factor already baked into them. And to have to have the harmonic values *growing* to get an impulse train -- that's counterintuitive as can be.