Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

FX ordering on the fly

Post any examples or modules that you want to share here

FX ordering on the fly

Postby Nubeat7 » Sun Sep 29, 2013 1:55 am

for shure you all know how to reordering your signalflow using busses, it is pretty handy but the audiodropouts and the work to avoid audiocrackles because of recompiling is really annoying, so i thought it would be great to havea solution in DSPcode/asm to reorder your fx on the fly without any audio dropouts...

for the ruby selector i used some technics from trogs cell array - thanks for that!
Attachments
2018-12-21 00_13_03-FlowStone - [FX-order.fsm_].png
2018-12-21 00_13_03-FlowStone - [FX-order.fsm_].png (95.57 KiB) Viewed 19268 times
2018-12-21 00_12_22-FlowStone - [FX-order.fsm].png
2018-12-21 00_12_22-FlowStone - [FX-order.fsm].png (31.13 KiB) Viewed 19268 times
FX-order.fsm
(5.31 KiB) Downloaded 1051 times
Last edited by Nubeat7 on Fri Dec 21, 2018 12:14 am, edited 14 times in total.
User avatar
Nubeat7
 
Posts: 1347
Joined: Sat Apr 14, 2012 9:59 am
Location: Vienna

Re: FX ordering on the fly

Postby Nubeat7 » Sun Sep 29, 2013 11:35 am

did a few changes, ruby code was a bit buggy, i added a preset part so the fx order can be save in presets now, and you can custumize the graphic easier and better now.. updated file in the first post
User avatar
Nubeat7
 
Posts: 1347
Joined: Sat Apr 14, 2012 9:59 am
Location: Vienna

Re: FX ordering on the fly

Postby Jay » Sun Sep 29, 2013 12:11 pm

very cool m8! i was using the one Trogg created a while back and it was good except it crashed when changing efx order whilst sound was running! this is great though! cheers! :D
Jay
 
Posts: 276
Joined: Tue Jul 13, 2010 5:42 pm

Re: FX ordering on the fly

Postby Nubeat7 » Sun Sep 29, 2013 2:06 pm

thanks jay,
yes, trogs fx chainer was my inspiration for this one
you also could use just the streampart of this one in trogs fx chainer, just delete all the audio parts in trogs chainer and place this one instead, so you can use trogs grafx part which is really neat with the transparent moving selection window while dragging...

but the benefit of this one is that you can place teh slots in different ways using the rows, or if you want to place each area individual you could change the createArrays methode to something like this:
Code: Select all
def createArrays
  cell_w = 5
  cell_h = 2
  @areas = []
  @areas[0] = [0,0,cell_w,cell_h]
  @areas[1] = [2,5,cell_w,cell_h]
  @areas[2] = [4,10,cell_w,cell_h]
  @areas[3] = [6,15,cell_w,cell_h]
end


and the ordering will still work..
User avatar
Nubeat7
 
Posts: 1347
Joined: Sat Apr 14, 2012 9:59 am
Location: Vienna

Re: FX ordering on the fly

Postby Nubeat7 » Mon Sep 30, 2013 12:37 am

finally, i added a ghost slot which appears when dragging a slot from one position to another.

i also implemented a second option how the position changing is done, you can choose between "swap positions" and "insert at position" in the swapOrder methode

a question to all DSP code and asm gurus, can this code be optimised in any way? i was watching the asm code for it but couldn`t really optimize anything inside?

the updated file is in first post
Last edited by Nubeat7 on Mon Oct 14, 2013 12:23 pm, edited 1 time in total.
User avatar
Nubeat7
 
Posts: 1347
Joined: Sat Apr 14, 2012 9:59 am
Location: Vienna

Re: FX ordering on the fly

Postby MyCo » Mon Sep 30, 2013 2:46 am

Here is my quick&dirty approach. I haven't tested this! It shortens the code and eliminates the selector. Maybe an assembler version could use an array in this version. It would require some testing if the memory access for a 5 item array is faster than doing 20 cmpps+andps plus 15 orps.
Attachments
FX order (Nubeat7, MyCo).fsm
(4.52 KiB) Downloaded 1301 times
User avatar
MyCo
 
Posts: 718
Joined: Tue Jul 13, 2010 12:33 pm
Location: Germany

Re: FX ordering on the fly

Postby Nubeat7 » Mon Sep 30, 2013 10:05 am

thanks a lot myco, asm from the dsp code is already about the half of the previous version!

but you went in the same trap as me when i was doing the first version, all if statements have to be in braces to work right.
Last edited by Nubeat7 on Tue Feb 04, 2014 8:10 pm, edited 1 time in total.
User avatar
Nubeat7
 
Posts: 1347
Joined: Sat Apr 14, 2012 9:59 am
Location: Vienna

Re: FX ordering on the fly

Postby Nubeat7 » Mon Sep 30, 2013 11:25 am

MyCo wrote:..Maybe an assembler version could use an array in this version. It would require some testing if the memory access for a 5 item array is faster than doing 20 cmpps+andps plus 15 orps.


did you mean something like this?

just couldnt get it work :(
Code: Select all
float ArrFrom[5];

ArrFrom[0] = fromAudioIn;
ArrFrom[1] = fromFX0;
ArrFrom[2] = fromFX1;
ArrFrom[3] = fromFX2;
ArrFrom[4] = fromFX3;

toFX0   = ((asgAudioIN == 0) & ArrFrom[0])
      | (ArrFrom[asgFX0To]);
toFX1   = ((asgAudioIN == 1) & ArrFrom[0])
      | (ArrFrom[asgFX1To]);
toFX2   = ((asgAudioIN == 2) & ArrFrom[0])
      | (ArrFrom[asgFX2To]);
toFX3   = ((asgAudioIN == 3) & ArrFrom[0])
      | (ArrFrom[asgFX3To]);

toAudioOut = ((asgFX0To == 4) & ArrFrom[0])
         | ((asgFX1To == 4) & ArrFrom[1])
         | ((asgFX2To == 4) & ArrFrom[2])
         | ((asgFX3To == 4) & ArrFrom[3]);
User avatar
Nubeat7
 
Posts: 1347
Joined: Sat Apr 14, 2012 9:59 am
Location: Vienna

Re: FX ordering on the fly

Postby MyCo » Mon Sep 30, 2013 12:14 pm

You think way to complicated :mrgreen:
Attachments
FX order2 (Nubeat7, MyCo).fsm
(6.58 KiB) Downloaded 1314 times
User avatar
MyCo
 
Posts: 718
Joined: Tue Jul 13, 2010 12:33 pm
Location: Germany

Re: FX ordering on the fly

Postby Nubeat7 » Mon Sep 30, 2013 12:58 pm

MyCo wrote:You think way to complicated :mrgreen:


but the surprise to see how easy it is is always great :lol:

thanks, for the help, i did a fast performance test in one of my projects, and the array version needs 0.3% more cpu than the if /or version .. watch the first post for optimized versions of both..
Last edited by Nubeat7 on Tue Feb 04, 2014 8:15 pm, edited 1 time in total.
User avatar
Nubeat7
 
Posts: 1347
Joined: Sat Apr 14, 2012 9:59 am
Location: Vienna

Next

Return to User Examples

Who is online

Users browsing this forum: No registered users and 18 guests