Looking for a plugin which has a Similar MIDI routing feature. [solved]

Discussion in 'Reaper' started by justsomerandomdude, Apr 14, 2024.

  1. justsomerandomdude

    justsomerandomdude Platinum Record

    Joined:
    Aug 24, 2020
    Messages:
    441
    Likes Received:
    292
    So, Let me explain my usual workflow in brief.

    Below is a pic of basic project template, because regular is much more complex to explain.
    Workflow.jpg

    (RC here means RapidComposer)


    I have Track 1 for midi input only, record option is disabled on the track.
    Output from this track is then routed to

    Track 2
    which has RapidComposer, so basically the signal runs through RC and then it is routed to the other tracks, Like Bass, Lead and keys etc.

    Track 3 is for Midi Capture only,

    Sometimes i use scaler or Reacontrol on Track 1 to lock the notes into scale. The signal is then routed out to external virtual midi port and then back onto Track 3, because Reaper does not capture output midi, only input (retrospective midi, there is a separate post for this http://audiosex.pro/threads/looking...midi-capture-record-plugin.70292/#post-706590)

    Track 1 → Track 2 (RC) → Other instrument tracks
    ↓ Track 3 (Midi capture)
    ↓ ↑
    Out to virtual midi port =>


    So, back to the topic I use RC only to preview the instrument.
    When i say preview, this work flow doesn't require a track inside Reaper to be armed every time to play it. Just clicking the track inside RC (as in Pic) sends the signal to that Track. IOW to listen to what is being played.

    i mostly use Retrospective midi capture as a record feature, capture and clear frequently and rarely use record, except for audio.

    I have a Script with a shortcut to open and close RC, I use RC to select the track which routes the signal to that specific track with instrument, without selecting or arming in Reaper, like mentioned above, that's all i use it for these days.

    The problem is, sometimes RC gets laggy and have issues with hanging notes, and unnecessary waste of resource when working with bigger projects.

    So is there a plugin or a tool with a feature like this, like just to select a track or in this case a midi channel, without arming or muting other tracks, which sends signal trough that channel to the track.

    Thank U

     
    Last edited: Apr 14, 2024
  2.  
  3. tzzsmk

    tzzsmk Audiosexual

    Joined:
    Sep 13, 2016
    Messages:
    3,313
    Likes Received:
    2,021
    Location:
    Heart of Europe
    not exactly sure what you're trying to achieve such complicated way,
    just put a folder track above (routing destination basically) and there right-click and choose to record MIDI output

    [​IMG]

    also you can use some MIDI filtering, experiment with anticipative FX processing setting in Reaper,
    you can also use ReaStream plugin to create localhost network to send+receive MIDI (and, or audio)
     
  4. justsomerandomdude

    justsomerandomdude Platinum Record

    Joined:
    Aug 24, 2020
    Messages:
    441
    Likes Received:
    292
    Hi @tzzsmk, thank u for responding.

    What i'm looking for is an alternative for RC especially for the routing/wiring functionality, if u have used it u ll understand more clearly.
    What it basically does is, it has this internal wiring/routing. When u route a midi port with 16 channels lets say "internal midi port 1" to the track which has RC, the signal goes into RC and then u can select a track inside RC which basically routes that signal from "internal midi port 1" to that specific track which has a channel assigned to them. It works like arming the track but with just one click.

    Lets say Track 1 in RC which is Bass from the above pic. which has a channel assigned to it "channel 1" in this case, which is then then routed to the Bass track in Reaper.
    Workflow 4.jpg

    Of course i can auto-arm the tracks in Reaper just by selecting them, but it creates more mess when i try to capture midi "retrospective midi" it just splashes midi all over the place.

    There are midi filters, i use code fn42 MIDiChFilter but it doesnt work. It just filters out the channel.
    Workflow 3.jpg
     
    • Interesting Interesting x 1
    • List
  5. xorome

    xorome Audiosexual

    Joined:
    Sep 28, 2021
    Messages:
    824
    Likes Received:
    645
    I read this three times and I still have no idea what you're trying to accomplish or what you need to get done.
     
    • Agree Agree x 1
    • Funny Funny x 1
    • Winner Winner x 1
    • List
  6. justsomerandomdude

    justsomerandomdude Platinum Record

    Joined:
    Aug 24, 2020
    Messages:
    441
    Likes Received:
    292
    Lol, Never thought it would make much complicated to understand.
    Like mentioned b4, i dont know if u have used RC. but in short im looking for a plugin with a similar routing capability like RC. It has a way of routing midi just by clicking the track.
    Let me know if u still don't understand or which part u don't get.
     
  7. xorome

    xorome Audiosexual

    Joined:
    Sep 28, 2021
    Messages:
    824
    Likes Received:
    645
    So all you want is a script that you put on a track that receives MIDI. When you open the script, you get a window with buttons that say:

    Channel 1
    Channel 2
    ...
    Channel 6

    and clicking on those buttons changes all incoming notes' MIDI channel to the button's number?
     
    Last edited: Apr 15, 2024
  8. justsomerandomdude

    justsomerandomdude Platinum Record

    Joined:
    Aug 24, 2020
    Messages:
    441
    Likes Received:
    292
    Yes absolutely correct, Thank you.

    and yes route that incoming midi data to the channel/track that i clicked. But, without muting or turning off any of the other channels. Like ive mentioned b4, MIDIChFilter works only for filtering or turning off other channels, it does not redirect or route to a specific channel no matter how i assign it in Reaper.

    I searched for a script but there wasn't any at-least to my knowledge. Actually that RC's feature is amazing, i dont why ppl havent looked into it yet. The signal i can route through it in and out is astonishing, Hell i could even route a signal from my Washing machine if possible.
     
  9. xorome

    xorome Audiosexual

    Joined:
    Sep 28, 2021
    Messages:
    824
    Likes Received:
    645
    So like this but with buttons? (save as something.jsfx and add to Reaper as with other effects)

    Code:
    desc:MIDI Channel Picker
    
    slider1:1<1,9,1>MIDI Channel
    
    in_pin:none;
    out_pin:none;
    
    @init
    channel = slider1 - 1;
    
    @slider
    channel = slider1 - 1;
    
    @block
    while (midirecv(pos, msg1, msg2, vel)) (
          midisend(pos, (msg1 & $xF0) + channel, msg2, vel);
    )
    
     
  10. justsomerandomdude

    justsomerandomdude Platinum Record

    Joined:
    Aug 24, 2020
    Messages:
    441
    Likes Received:
    292
    Yes, thank u dude. it works the slider works to pick the channel as expected. i named it as "xorome - MIDi Ch picker"

    what to do instead of slider there are various channel listed one below another, like in that pic above of code fn42 filter, without 'all' 'none' buttons which is not necessary, but instead there is a mute and solo besides each "channel", is it asking too much?

    Edit: i changed 9 to 16
    Code:
    slider1:1<1,16,1>MIDI Channel
     
    Last edited: Apr 15, 2024
  11. xorome

    xorome Audiosexual

    Joined:
    Sep 28, 2021
    Messages:
    824
    Likes Received:
    645
    I'll look into how to make GUI buttons in Reaper tomorrow.

    You want the mute/solo buttons to mute/solo notes coming in from those specific channels?
     
  12. justsomerandomdude

    justsomerandomdude Platinum Record

    Joined:
    Aug 24, 2020
    Messages:
    441
    Likes Received:
    292
    Thanks again dude :like:
    i was looking into tat too. https://geraintluff.github.io/jsfx-ui-lib/tour/3 - Controls.html
    https://admiralbumblebee.com/music/2018/02/08/Write-a-Reaper-MIDI-JSFX-from-scratch.html

    S just in case if mutiple channels has to be selected. And we cannot say "coming in" because its and should be omni, just for the channel that is selected, which is going out.
    Lets say like this
    Clicking "channel" activates that channel when none is selcted theres no output to any channels, but when two or more selected we can make use for mute solo

    Edit: Checked it thoroughly works like a charm. Is it possible to add a function to send "all notes off" when the channel is switched, because when moving the slider switching the channel it leaves hanging notes IOW it leaves a "note on" msg.

    Hanging note.jpg
     
    Last edited: Apr 16, 2024
    • Interesting Interesting x 1
    • List
  13. xorome

    xorome Audiosexual

    Joined:
    Sep 28, 2021
    Messages:
    824
    Likes Received:
    645
    I added GUI buttons. Only the channel picker buttons work at the moment. I'll look into M/S and note-off-on-channel-change tomorrow. Please test.

    upload_2024-4-16_17-3-24.png
    Code:
    desc:MIDI Channel Picker
    
    in_pin:none;
    out_pin:none;
    
    @init
    x = 8; y = 8;
    
    mouse_cap_p = -1;
    
    ch_state = 0; mem_set_values(ch_state, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
    m_state = 16; mem_set_values(m_state,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
    s_state = 32; mem_set_values(s_state,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
    
    ch_button_x = 48; ch_button_y = 64;
     m_button_x = 80;  m_button_y = 96;
     s_button_x = 112; s_button_y = 128;
    
    ch_button_xx = 144; ch_button_yy = 160;
    
    i = 0;
    while (i < 15) (
       ch_button_x[i] = x;
      ch_button_xx[i] = x + 61;
       ch_button_y[i] = y;
      ch_button_yy[i] = y + 25;
    
      y += 31;
     
      i += 1;
      (i % 5 == 0) ? (
        x += 138;
        y = 8;
      );
    );
    
    function draw_btn(txt, x, y, w, h, toggle) (
      toggle == 0 ? (
        gfx_set(0.17, 0.17, 0.17);
      ) : (
        gfx_set(0.1, 0.4, 0.3);
      );
    
      gfx_rect(x, y, w, h, 5, 1);
      gfx_set(.95, .95, .95);
      gfx_x = x + 11;
      gfx_y = y + 8;
      gfx_printf(txt);
    );
    
    @gfx 415 163
    gfx_setfont(0);
    
    i = 0;
    while (i < 15) (
      #label = sprintf(#, "Ch %d", i + 1);
      draw_btn(#label, ch_button_x[i],      ch_button_y[i], 61, 25, ch_state[i]);
      draw_btn("M",    ch_button_x[i] + 65, ch_button_y[i], 28, 25, m_state[i]);
      draw_btn("S",    ch_button_x[i] + 97, ch_button_y[i], 28, 25, s_state[i]);
      i += 1;
    );
    
    ((mouse_cap == 1) && (mouse_cap_p == 0)) ? (
      i = 0;
      while (i < 15) (
        ((mouse_x >= ch_button_x[i])  && (mouse_y >= ch_button_y[i]) &&
         (mouse_x <= ch_button_xx[i]) && (mouse_y <= ch_button_yy[i])
        ) ? (
          ch_state[i] = !ch_state[i];
        );
    
        i += 1;
      );
    );
    
    mouse_cap_p = mouse_cap;
    
    @block
    while (midirecv(pos, msg1, msg2, vel)) (
      i = 0;
      while (i < 15) (
        (ch_state[i] == 1) ? (
          midisend(pos, (msg1 & $xF0) + i, msg2, vel);
        );
    
        i += 1;
      );
    )
    
    E: Formatting
     
    Last edited: Apr 16, 2024
    • Like Like x 2
    • Love it! Love it! x 1
    • List
  14. justsomerandomdude

    justsomerandomdude Platinum Record

    Joined:
    Aug 24, 2020
    Messages:
    441
    Likes Received:
    292
    Fantastic.. :like: i will test and get back..
     
  15. justsomerandomdude

    justsomerandomdude Platinum Record

    Joined:
    Aug 24, 2020
    Messages:
    441
    Likes Received:
    292
    @xorome, checked works good like b4.

    but
    - when hittin play changes back to "ch1"
    - there is a minor flickering in the ui i dont know what was causing that. happened couple of times but wasnt able to recreate it after a while.

    Changed a couple of things
    to
    Code:
    while (i < 16) (
    
    Code:
    (i % 5 == 0) ? (
    to
    Code:
    (i % 8 == 0) ? (
    And tried to adjust height and width by
    Code:
    @gfx 415 163
    to
    Code:
    @gfx 279 260
    couldn't get to the adjust width properly.

    Midi channel picker.jpg

    - Is it possible to select only one channel when clicking, and only when using ctrl+click we can select multiple channels, may be that might be used to changing the channel by arrow keys on KB or by using a foot pedal or smthg.
     
  16. xorome

    xorome Audiosexual

    Joined:
    Sep 28, 2021
    Messages:
    824
    Likes Received:
    645
    Doh, fixed.

    I think there's a minimum width. Not sure it can be helped.

    Yeah, I added that.

    Left click = Activate channel and deactivate all other channels.
    Ctrl+Left-click = Toggle an additional channel.

    I added the M/S buttons:
    Left click on M/S: Mute/Solo an additional channel.
    Ctrl+Left-click on M/S: Activate channel for M/S, reset M/S on all other channels.
    (The other way around from channel buttons)

    I added note-off-on-channel-change as a checkbox. I made it so that it only sends note offs when you are activating a single channel, not when adding more channels.

    upload_2024-4-17_14-25-3.png

    Update behind the spoiler.

    Code:
    desc:MIDI Channel Picker
    
    in_pin:none;
    out_pin:none;
    
    @init
    ext_noinit = 1;
    
    solo = 0;
    note_off = 0;
    note_off_send = 0;
    mouse_cap_p = -1;
    
        ch_state = 0;
        m_state = 16;
        s_state = 32;
    ch_button_x = 48;
    ch_button_y = 64;
     m_button_x = 80;
     s_button_x = 96;
    
    memset(ch_state, 0, n_btn);
    memset( m_state, 0, n_btn);
    memset( s_state, 0, n_btn);
    ch_state[0] = 1;
    
    x = 8;
    y = 8;
    
    n_btn   = 15;
    bt_hght = 25;
    ch_wdth = 61;
    ms_wdth = 28;
    ck_wh   = 16;
    ck_x    = 8;
    ck_y    = 174;
    
    i = 0;
    while (i < n_btn) (
      ch_button_x[i] = x;
      ch_button_y[i] = y;
    
      m_button_x[i] = ch_button_x[i] + ch_wdth + 4;
      s_button_x[i] =  m_button_x[i] + ms_wdth + 4;
    
      y += 31;
    
      i += 1;
      (i % 5 == 0) ? (
        x += 138;
        y = 8;
      );
    );
    
    function draw_btn(txt, x, y, w, h, toggle) (
      toggle == 0 ? (
        gfx_set(.17, .17, .17);
      ) : (
        gfx_set(.1, .4, .3);
      );
      gfx_rect(x, y, w, h, 5, 1);
    
      gfx_set(.95, .95, .95);
      gfx_x = x + 11;
      gfx_y = y + 8;
      gfx_printf(txt);
    );
    
    function draw_ckbx(txt, x, y, w, h, toggle) (
      toggle == 0 ? (
        gfx_set(.17, .17, .17);
      ) : (
        gfx_set(.1, .4, .3);
      );
      gfx_rect(x, y, w, h, 5, 1);
    
      gfx_set(.95, .95, .95);
      gfx_x = x + w + 6;
      gfx_y = y + 4;
      gfx_printf(txt);
    );
    
    @gfx 415 200
    gfx_setfont(0);
    
    i = 0;
    while (i < n_btn) (
      #label = sprintf(#, "Ch %d", i + 1);
      draw_btn(#label, ch_button_x[i], ch_button_y[i], ch_wdth, bt_hght, ch_state[i]);
      draw_btn("M",     m_button_x[i], ch_button_y[i], ms_wdth, bt_hght,  m_state[i]);
      draw_btn("S",     s_button_x[i], ch_button_y[i], ms_wdth, bt_hght,  s_state[i]);
      i += 1;
    );
    
    draw_ckbx("Note off on channel change", ck_x, ck_y, ck_wh, ck_wh, note_off);
    
    ((mouse_cap == 1 || mouse_cap == 5) && (mouse_cap_p == 0)) ? (
      ((mouse_y >= ck_y) && (mouse_y <= ck_y + ck_wh) &&
       (mouse_x >= ck_x) && (mouse_x <= ck_x + 235)) ? (note_off = !note_off);
    
      i = 0;
      while (i < n_btn) (
        ((mouse_y >= ch_button_y[i]) && (mouse_y <= ch_button_y[i] + bt_hght)) ? (
          ((mouse_x >= ch_button_x[i]) &&
           (mouse_x <= ch_button_x[i] + ch_wdth)
          ) ? (
            (mouse_cap == 1) ? (
              memset(ch_state, 0, n_btn);
              (note_off == 1) ? (note_off_send = 1);
            );
            ch_state[i] = !ch_state[i];
          );
        
          ((mouse_x >= m_button_x[i]) &&
           (mouse_x <= m_button_x[i] + ms_wdth)
          ) ? (
            (mouse_cap == 5) ? (memset(m_state, 0, n_btn));
            m_state[i] = !m_state[i];
          );
    
          ((mouse_x >= s_button_x[i]) &&
           (mouse_x <= s_button_x[i] + ms_wdth)
          ) ? (
            (mouse_cap == 5) ? (memset(s_state, 0, n_btn));
            s_state[i] = !s_state[i];
          );
        );
    
        i += 1;
      );
    );
    
    mouse_cap_p = mouse_cap;
    
    solo = 0;
    i = 0;
    while (i < n_btn) (
      s_state[i] == 1 ? (
        solo = 1;
        i = 666;
      );
      i += 1;
    );
    
    @block
    (note_off_send == 1) ? (
      midisend(0, $xB0, 123, 0);
      note_off_send = 0;
    );
    
    while (midirecv(pos, msg1, msg2, vel)) (
      i = 0;
      while (i < n_btn) (
        pass = 0;
    
        (solo == 0) ? (ch_state[i] == 1) ? (pass = 1);
      
        (m_state[i] == 1) ? (pass = 0);
        (s_state[i] == 1) ? (pass = 1);
      
        (pass == 1) ? (midisend(pos, (msg1 & $xF0) + i, msg2, vel));
    
        i += 1;
      );
    )
    
     
    • Like Like x 2
    • Winner Winner x 2
    • List
  17. No Avenger

    No Avenger Audiosexual

    Joined:
    Jul 19, 2017
    Messages:
    8,980
    Likes Received:
    6,206
    Location:
    Europe
    @xorome Be careful with posting useful and working scripts for Reaper on demand and in public, this could easily end up in a full time job. [​IMG]

    IOW, absolutely great what you're doing for other members here. :like:
     
    • Like Like x 1
    • Funny Funny x 1
    • Love it! Love it! x 1
    • List
  18. justsomerandomdude

    justsomerandomdude Platinum Record

    Joined:
    Aug 24, 2020
    Messages:
    441
    Likes Received:
    292
    @xorome thanks a ton dude, works perfectly,
    That was a additonal bonus and brilliant, never thought about that.
    Mute and solo works perfect.

    I just had a look into tat 2, its like fixed, all the jsfx plugins have this width. U r right. I guess its tr for the options on top like parameter, and the preset box.

    I was playing with it for a while. Like on the earlier post, just changed it to 16 tracks from 15, moved the checkbox,
    Here,

    Midi channel picker 2.1.jpg

    However "note off on channel change" seems to work only on channel 1 or is only directed towards channel 1 not on other channels. But its ok.
     
    Last edited: Apr 18, 2024
  19. xorome

    xorome Audiosexual

    Joined:
    Sep 28, 2021
    Messages:
    824
    Likes Received:
    645
    Best Answer
    Oops, should be fixed. I had Kontakt listen on all channels so it always seemed to work :rofl:

    upload_2024-4-18_13-17-32.png

    Update behind spoiler
    Code:
    desc:MIDI Channel Picker
    
    in_pin:none;
    out_pin:none;
    
    @init
    ext_noinit = 1;
    
    solo = 0;
    note_off = 0;
    note_off_send = 0;
    mouse_cap_p = -1;
    
        ch_state = 0;
        m_state = 16;
        s_state = 32;
    ch_button_x = 48;
    ch_button_y = 64;
     m_button_x = 80;
     s_button_x = 96;
    
    memset(ch_state, 0, n_btn);
    memset( m_state, 0, n_btn);
    memset( s_state, 0, n_btn);
    ch_state[0] = 1;
    
    x = 8;
    y = 8;
    
    n_btn   = 15;
    bt_hght = 25;
    ch_wdth = 61;
    ms_wdth = 28;
    ck_wh   = 16;
    ck_x    = 8;
    ck_y    = 174;
    
    i = 0;
    while (i < n_btn) (
      ch_button_x[i] = x;
      ch_button_y[i] = y;
     
      m_button_x[i] = ch_button_x[i] + ch_wdth + 4;
      s_button_x[i] =  m_button_x[i] + ms_wdth + 4;
    
      y += 31;
     
      i += 1;
      (i % 5 == 0) ? (
        x += 138;
        y = 8;
      );
    );
    
    function draw_btn(txt, x, y, w, h, toggle) (
      toggle == 0 ? (
        gfx_set(.17, .17, .17);
      ) : (
        gfx_set(.1, .4, .3);
      );
      gfx_rect(x, y, w, h, 5, 1);
    
      gfx_set(.95, .95, .95);
      gfx_x = x + 11;
      gfx_y = y + 8;
      gfx_printf(txt);
    );
    
    function draw_ckbx(txt, x, y, w, h, toggle) (
      toggle == 0 ? (
        gfx_set(.17, .17, .17);
      ) : (
        gfx_set(.1, .4, .3);
      );
      gfx_rect(x, y, w, h, 5, 1);
    
      gfx_set(.95, .95, .95);
      gfx_x = x + w + 6;
      gfx_y = y + 4;
      gfx_printf(txt);
    );
    
    @gfx 415 200
    gfx_setfont(0);
    
    i = 0;
    while (i < n_btn) (
      #label = sprintf(#, "Ch %d", i + 1);
      draw_btn(#label, ch_button_x[i], ch_button_y[i], ch_wdth, bt_hght, ch_state[i]);
      draw_btn("M",     m_button_x[i], ch_button_y[i], ms_wdth, bt_hght,  m_state[i]);
      draw_btn("S",     s_button_x[i], ch_button_y[i], ms_wdth, bt_hght,  s_state[i]);
      i += 1;
    );
    
    draw_ckbx("Note off on channel change", ck_x, ck_y, ck_wh, ck_wh, note_off);
    
    ((mouse_cap == 1 || mouse_cap == 5) && (mouse_cap_p == 0)) ? (
      ((mouse_y >= ck_y) && (mouse_y <= ck_y + ck_wh) &&
       (mouse_x >= ck_x) && (mouse_x <= ck_x + 235)) ? (note_off = !note_off);
    
      i = 0;
      while (i < n_btn) (
        ((mouse_y >= ch_button_y[i]) && (mouse_y <= ch_button_y[i] + bt_hght)) ? (
          ((mouse_x >= ch_button_x[i]) &&
           (mouse_x <= ch_button_x[i] + ch_wdth)
          ) ? (
            (mouse_cap == 1) ? (
              memset(ch_state, 0, n_btn);
              (note_off == 1) ? (note_off_send = 1);
            );
            ch_state[i] = !ch_state[i];
          );
        
          ((mouse_x >= m_button_x[i]) &&
           (mouse_x <= m_button_x[i] + ms_wdth)
          ) ? (
            (mouse_cap == 5) ? (memset(m_state, 0, n_btn));
            m_state[i] = !m_state[i];
          );
    
          ((mouse_x >= s_button_x[i]) &&
           (mouse_x <= s_button_x[i] + ms_wdth)
          ) ? (
            (mouse_cap == 5) ? (memset(s_state, 0, n_btn));
            s_state[i] = !s_state[i];
          );
        );
    
        i += 1;
      );
    );
    
    mouse_cap_p = mouse_cap;
    
    solo = 0;
    i = 0;
    while (i < n_btn) (
      s_state[i] == 1 ? (
        solo = 1;
        i = 666;
      );
      i += 1;
    );
    
    @block
    (note_off_send == 1) ? (
      note_off_send = 0;
      i = 0;
      while (i < n_btn) ( 
        midisend(0, $xB0 + i, 123, 0);
        i += 1;
      )
    );
    
    while (midirecv(pos, msg1, msg2, vel)) (
      i = 0;
      while (i < n_btn) (
        pass = 0;
    
        (solo == 0) ? (ch_state[i] == 1) ? (pass = 1);
        
        (m_state[i] == 1) ? (pass = 0);
        (s_state[i] == 1) ? (pass = 1);
        
        (pass == 1) ? (midisend(pos, (msg1 & $xF0) + i, msg2, vel));
    
        i += 1;
      );
    )
    
     
    • Winner Winner x 1
    • Love it! Love it! x 1
    • List
  20. justsomerandomdude

    justsomerandomdude Platinum Record

    Joined:
    Aug 24, 2020
    Messages:
    441
    Likes Received:
    292
    It works dude..:metal:
     
Loading...
Similar Threads - Looking plugin Similar Forum Date
I'm looking for a MacOS AU filter plugin Software Dec 9, 2023
Looking for the free plugin Roth-Air [solved] Software Jul 29, 2023
Looking for a Retrospective Midi Capture/Record Plugin. Software May 6, 2023
Looking for Level matching Plugin Software Jan 16, 2023
Smartelectronix website dead... Looking for the plugins Software Nov 19, 2022
Loading...