• Who Wants My Plugin Code?

    11
    7 Votes
    11 Posts
    2k Views
    L

    "Superb! How did you manage to animate the panels? (Fade in & fade out, translation, resizing...)

  • Piano sustain pedal behaviour

    11
    1 Votes
    11 Posts
    889 Views
    David HealeyD

    @virtuscapeaudio

    You don't need to play the note twice, just play it once and store the ID.

    Your if statements are missing curly braces.

  • Bending a SVG?

    1
    0 Votes
    1 Posts
    151 Views
    No one has replied
  • Can #define preprocessor take parameters?

    2
    0 Votes
    2 Posts
    153 Views
    A

    Alright,

    #define DECLARE_REG(name) reg name DECLARE_REG(test) = 5.767;

    works as expected. No space between identifier and open parenthesis, got it.

    This compiles in C and prints the value, with the variable test_heyhey properly formed from two tokens.

    int main() { #define DECLARE_REG(name) int name ## _heyhey DECLARE_REG(test) = 69; printf("%d", test_heyhey); return 0; }

    When I try this in HISE, I try

    #define DECLARE_REG(name) reg name ## _heyhey DECLARE_REG(test2) = 69.6969;

    and get an error saying "Unexpected character '#' in source"

    How to do #define token concatenation in HISEScript, then? @Christoph-Hart

  • Meaning of Convo Reverb Parameters?

    Solved
    6
    0 Votes
    6 Posts
    411 Views
    Oli UllmannO

    @Christoph-Hart thank you for the explanation! HISE is just great! Keep it up! :-)

  • Time attenuate: How to decrease volume of release samples over time?

    17
    0 Votes
    17 Posts
    1k Views
    virtuscapeaudioV

    @d-healey No problem I'll wait. Thanks so much!!

  • Connecting Audio Loop Player's Root Note Knob using Broadcaster?

    1
    0 Votes
    1 Posts
    190 Views
    No one has replied
  • How to Detect if Inside Ellipse?

    23
    0 Votes
    23 Posts
    6k Views
    ustkU

    @ericchesek April 3 is the date you built, not the branch date. I've implemented the new methods before that so you probably have to build the develop branch again

  • Don't trigger release samples if sustain pedal is down

    7
    0 Votes
    7 Posts
    520 Views
    virtuscapeaudioV

    @d-healey BEFORE , gotcha. Works perfectly and thanks very much!

  • Can a specific samplemap be loaded by passing the filename as string?

    7
    0 Votes
    7 Posts
    728 Views
    FrankbeatF

    @d-healey Solved, thank you very much! Indeed the suffix isn't needed.

  • A Factory for Rotated Text…Almost

    Unsolved
    7
    0 Votes
    7 Posts
    386 Views
    David HealeyD

    @Natan Read the code, the instructions are there

  • midi node, channel mismatch error

    2
    0 Votes
    2 Posts
    386 Views
    David HealeyD

    Bump bump

  • Memory persistence

    7
    0 Votes
    7 Posts
    889 Views
    T

    @Christoph-Hart is it possible to routinely clear the plug-in memory usage without clearing the preset data? I see the method

    Engine.getMemoryUsage()

    Is there a way to use this to set a max threshold for memory usage?

  • How to control instrument volume with MPE?

    Solved
    12
    0 Votes
    12 Posts
    2k Views
    David HealeyD

    @bendurso Use the global modulators system. You add one MPE modulator in the global mods container and then assign this to the gain of each sampler.

  • Making a Rectangular Selection Tool

    3
    0 Votes
    3 Posts
    346 Views
    ustkU

    @ericchesek I call b.changed() in the mouseCB making it fire at each drag movement which is bad. The button callback should be called when mouse is released, or using a check to see if the button state changed so the CB doesn't trigger constantly...

    pnl.setMouseCallback(function(event) { if (event.clicked) this.data.startPos = {x:event.x, y:event.y}; if (event.drag) { this.data.isSelecting = true; this.data.currPos = {x:event.x, y:event.y}; this.data.p.clear(); this.data.p.startNewSubPath(this.data.startPos.x, this.data.startPos.y); this.data.p.lineTo(this.data.currPos.x, this.data.startPos.y); this.data.p.lineTo(this.data.currPos.x, this.data.currPos.y); this.data.p.lineTo(this.data.startPos.x, this.data.currPos.y); this.data.p.closeSubPath(); } if (this.data.isSelecting) updateButtons(event.mouseUp); if (event.mouseUp) this.data.isSelecting = false; this.repaint(); }); inline function updateButtons(isRelease) { for (b in btns) { // just an imaginary line in the middle of the button representing its position local buttonLineStart = [b.getGlobalPositionX(), b.getGlobalPositionY() + b.getHeight()/2]; local buttonLineEnd = [b.getGlobalPositionX() + b.getWidth(), b.getGlobalPositionY() + b.getHeight()/2]; local isIntersecting = this.data.p.getIntersection(buttonLineStart, buttonLineEnd, true); b.setValue(isIntersecting != false); if (isRelease) b.changed(); } }
  • Linking Ambisonics Code

    7
    0 Votes
    7 Posts
    377 Views
    C

    @DabDab

    This stuff is great—I've used it in MAX—

    https://www.zhdk.ch/en/research/icst/software-downloads-5379

    Here's a more general-purpose page from the same organization:

    https://ambisonics.ch

    I've emailed the project maintainer to ask about a Faust implementation.

    Cheers,

    Bill

  • Engine.saveUserPreset(value) in any dir?

    6
    0 Votes
    6 Posts
    346 Views
    A

    @d-healey Thank you!

  • Making a fake stereo effect

    5
    0 Votes
    5 Posts
    931 Views
    David HealeyD

    @Soundavid Thanks, I'll give it a try

  • How to use the pitch mod node?

    Solved
    9
    0 Votes
    9 Posts
    1k Views
    David HealeyD

    @Christoph-Hart Thanks!

  • Can't read from JSON

    1
    0 Votes
    1 Posts
    114 Views
    No one has replied

27

Online

2.1k

Users

13.1k

Topics

113.5k

Posts