• double notes get stuck

    3
    0 Votes
    3 Posts
    104 Views
    SimonS

    @Morphoice The solution I used was to keep track of all note on events, then if you ever receive two note ons in a row on the same note you know you've received some illegal MIDI.

    It's pretty easy if on noteOn you check and store the event ID to an array (or MIDIlist I suppose) like

    onNoteOn { if (events[Message.getNoteNumber()]){ Console.print(You've just received some illegal MIDI!); } else { events[Message.getNoteNumber()] = Message.getEventId(); } } onRelease { events[Message.getNoteNumber()] = undefined; }

    How you handle the lawbreakers is up to you, but at a minimum it's best to stop everything on that note, as this situation breaks the assumption that every note on will have a corresponding note off.

    In my case I'm using artificial events, so stopping them all is easy. I don't actually know how you'd go about stopping the normal events.

    Give Synth.allNotesOff() a try, I know that doesn't affect notes with a timestamp in the future but I assume it works on stuck regular events.

    It would be nice if we got this built in similar to setfixnoteonafternoteoff

  • Including .JS files in new projects.

    9
    0 Votes
    9 Posts
    103 Views
    d.healeyD

    @Chazrox Yes, in the folder name in the file path, not the file itself.

  • The worlds most annoying bug

    14
    1 Votes
    14 Posts
    467 Views
    clevername27C

    @iamlamprey This is very strange, and I imagine very frustrating. Perhaps @Christoph-Hart has an idea.

  • FFT display crashes & waveform range adjustment

    16
    1 Votes
    16 Posts
    932 Views
    Adam_GA

    you guys are the best :D @ustk @clevername27

  • Custom AHDSR LAF

    3
    0 Votes
    3 Posts
    93 Views
    ulrikU

    @tiesvdam I don't think you can get rid of it, I solved it by painting the path in a panel, and removing the "extra line" parts by manipulating the path string
    The moving ball is from the envelope floating tile but the rest is a painted panel

    it involves converting the path to string - remove certain strings - convert it back

    I hope there is a better way to do it, but I don't know if there is any.
    Anybody knows how to do it in a less cumbersome way?

    this is part of the string manipulation, p is the path

    var a = p.toString().split(" "); var ax = parseInt(a[6]); var ay = parseInt(a[7]); var acx = parseInt(a[4]); var acy = parseInt(a[5]); var dx = ax + (parseInt(a[14])-ax)*0.95; var dy = parseInt(a[15]); var sx = parseInt(a[17]); var sy = parseInt(a[13]); var rx = parseInt(a[22]); var ry = this.getHeight()-3; var str = a.join("\n"); var path = Content.createPath(); path.fromString(str); g.setColour(Colours.chartreuse); g.drawPath(path, path.getBounds(1), 1.0);

    paintedahdsr.gif

  • MacOS Packages Issue

    16
    0 Votes
    16 Posts
    1k Views
    M

    @DanH Worked! Thanks man

  • External sidechain?

    21
    0 Votes
    21 Posts
    754 Views
    Dan KorneffD

    @Christoph-Hart Can we get the default name of the sidechain to be the name of our HISE project?
    Right now, an external sidechain is named "External Sidechain (+bus)" which can get confusing if you have 2 different plugins made with HISE on the same channel.

    HISE_SidechainName.png

  • Pulse Width Modulation + Wavetable Synth

    1
    0 Votes
    1 Posts
    37 Views
    No one has replied
  • Broadcaster attachToComponentValue triggered at init... Normal?

    3
    0 Votes
    3 Posts
    49 Views
    ustkU

    @d-healey Oh ok good to know. It might need a "skipping change on init" like for the callbacks...

    I just found an easy solution for my use case using mouse events instead:

    const var bc = Engine.createBroadcaster({ "id": "bc", "args": ["component", "event"], "tags": [] }); bc.attachToComponentMouseEvents(componentsToTrack, "Clicks Only", ""); bc.addListener("this", "md", function(component, event) { if (event.mouseUp) Console.print(component.getId() + " " + component.getValue()); });
  • 0 Votes
    3 Posts
    65 Views
    DanHD

    @d-healey Ah I had it in a midi script processor - doh!

    Thanks!

  • Viewport Styling Methods?

    5
    0 Votes
    5 Posts
    268 Views
    d.healeyD

    @Casmat said in Viewport Styling Methods?:

    One question, should you use just one panel in the viewport or generate a new panel for each list item you have in the viewport?

    If it's a simple list then one panel.

    If each item in the list needs an interactive element then use child panels.

  • XY Pad Display Buffer?

    15
    1 Votes
    15 Posts
    377 Views
    ulrikU

    @rglides Thanks

  • Apache License 2.0 or MIT licensed sound generator

    3
    0 Votes
    3 Posts
    202 Views
    Robert PuzaR

    @d-healey thank you

  • 0 Votes
    10 Posts
    524 Views
    R

    @d-healey it's a 1 to 1 relationship in this case so I think I might be ok. I'll test it in the morning and see if it works for me though. I appreciate both your input and replies, thankyou

  • Midi Controller VST built in HISE... thoughts??

    2
    0 Votes
    2 Posts
    111 Views
    VirtualVirginV

    @jBam said in Midi Controller VST built in HISE... thoughts??:

    Seems promising in terms of basics (HISE can send midi out). So does that mean I can link a parameter to a midi out function and have it send ANY midi message like Cc, rpn, nrpn, sysex... or is it Cc only??

    So as it stands, HISE built apps or plugins can only send note on/off (with velocity), CC, pitch bend, aftertouch and MPE.
    Other messages such as program change, MIDI Clock, MTC, MMC and SysEx are not supported at the moment.
    I added a feature request here to make additions to support all message types:
    https://forum.hise.audio/topic/11665/fr-support-for-all-midi-message-types?_=1740115136462

  • Help me understand VCF keytracking.

    8
    0 Votes
    8 Posts
    361 Views
    griffinboyG

    @Morphoice

    You can map it to a function of best fit using python / matlab.
    Ask chat gpt how to do this from a table of data.

    Alternatively you could create a lookup table of accurate values.

    I didn't realize you were going for analog tracking, that's a different case to digital, yes.
    The tracking lookup only happens once per note, so you don't have to worry about efficiency here. Envelopes by comparison need optimization as they are applied per sample.

  • How Can Beginners Start Learning AutoCAD Effectively?

    1
    0 Votes
    1 Posts
    53 Views
    No one has replied
  • 5 Votes
    19 Posts
    1k Views
    d.healeyD

    @DanH said in Tip for those of us hosting files on S3 - use Bunny instead:

    Would you mind DM-ing me too please? Guess it possibly doesn't bode well for the future though...

    Yeah I'll send it across. If they don't respond I'm just going to post the plugins publically (they're GPLv3). Unless Bunny changes their API or Wordpress significantly changes, there isn't much that could cause the plugin to stop working and it doesn't look like too complicated a plugin so I could probably fix it anyway.

  • Faust

    3
    0 Votes
    3 Posts
    252 Views
    U

    @Lindon Yes, I just tried to do it this way and it worked. Thank you.)

  • 0 Votes
    3 Posts
    150 Views
    griffinboyG

    @pelle

    Sounds like a bit of work but certainly. You'll have to design the algorithm though and do lots of thinking and testing to actually get something like that behaving smoothly. Try to prototype something simple and then extend it.

28

Online

1.8k

Users

12.1k

Topics

105.8k

Posts