Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Jason Wehmhoener
    @jasonw22
    @realTylerLubke_twitter here we go
    Tyler Lubke
    @realTylerLubke_twitter

    I can drop a link in the lines thread soon.

    I think our first step though is to whiteboard/brainstorm the features we want to include in the engine.

    Tyler Lubke
    @realTylerLubke_twitter
    1: 1-32 SinOsc nodes with changeable functions related to a fundamental frequency. Would allow for natural harmonics or subharmonics. This could be the basis of the engine.
    Jason Wehmhoener
    @jasonw22
    Sounds like it will allow for a lot of i/o which is what will inspire interesting Lua scripts
    johnideal
    @johnideal
    :wave: hey folks, joining from Lines. Definitely happy to tackle some engine development as well; maybe a little more excited about this than the lua-side scripting personally. That said, I think we can probably accommodate lua-only folks too, so long as the foundational script had a remotely functioning engine.
    Jason Wehmhoener
    @jasonw22
    Hi @johnideal! Thanks for joining
    Michael Hetrick
    @mhetrick
    As a tip for writing an additive engine, I recommend the Iteration video by Eli Fieldsteel: https://www.youtube.com/watch?v=bMGXYEg1gJo&index=7&list=PLPYzvS8A_rTaNDweXe6PX4CXSGq4iEWYC
    Additionally, the Patterns video has a great example that shows shortcuts for things like harmonics when stacking sines: https://www.youtube.com/watch?v=nB_bVJ1c1Rg&list=PLPYzvS8A_rTaNDweXe6PX4CXSGq4iEWYC&index=11
    Tyler Lubke
    @realTylerLubke_twitter

    Here are a couple short examples from the SC book as well:

    (
    {Mix.ar(
        Array.fill(12,
            {arg count;
             var harm;
                 harm = count + 1*110;
                    SinOsc.ar(harm,
                    mul: max([0,0], SinOsc.kr(count+1/4))
                )*1/(count+1)
        })
    )*0.7}.play.plot;
    )
    (
    {
        var fund = 220;
        Mix.ar(
            [
                SinOsc.ar(220, mul: max(0, LFNoise1.kr(12))),
                SinOsc.ar(440, mul: max(0, LFNoise1.kr(12)))*1/2,
                SinOsc.ar(660, mul: max(0, LFNoise1.kr(12)))*1/3,
                SinOsc.ar(880, mul: max(0, LFNoise1.kr(12)))*1/4,
                SinOsc.ar(1110, mul: max(0, LFNoise1.kr(12)))*1/5,
                SinOsc.ar(1320, mul: max(0, LFNoise1.kr(12)))*1/6,
                SinOsc.ar(1530, mul: max(0, LFNoise1.kr(12)))*1/7,
            ]
        )*0.3
    }.play
    )

    Though, I think something more static would be suited to our goals.

    Tyler Lubke
    @realTylerLubke_twitter

    This looks like it could be a decent tool for brainstorming together, no signup needed:

    webwhiteboard.com/board/uz8tgqev

    Jason Wehmhoener
    @jasonw22
    @mhetrick and @realTylerLubke_twitter thanks for the suggestions. Here's the code from Eli's Tutorial #6: https://gist.github.com/jasonw22/769882220ff64282f380e21199e77258