Jean Pierre Cimalando
3df9c3692f
Add * on auto pointers everywhere
2020-10-20 21:59:57 +02:00
Jean Pierre Cimalando
6b2ec66ffa
Ref-count the global thread pool
2020-10-19 16:57:45 +02:00
Jean Pierre Cimalando
fcfcd5b8cc
Protect the access of thread flags under semaphore
2020-10-18 23:41:00 +02:00
Jean Pierre Cimalando
04fabd46d0
Clean up some white space [ci skip]
2020-10-18 23:14:12 +02:00
Jean Pierre Cimalando
bbd2ddd3c5
Fix broken loop ranges
...
This fixes a regression introduced in commit 2fc6aab :
only the loop information from the audio file would be considered,
and never the one from the opcodes `loop_begin` and `loop_start`.
2020-10-18 19:05:57 +02:00
Jean Pierre Cimalando
a0e893964f
Update since to reflect upcoming the stable version
2020-10-15 21:50:58 +02:00
Jean Pierre Cimalando
80f0f4d90a
Fix a build error using older sndfile
2020-10-15 19:53:10 +02:00
Paul Ferrand
078fcf5118
Merge pull request #500 from paulfd/loading-mutex
...
Add a mutex on the loading jobs to protect them in the case of freewheeling
2020-10-15 18:44:24 +02:00
Paul Ferrand
bd4057e927
Use the future helper
2020-10-15 16:51:25 +01:00
Paul Ferrand
f4b6323050
Use std::mutex
2020-10-15 16:44:08 +01:00
Paul Ferrand
67af16f0e2
Move the lock guard
2020-10-15 15:58:08 +02:00
JP Cimalando
5d2225f4fa
Merge pull request #499 from jpcima/phase-normalized
...
Make all phase opcodes normalized
2020-10-15 15:42:32 +02:00
Paul Ferrand
a5647ab339
Add a mutex on the loading jobs to protect them in the case of freewheeling
2020-10-15 14:30:15 +01:00
Jean Pierre Cimalando
e258ad254f
Make all phase opcodes normalized
2020-10-15 13:14:17 +02:00
Paul Ferrand
f3776dcb35
Set the power follower depending on the voice stealing algorithm also on voice re-creation
2020-10-14 23:31:55 +02:00
Paul Ferrand
07f30af7f1
Replace stable_sort by sort
2020-10-14 23:21:10 +02:00
Jean Pierre Cimalando
1e8b36c14d
Do not install the static library, only shared with pkgconfig
2020-10-12 16:37:22 +02:00
Jean Pierre Cimalando
80ee358523
Fix the class-memaccess warning
2020-10-10 03:07:07 +02:00
Atsushi Eno
b76a1c50a3
accept samplesPerBlock up to 8192 (inclusive)
...
`ASSERT(samplesPerBlock < config::maxBlockSize)` (where `maxBlockSize` is 8192) means
we cannot set 8192. But we don't want 8191 as the actual maximum size.
2020-10-08 02:10:00 +09:00
JP Cimalando
62046e9e8e
Merge pull request #479 from jpcima/map-cc11
...
Map CC11 expression
2020-10-07 15:35:20 +02:00
JP Cimalando
ebc47e2c48
Merge pull request #480 from jpcima/file-data-copy-delete
...
Fix a compilation warning, about FileData not copyable
2020-10-07 14:45:05 +02:00
Jean Pierre Cimalando
3aeb96d3b2
Fix a compilation warning, about FileData not copyable
2020-10-07 14:41:16 +02:00
Jean Pierre Cimalando
162673939a
Map CC11 expression
2020-10-07 14:36:27 +02:00
Paul Ferrand
b9f58f1fe4
Merge pull request #477 from paulfd/overflow-voices
...
Overflow voices
2020-10-07 14:32:05 +02:00
Paul Ferrand
2fc6aab964
Merge pull request #425 from paulfd/simpler-file-loading
...
Changes to the background loading
2020-10-07 13:57:03 +02:00
Paul Ferrand
54d2b7342c
Clamp the cutoff values to avoid filters blowing up
2020-10-07 13:19:07 +02:00
Paul Ferrand
f9178d41aa
Remove the renderVoiceToOutput method and add a missing comment
2020-10-07 09:08:01 +02:00
Paul Ferrand
81fe043bb3
No need to ramp out killed voice data
2020-10-07 09:01:48 +02:00
Paul Ferrand
b78fa39d9e
Remove unused variable
2020-10-07 00:51:18 +02:00
Paul Ferrand
a0ad3b9921
Adapt the thread pool to the number of concurrent threads
2020-10-07 00:37:31 +02:00
Paul Ferrand
1e2ae6bce7
Unused variable and a wrong name
2020-10-07 00:37:31 +02:00
Paul Ferrand
d35ff4eb42
Add a volatile on the stop flag in the thread pool
2020-10-07 00:37:31 +02:00
Paul Ferrand
a505b9f037
gcc 4.9 idiosyncrasies
2020-10-07 00:37:31 +02:00
Paul Ferrand
9e0a1dff72
Add constructors to the QueuedFileData
...
Honestly a stupid queue would be fine at this point
2020-10-07 00:37:31 +02:00
Paul Ferrand
e693e82a39
The dispatcher was not spinning
2020-10-07 00:37:31 +02:00
Paul Ferrand
8ee4105b39
Deep change of the background loadingThe goal was to reduce the number of background threads in big sessions (multiple instances) and avoid loading the same file alot on repeated notes (e.g. drum tracks).- All instances use a common thread pool- Each instance has a dispatching job that starts background loader, and a garbage job that clears data that has been unused for some time- The "FilePromise" object has disappeared. Upon request, Voices get a very thin reference-counting handler to the file data. When the handler is released the reference count is decreased and a "last used" timestamp is added to the file.- The background file loading job checks i) if the file is already loaded, or ii) if some other thread is already loading it. If any case is validated, it exits assuming the background loading is already happening.- The garbage job has to be triggered regularly by e.g. the synth. In the RT thread the triggerGarbageCollection() method will check the list of previously loaded file Ids to see if any has not been used for a while. If so, the memory is set to be discarded by a background thread, otherwise it'll wait for the next ping.Only tested on Linux for now.
2020-10-07 00:37:31 +02:00
Paul Ferrand
8212eb4966
cpp11 static assert needs a message
2020-10-06 23:58:27 +02:00
Paul Ferrand
02a1615e2d
Use the back inserter idiom in all stealing methods
2020-10-06 23:31:45 +02:00
Paul Ferrand
480a7d4628
Use the soft engine polyphony limit
2020-10-06 22:47:39 +02:00
Paul Ferrand
8071cd0131
Add more voices than necessary
...
These will naturally be used for "dying" voices beyond the engine polyphony
2020-10-06 21:51:21 +02:00
JP Cimalando
4e13493ab4
Merge pull request #464 from jpcima/loop-xfade
...
Loop xfade
2020-10-06 21:31:43 +02:00
Jean Pierre Cimalando
809edfa76c
Make local copy of the loop characteristics
2020-10-06 21:06:03 +02:00
Paul Ferrand
24624abef1
Move the crossfade curve config to the config
2020-10-06 19:56:54 +02:00
Paul Ferrand
cab43b6641
Move the crossfade spans closer to their actual use
2020-10-06 19:54:09 +02:00
Paul Ferrand
8f3be5ca3c
Compute loop information at the start of the voice The check for actual looping is still done in the render method, to see if we do have enough samples
2020-10-06 19:52:24 +02:00
Jean Pierre Cimalando
9f698aea4c
Remove dead code
2020-10-06 11:54:02 +02:00
JP Cimalando
20a4675a73
Merge pull request #476 from jpcima/bypass-default-cc
...
Do not connect CC 7 and 10 if used in SFZ file
2020-10-06 11:09:31 +02:00
Jean Pierre Cimalando
049739f8f1
Use the correct coeffs for xfIn
2020-10-06 10:49:41 +02:00
Paul Ferrand
0e2eacaa65
Merge pull request #353 from paulfd/runtime-configs
...
Add runtime configs for loading in ram and voice stealing
2020-10-06 10:24:54 +02:00
Jean Pierre Cimalando
6fc1d470ff
Do not connect CC 7 and 10 if used in SFZ file
2020-10-06 04:45:22 +02:00