Page 1 of 1
Posted: 04 May 2015, 18:22
by 23fx23
yop
Ive uploded a little user module that allows to make custom scales and save/recall them via Pm for midi flows.
basically user set up a transpose grid matrix and the input midi will be transposed according the matrix on output.
ie: if linear = no change, if note 2 is 3 instead of 2 on receive it will play 3 on output.
also possibility to mute a note via toggeling cell off.
a little border flash indicate wich note is received.
hope can be useful, let me know if bugz.
( compiled for x32 X64 only for now, but if it goes well for others ill upload the code if someone want to compile for osx.)
/add-ons/midi tools
wiki
http://www.sensomusic.org/wiki3/doku.ph ... s:mx_scale
Posted: 04 May 2015, 22:24
by gurulogic
This looks great! Thanks!
Posted: 05 May 2015, 10:11
by ceasless
Hey 23fx23, I plan to compile the Grove today, so feel free to upload the source and I will get the OS X binary compiled and uploaded.
Posted: 05 May 2015, 11:55
by 23fx23
hi ceasless. ok cool. here is a link to the source codes.
https://drive.google.com/file/d/0B0VUyz ... sp=sharing
Posted: 05 May 2015, 12:42
by 23fx23
oops i ve just seen that i made a mistake and the visual background displaying notes is wrong. the result is ok however but ill try to fix soon
Posted: 05 May 2015, 13:06
by 23fx23
sorry for the mess. so ive reuploaded the fixed version it this folder with x32-64 binaries and src code. gonna replace the addon now
https://drive.google.com/folderview?id= ... sp=sharing
Posted: 05 May 2015, 13:39
by nay-seven
great one, it 's monophonic ?
Posted: 05 May 2015, 14:18
by 23fx23
it's supposed to be polyphonic to i reckon i haven't deeply tested in poly.
edit: check back right, re oops display works fine in poly but out is mono. damned i need to check better^^ will correct this..
..but i can't understand what is wrong with the code, should work poly to me :/
anybody knows if this can work with callback, no need to use process right?
Code: Select all
if (sizeMidiIn > 0)
{
sdkCopyEvt(midiIn, midiOut);
for (int i = 0; i < sizeMidiIn; i++)
{
UsineMidiCode code = sdkGetEvtArrayMidi(midiOut, i);
if (code.Msg == MIDI_NOTEON || code.Msg == MIDI_NOTEOFF)
{
int actualnote = code.Data1;
int idnote12 = floor(fmodf(actualnote, 12));
int transpose = sdkGetEvtArrayData(pTranspose, idnote12);
bool play_note = sdkGetEvtArrayData(pONOFFs, idnote12) == 1;
if (code.Msg == MIDI_NOTEON)
{ FLASH[idnote12 + ((12 - idnote12) * 12)] = 1;
}
else
{ FLASH[idnote12 + ((12 - idnote12) * 12)] = 0;
}
if (play_note)
{ code.Data1 = std::min(127, std::max(0, (int)code.Data1 + transpose));
}
else
{ code.Msg = MIDI_NOTEOFF;
}
sdkSetEvtArrayMidi(midiOut, i, code);
Re edit. Im really stupid, i was testing with a monophonic vst :rolleyes: , tested to rec in pianoroll i do see chords on output everuthing is fine in fact
