Comments (12)
It's much better but it's still not buttery smooth. I've added a second audio file to the dropbox folder. It's made from the same ardour session as the previous one, the only thing difference is the build of sfizz (and I fixed the volume opcode).
from sfizz.
@davidhealey VPO = Virtual Playing Orcehstra: http://virtualplaying.com/virtual-playing-orchestra/
from sfizz.
There's a potential solution in 864fe57
I'm not super satisfied from a technical point of view. Just to give context, at least one issue was that when the CC event arrived at a small delay in the block, there would be hardly any smoothing made for the value---the envelopes are linearly interpolated otherwise. After thinking about it and looking around it seems that people mostly add a fixed ramp time, sforzando included. It also seems to me that this ramp should be a function of the block size, otherwise you will still have somewhat sharp edges in the envelopes and thus strange modulation in the signal. I've settled for block size / 2
in the commit, which is a bit high but is smoothest for my ears.
Another approach would be to lowpass-filter the envelope, which is also implied by the _smoothcc
opcodes (https://sfzformat.com/modulations/smoothccN). A generic way to tackle this could then be to do coarse ramping by default and count on people to use the smoothing possibilities to clean it up if necessary.
In light of this, I think I should overhaul a bit my envelopes 🙂 Anyway for now tell me if it feels better like that!
from sfizz.
+1 for this. And make it smooth (Aria's implementation is horribly unusable, or I'm doing it wrong).
from sfizz.
I made an attempt at implementing this in pull request #26.
from sfizz.
@davidhealey as Michael implemented (and as I would have done it) there is a linear smoothing of the crossfade within a block. There are a couple different options (e.g. multiplicative or with a completely custom shape). If that's not rendering well enough for you we can try to tweak it 🙂
from sfizz.
Excellent, I'll test it out
from sfizz.
I'm finding the crossfade choppy. I've tried both .flac and .wav files and found it made no difference. I did select to use a fixed buffer in Carla though and that improved it a little bit. It could of course be me doing something wrong with my SFZ opcodes.
I've uploaded the SFZ along with an mp3 of the output I get - https://www.dropbox.com/sh/nsbaq65jnkd98zq/AABTm8tK5zoPz7MOXJO8x6BTa?dl=0
from sfizz.
@davidhealey In the SFZ file there is no space in lines 22-34 inclusively- between:
xfout_hiccc1=127volume=-3
It should be:
xfout_hicc1=127 volume=-3
Sfizz reports: [INFO]: [sfizz] Unknown opcodes: 127volume
However I can confirm that in Ardour the crossfade is choppy.
from sfizz.
I tested this a bit more thoroughly today. Crossfading in VPO works, but has a little bit of crackle:
https://www.dropbox.com/s/sclkx4h2kqiabjk/vpo_sfizz_crossfade_session_2020-01-19_22.40.mp3
After that I tried switching it to a multiplicative envelop, but with that, the audio cut out entirely after a few moments... @paulfd, any ideas?
from sfizz.
@davidhealey In the SFZ file there is no space in lines 22-34 inclusively- between:
Oh good catch! I assume it was still working with xfout but was ignoring the volume opcode.
I tested this a bit more thoroughly today. Crossfading in VPO works, but has a little bit of crackle:
What's VPO?
from sfizz.
The latest is working well for me. It turns out that some of the crackle I experienced was because I had the gain too high and it clipped the signal at the top of the crescendo.
@davidhealey How well does the latest update work for you?
from sfizz.
Related Issues (20)
- The wrong number of frames is returned by the st_audiofile function
- Crash if a midi note is recieved while the SFZ file is reloaded HOT 19
- ⚠️ Feature requests | non-bug issues in Discussions ⚠️
- bug when off_by is involved and the two midi notes are played exactly at the same time HOT 4
- Transpose vs tune HOT 4
- RAM usage : Samples are continuously loaded in RAM while playing HOT 2
- Error building Arch AUR makepkg HOT 3
- Note-On performance issue
- Support `lotimer` / `hitimer` HOT 4
- Tests fails with the latest Abseil HOT 7
- Invalid output when the number of output is above 1 and using effects
- Compatibility with catch2 >= 3
- Issues when Note on/off at the maximum delay HOT 2
- Ardour freezes for a long time after stopping playback
- All voices are always active after sustain is released HOT 2
- overriding default_path for each sfz mapping HOT 2
- Segfault during use of `sfizz_render` HOT 2
- ampeg_delay make the note play indefinitely HOT 1
- error: no member named 'StrCat' in namespace 'absl' HOT 11
- [question] Is LV2 support present? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sfizz.