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
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
FX ordering on the fly
12 posts
• Page 1 of 2 • 1, 2
FX ordering on the fly
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!
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 (95.57 KiB) Viewed 20349 times
-
- 2018-12-21 00_12_22-FlowStone - [FX-order.fsm].png (31.13 KiB) Viewed 20349 times
-
- FX-order.fsm
- (5.31 KiB) Downloaded 1107 times
Last edited by Nubeat7 on Fri Dec 21, 2018 12:14 am, edited 14 times in total.
-
Nubeat7 - Posts: 1347
- Joined: Sat Apr 14, 2012 9:59 am
- Location: Vienna
Re: FX ordering on the fly
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
-
Nubeat7 - Posts: 1347
- Joined: Sat Apr 14, 2012 9:59 am
- Location: Vienna
Re: FX ordering on the fly
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!
- Jay
- Posts: 276
- Joined: Tue Jul 13, 2010 5:42 pm
Re: FX ordering on the fly
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:
and the ordering will still work..
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..
-
Nubeat7 - Posts: 1347
- Joined: Sat Apr 14, 2012 9:59 am
- Location: Vienna
Re: FX ordering on the fly
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
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.
-
Nubeat7 - Posts: 1347
- Joined: Sat Apr 14, 2012 9:59 am
- Location: Vienna
Re: FX ordering on the fly
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 1358 times
-
MyCo - Posts: 718
- Joined: Tue Jul 13, 2010 12:33 pm
- Location: Germany
Re: FX ordering on the fly
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.
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.
-
Nubeat7 - Posts: 1347
- Joined: Sat Apr 14, 2012 9:59 am
- Location: Vienna
Re: FX ordering on the fly
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]);
-
Nubeat7 - Posts: 1347
- Joined: Sat Apr 14, 2012 9:59 am
- Location: Vienna
Re: FX ordering on the fly
You think way to complicated
- Attachments
-
- FX order2 (Nubeat7, MyCo).fsm
- (6.58 KiB) Downloaded 1372 times
-
MyCo - Posts: 718
- Joined: Tue Jul 13, 2010 12:33 pm
- Location: Germany
Re: FX ordering on the fly
MyCo wrote:You think way to complicated
but the surprise to see how easy it is is always great
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.
-
Nubeat7 - Posts: 1347
- Joined: Sat Apr 14, 2012 9:59 am
- Location: Vienna
12 posts
• Page 1 of 2 • 1, 2
Who is online
Users browsing this forum: Google [Bot] and 46 guests