Midi-Out Messages?
-
I built a chord player.
I want the chords that I hear to be drawn out in the piano roll, but the only note that shows up is the 1 piano key that is triggering the chord.
How do I get the plugin to output the complete chord midi data instead of single notes?
Only drawing one note: (in Ableton)
My module tree:
-
@Chazrox How do you build the chords from one note? Is it the Script Processor1?
How do you display the notes, are you using a panel?Your Tree only shows a generator and midi setter and midi filter
-
@Chazrox You would need to place the your piano roll script in a container on the next level down from your chord generator. Any MIDI that you generate will not be "seen" on that onNoteOn or onNoteOff callback, so you need a new container level to receive it as MIDI input.
-
@ulrik my chords are all triggered by script in onNoteOn/Off . My thought was that I was even gonna delete the waveform generator and only use as a midi fx plugin but i just learned thats a little buggy rn so plans have changed to leaving it in and just piggy backing other midi instruments from this midi output and muting this audios out. Im using the stock keyboard floating tile to also show what chords are currently playing.
-
@ulrik
trigger keys are midinote 60-71. The buttons on the UI correlate to those 12 buttons (the 12th just being a root duplicate/alternative)Triggering by piano keys only output the trigger key (60-71) and not the rest of the chord. Triggering the chord by UI buttons dont output any midi notes at all during recording even though you can hear sound.
This is the script for 1 trigger in onNoteOn:
// Chord 1 Values var Chord1Choice = cmbChord1.getValue(); var chord1 = ChordLibrary[cmbChordType1.getValue() - 1]; var Octave1 = Knob1.getValue() * 12; var velocity = Message.getVelocity(); var nn = Message.getNoteNumber(); var noteEventIds = []; var Index = nn - 60; noteEventIds[nn] = []; var offset = 60; // Chord Index Controls if (nn == 60) { for (c1 = 0; c1 < chord1.length; c1++) { noteEventIds[nn].push(Synth.playNote(chord1[c1] + offset + Octave1 + Chord1Choice - 1, velocity)); } }
-
@VirtualVirgin I think im understanding what you're suggesting. What do you mean by "piano roll script"? Is there new script I have to add somewhere or is it a matter of moving around what I already have?
The piano roll shown above is in Ableton.
-
@ulrik I can send you a snippet if you wanna check it out.
-
C Chazrox marked this topic as a question
-
C Chazrox referenced this topic
-
@Chazrox it is as @VirtualVirgin suggested, you need to read the out coming note ons and offs from a script one level below the script that generate the chord
-
ok so my tree is setup like this now...
As of now, I have everything in 'Interface' script onInit, onNoteOn, onNoteOff.
Im going to move my generator script from Interface onNoteOn/onNoteOff to Script Processor 1,
then what do I put in 'Script Processor2'? Message.sendToMidiOut?
Im not sure if this matters but @VirtualVirgin was suggesting to move my "piano roll script" underneath, but I dont have a piano roll script. The piano roll example picture shown above is in Ableton, not my plugin.
Thank You
-
-
@ulrik Besides these weird hang notes...I got it somewhat working. Ableton is atleast printing out full chords now! Any advice why only these notes getting hung up?
Im able to play full chords in real time through another instrument, in this case Waves Grand.