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
MultiSampler
Re: MultiSampler
I haven't tried it in detail yet but I do like the interface so I would say this is the right direction KG. Very nice!
Cheers
Spogg
Cheers
Spogg
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: MultiSampler
OK guys, another update.
Now all looping modes are implemented. All combinations of attack sustain and release phase are available and working OK-ish. Problem I have is, CPU goes way up and will go even more as I add additional channels (current version still works with 1 channel only, evne though GUI suggests 8). I'm unsure how to solve the issue.
Now all looping modes are implemented. All combinations of attack sustain and release phase are available and working OK-ish. Problem I have is, CPU goes way up and will go even more as I add additional channels (current version still works with 1 channel only, evne though GUI suggests 8). I'm unsure how to solve the issue.
- Attachments
-
- gsampv0.2.0.fsm
- (48.3 KiB) Downloaded 1171 times
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
Re: MultiSampler
Have you profiled the code to see where most of the CPU is spent? You might consider hopping for control signals, for instance you could convert pitch to period at hop(32). Not sure how much that helps though.
-
martinvicanek - Posts: 1328
- Joined: Sat Jun 22, 2013 8:28 pm
Re: MultiSampler
martinvicanek wrote:Have you profiled the code to see where most of the CPU is spent? You might consider hopping for control signals, for instance you could convert pitch to period at hop(32). Not sure how much that helps though.
The CPU seems to be rather evenly spaced across the board. Each voice has 3 clocks. Each clock has two int parts and frac parts (one pair for counting time and one for counting readout position). A code version of the clock would look something like this:
- Code: Select all
temp=f+step;
f=temp%1;
i=i+(temp-f);
Also, each sample the value of (i+f) is compared with section-end-points to determine whether attack/sustain/release phase is ended.
I have two possible ideas how to make it more efficient. One would be to switch to double floats, which would circumvent int<->float conversions for rounding purposes until the very end. The downside is, that the value of the clock needs to be checked each sample for section-transitions.
Second option is to hop the dumping of the fractional. Something like:
- Code: Select all
f=f+step;
hop(32){
temp=f%1;
i=i+(f-temp);
f=temp;
}
This would however not remove the issue - the integer and fractional part still need to be calculated each sample for readouts.
Another big CPU eater is the waveArrayRead prim - there are 3 per voice.
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
Re: MultiSampler
Short not, KG, you know why. You're not forgotten.
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
Who is online
Users browsing this forum: No registered users and 26 guests