Wavetable Synth Plugin in JUCE Tutorial for Beginners [Synth

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

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

  • @WolfSoundAudio
    @WolfSoundAudio  2 года назад

    Have I helped you with this video? If yes, please, consider buying me a ☕ coffee at www.buymeacoffee.com/janwilczek
    Thanks! 🙂

  • @amber1862
    @amber1862 3 года назад +5

    This was brilliant and so well taught! I'd love a video about sample-by-sample vs block processing in regards to audio DSP. It's something rarely mentioned in text and videos and it's so important from an implementation and optimization perspective.

    • @WolfSoundAudio
      @WolfSoundAudio  3 года назад +2

      Thank you, Amber! I completely agree that block processing is an important topic and I am planning to cover it in my videos, especially the advantage of SIMD instructions :)

  • @sanjaux
    @sanjaux Год назад +1

    This video is still the bible to me as someone just starting out, thank you so much for this! I've been coming back to it on and off for a while now

  • @PeVoNZ
    @PeVoNZ 2 года назад +1

    Another really great tutorial, thank you so much! I'm an audio programmer in game development and I pretty much fell in to the role from engine programming - as such don't have a solid background in low level audio. I'm finding your videos really easy to follow and understand.
    One note - it's probably better to add files to your solution (i.e. WaveTableSynth.h/.cpp) from the Projucer application; the .vcproj files get regenerated whenever you save & open the solution from Projucer, and any files that aren't registered in the file explorer don't get included.

    • @WolfSoundAudio
      @WolfSoundAudio  2 года назад +1

      Wow, thanks for the feedback and the great comment! My newest video with JUCE also has that flaw, but from now on, I will import the files in the Projucer, thanks :)

  • @cracksoftcond
    @cracksoftcond Год назад

    this is awesome!! made my own. also added a adsr for each osc and different waveshapes. thank you!

  • @paryska991
    @paryska991 3 года назад +2

    Damn, seems like i found a great source for learning some dsp etc. Big Ups man! Keep up the good work. Pozdro ;D

    • @WolfSoundAudio
      @WolfSoundAudio  3 года назад

      Thanks a lot for the feedback! Is there anything in particular that interests you from the domain of DSP? Również pozdrawiam ;]

  • @alexey.sibirtsev
    @alexey.sibirtsev 3 года назад +2

    Great tutorial! Thank you for your job

  • @legosteveb
    @legosteveb 3 года назад +4

    I really love your tutorial! I love the attention to detail. Can't wait for the voice allocation version... ADSR envelopes etc...
    I have a question about the MIDI event sample. At 48k sample rate each sample is 20.8us apart. A 128 sample buffer is 2.6ms long. At typical MIDI transmit rates a 3 byte MIDI message takes ~1ms. So why not just process all the MIDI events at the beginning before processing the audio data. Are humans capable of detecting anything faster than ~15ms (even in the best of situations)? I'm not trying to be snarky! I'm just curious about the added complexity of the inter-buffer offsets for MIDI events.

    • @WolfSoundAudio
      @WolfSoundAudio  3 года назад +1

      Hi legosteveb, thanks for the question!
      What you wrote is completely sound to me; if we have a 128 samples long buffer at 48 kHz, it wouldn't make much difference if we processed the messages at the beginning of the buffer. The problem is that... we don't know what the block length or sample rate the user will set :) At 22.05 kHz with 1024 block length (not uncommon), 1 block lasts for 46 ms: sufficiently long for a human listener to notice that the parameter changes don't happen continuously. So we typically write a more generic code to make sure we are on the safe side.
      Thanks again for asking!

    • @legosteveb
      @legosteveb 3 года назад +2

      @@WolfSoundAudio Thanks for the reply. It makes total sense for longer buffers and slower sample rates.

    • @WolfSoundAudio
      @WolfSoundAudio  3 года назад +1

      Great, thank you too! :)

  • @janviertel4832
    @janviertel4832 11 месяцев назад

    wow, very informativ...helps me a lot

  •  Год назад +1

    Hello , thanks. A technical question please: does atanf(), sinf() specific to c++ microsoft (do not exist in linux for example)?

    • @WolfSoundAudio
      @WolfSoundAudio  Год назад

      Thanks for the question. These functions are part of the C++ standard so they are available on all C++ compilers.

  • @frankbaron1608
    @frankbaron1608 2 года назад

    i see what's happening. the ide tells you the type behind the colon. how did you get it to do that? it's a very useful feature

  • @skyscape2087
    @skyscape2087 2 года назад +1

    THANKYOU SO MUCH BRO!

  • @zeromgee0449
    @zeromgee0449 Год назад

    thanks!! very good tutroal video

  • @HelicopterRidesForCommunists
    @HelicopterRidesForCommunists 5 месяцев назад

    How can I choose CLion from the projucer menu?

  • @frankbaron1608
    @frankbaron1608 2 года назад +1

    midiMessages is not defined. i assume it's meant to be one of the funtion parameters

  • @nkriedi
    @nkriedi 5 месяцев назад +1

    made it! sounds awful but I cannot be happier for first synth! thank you

  • @BrianMendoza93
    @BrianMendoza93 2 года назад

    I created both classes as "components" in juce. Turns out that the constructor will be "deleted" by the JUCE_LEAK_DETECTOR so, had to reimplemented again now as single files.

  • @frankbaron1608
    @frankbaron1608 2 года назад +1

    const auto midiEvent:MidiMessage = midiMessage.getMessage();
    annot deduce 'auto' type (initializer required)

    • @frankbaron1608
      @frankbaron1608 2 года назад +1

      i simply removed the midievent: problem solved.

  • @przekladanki
    @przekladanki 3 года назад +2

    Woooow

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

    im having such a hard time figuring out how to open audio host plugin :(

  • @mohitraj5615
    @mohitraj5615 2 года назад +2

    I noticed visual studio showing actual type of auto variables. How is it possible?

    • @WolfSoundAudio
      @WolfSoundAudio  2 года назад

      It works by default on my side... Are you using Visual Studio 2019?

    • @mohitraj5615
      @mohitraj5615 2 года назад

      I am currently using visual studio 2022. I've also used visual studio 2019 in the past and this feature wasn't there either by default.

    • @fabricebonhomme6598
      @fabricebonhomme6598 Год назад +1

      @@mohitraj5615 alt+F1

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

    If possible improve your Keyboard Typing sound - too loud and too much bass.

  • @VKHSD
    @VKHSD Год назад

    Doesnt build.