@d-healey Sounds genius but I'm having difficulty following the sub-dividing the timer part.
Could you please show a snippet of the code where you do so?
Posts made by aulicon
-
RE: Polyphony in the age of timers
-
Polyphony in the age of timers
I have been experimenting with manipulating and generating midi events from the OnNote using the OnTimer callback. I was able to create a series of drum articulation scripts fairly easy. So far I have the OnTimer being triggered and playing a sequence of notes and repetitions. Now this is all fun and games but problems start to arise when I try to implement this system polyphonically. Tracking and logging events is not quite useful as in the end I only have one OnTimer callback to trigger. I could create multiple timers and assign voices to them dynamically but this seems crazy in a scenario of where I might have like, idk, 50 timers?
As @d-healey had gently pointed out I might be able to achieve this via the midiplayer but even then I would have a very similar situation since the midi player cannot output notes while its running, making it basically monophonic. I would have to add 50 midi players which is also crazy....
I am sure I am missing something crucial about this.? have you ever encounter this scenario before? In Kontakt I was able to achieve this via polyphonic variables, an array to track ids and a bunch of wait statements.
THANKS!!! -
RE: Drum articulation ROLL, FLAM, RUFF
@aulicon I tried the Midi player and I sort of got it working but now I have the problem of how to achieve this polyphonically. At the moment only the first Note On message gets processed...```
function onNoteOn()
{{
// Check the current play state of the MIDIPlayer var playState = MIDIPlayer1.getPlayState(); // If the MIDIPlayer is playing, ignore the event if (playState == 1) { return; } // Ignore the original note event Message.ignoreEvent(true); // Get the pressed note number var pressedNote = Message.getNoteNumber(); // Get the event list from the MIDIPlayer var eventList = MIDIPlayer1.getEventList(); // Iterate through the event list and replace all note-on and note-off events with the pressed note for (i = 0; i < eventList.length; i++) { var e = eventList[i]; if (e.isNoteOn() || e.isNoteOff()) { e.setNoteNumber(pressedNote); } } // Flush the message list to apply changes MIDIPlayer1.flushMessageList(eventList); // Play the modified sequence MIDIPlayer1.play(0); MIDIPlayer1.setPlaybackPosition(0.62);
}}
-
Drum articulation ROLL, FLAM, RUFF
Hi all,
I'm trying to get create some midi articulations like roll, flam and ruff. at the moment I'm using the timer object for the roll...but I am not entirely sure this is scalable...I also don't know exactly how to manage it polyphonically. I know this is probably a mess but I would love some ideas on how to accomplish this the right way. Back in Kontakt I could have used the wait function and spelled every single repetition of the flam or the ruff and call it a day but HISE is a bit more sophisticated than that...code// roll function reg timermidi = Engine.createTimerObject(); timermidi.setTimerCallback(function () { Synth.playNote(Message.getNoteNumber(), Message.getVelocity()); }); function onNoteOn() { Message.ignoreEvent(true); timermidi.startTimer(80); } function onNoteOff() { timermidi.stopTimer(); }
-
RE: Floating Tile Keyboard setMouseCallback.
@d-healey I get it now! Subscribing to your patreon helped a lot...thanks!
-
RE: Floating Tile Keyboard setMouseCallback.
@d-healey yes a broadcaster seems to be way to go however is not clear to me if I can even get the “right click” mouse from the floating tile keyboard in the first place.
-
Floating Tile Keyboard setMouseCallback.
Is it possible to use the SetMouseCallback on the Floating Tile HISE keyboard?
I am trying to achieve a right-click contextual menu per note. User right clicks on a key > contextual menu appears> do stuff > key changes color>close menu.
If using the HISE keyboard is not the way to go, would it be possible to achieve this via LAF? or overlaying a panel on the keyboard...but then I wouldn't know how to get the exact location related to the key.Thanks!
-
round robin chain offset
is it possible to offset the stock round robin chain in HISE?
I have 3 samplers. They are all loaded with the same samplemap. I want sampler1 to cycle between rr1 rr2 rr3, Sampler2 to cycle between rr2 rr3 rr1 and Sampler3 between rr3 rr1 and rr2.
I would like to avoid using custom round robin script because this project has different round robin numbers for each sample map.
I could duplicate and edit the sample map two times and switch up the rr assignment but I'm hoping that I could just swap the cycle chain instead of creating x2 copies for each sample map.Thanks!
-
RE: Save dropped samples (make a copy in custom location)
@aaronventure Unfortunately not or at least I'm not aware of it.
-
RE: Granulator Envelope
@Oli-Ullmann did you ever got around to figure this out?
Would be really great to have control over the release in the granulator. Thanks. -
Save dropped samples (make a copy in custom location)
I have an audio waveform connected to a granulator. I want to be able to save the preset along with the .wav sample stored in the audio waveform in a custom location (preferably in the "samples" or in a "user samples" folder. A sample map would be acceptable too. I've been experimenting with the Custom Sample Import Save project but I cannot figure out how to achieve this...the demo project actually doesn't seem to save the sample or the samplemaps anywhere. Any idea is greatly appreciated.
-
Scriptnode "save as"
Is there a way to "save as" from the scriptnode workspace? There is only a "save" feature and it will overwrite the current .xml.
I tried duplicating the xlm file manually inside the dsp network folder but when I try to open it in scriptnode all I get is an empty node.