New Realtime Sound Subsystem

About Monkey 2 Forums Monkey 2 Projects New Realtime Sound Subsystem

This topic contains 10 replies, has 4 voices, and was last updated by  AdamStrange 8 months, 1 week ago.

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #15106

    AdamStrange
    Participant

    I’ve been slowly working on a replacement sound system (due to the continuing MacOS issues).

    So far I now have the core system complete.
    It consists of basic sample playback, forward, reverse. wavetable, saw and other synthesis methods.
    You then have FX and Shapers to further modify/mangle the sound.

    At this stage you are actually building the playback systems (think the audio synth blocks).

    Sound can then be plugged into this new voice architecture.

    I’ve arranged it as drag/drop as I could and the faders are automatically arranged as you drop new nodes, etc.

    #15109

    Amon
    Participant

    Woah! Cool.

    #15112

    cocon
    Participant

    Wow can’t wait to try it. I am a musician as well so I might be able to create a few things with it. 🙂

    #15134

    AdamStrange
    Participant

    Thanks guys. I can upload a macos demo if you want?

    I’ve been working on/adding/modifying the blocks.

    Additional generators (tri, PWM, saw and FM) and added the ability to seamlessly loop with automatic xfade.

    The seamless loop is shown below with parameters for how large the loop is, where the end of the loop is and how much of a crossfade to include. It’s visual but also sound based, so you can just click and listen until clicks/pops just disappear!

    Also shown is 2 generators at the same time: sample and organ. So you can have 2 (or more) sources being mixed together at the same time in the same single voice.

    I’ve also improved the latency and clipped things so volume doesn’t go nuts and also added an output so you can see the current waveforms being generated.

    I’m starting to look at how the control systems will operate. I’m thinking of 2 lfo’s and 2 envelopes, plus routings?

    #15148

    cocon
    Participant

    I don’t know exactly how these instruments are properly designed. I could guess that you would start looking at some VST plugins – some of them are exact replicas of 80s synths and that make them sort of standard. Otherwise there is a more modular approach that would allow the user to add the components together as building blocks.

    #15175

    AdamStrange
    Participant

    The only issue I have with that approach (looking at other sources) is that you end up just replicating what already exists.
    The best way to think of this is a modular system. you build the output from different module/blocks.

    You can think of the current monkey2 audio as the following:
    Sample playback -> volume & pan

    Unfortunately (on the mac) the output for mono samples does not operate correctly. Also you can’t pan stereo samples.

    So that is the starting point – fix those issues (sorted by the way)

    OK. Now I have the direct control over the audio subsystem I can create completely new sound sources and fx. that can simply be dropped into the sound chain. These alone make a powerful system, but…
    What we really need is a way to add some life (LFO and envelopes):

    But that would mean some way to connect these controls together…

    #15181

    AdamStrange
    Participant

    and it’s done. Sockets and wires that can be connected… Still need the back end code. but the ui is more or less finished 🙂

    #15182

    cocon
    Participant

    wow, it’s getting better. 🙂

    #15256

    AdamStrange
    Participant

    Current progress:

    This shows the extended output section plus fully operational Envelope1 section. Notice that wires connecting hidden controls are also now shown (thinner) so you know what is going on. The only thing missing is the function part…


    Which is exactly what we have here.
    A function is an additional part to any control where the output can be directly mapped just by drawing the output you want!

    Work is now ongoing to tidy up the internal code itself. Currently there are 30 controls covering samples (including granular and wavetable synthesis), base FX such as phase change, distort, etc. Audio delays, stereo enhancers, and filters. Plus pure sound generators including organ, FM, PWM, saw and others.

    #15263

    Simon Armstrong
    Participant

    Nice one Adam!

    #15265

    AdamStrange
    Participant

    Thanks simon. The core is based around the SDLAudio subsystem

Viewing 11 posts - 1 through 11 (of 11 total)

You must be logged in to reply to this topic.