Comments (7)
Sorry, it's just me that I don't know, you'll need to wait a reply from other developers.
from sfizz-ui.
I think you could join both SFZFormat and SFZTools Discord chats if you haven't already, so you can ask, especially the former for sfz.
Other than that, did you take a look also to the sfzformat.com tutorials?
If we miss some information or something is not explained clearly, feel free to ask also in the
discussions section (though you might be the first :P ) or, if you are think that something is not right, open an issue.
from sfizz-ui.
EDIT: I'm not sure what I'm doing wrong, but it appears that I need some kind of styling or markdown in order to get my examples to display properly in this post.
Yes, you can use markdown in GitHub comments. GitHub has it's own extension (but I avoid as much as I can if not for really useful features).
The example from the SFZFormat tutorial documentation is ignoring my carriage returns and running the opcodes all together in the example. Sorry about that.
I'm not sure what you mean with "ignoring my carriage returns", SFZFormat pages are read only, there is no editor for sfz (yet?).
I modified your comment, so you can look at the format. I used "ini" as language for multiline code blocks because GH have no sfz syntax highlighting parser for markdown.
from sfizz-ui.
@Audiojunkie I think you more or less got it. In your ADSR example, you have
ampeg_attack=0.002
ampeg_attack_oncc100=0.5
For a given region (or groups/master/etc) this sets up the following formula for the attack:
- If CC100 is set to 0, the attack time is 0.002 seconds.
- If CC100 is set to 127, the attack time is 0.502 seconds.
- If CC100 is set to 63-64, the attack time will be around 0.252 seconds.
You indeed use similar opcodes to link CCs to other parameters.
from sfizz-ui.
Hello! Do you mean which cc are supported? (https://sfz.tools/sfizz/development/status/opcodes/?q=cc&s=y)
from sfizz-ui.
Maybe I am misunderstanding something fundamental about SFZ and the way the plugin works. It seems to me that you are showing me the available opcodes that Sfizz parses.
I’ll try to explain again what I am wanting, and trust that you will correct me if my understanding is wrong.
For most audio plugins, there are certain functionalities built into the plugin that allow for midi to control the plugin. For example,
Attack
Decay
Sustain
Release
Cut off (low pass filter)
Resonance
Pitch wheel
Modulation wheel
Volume
Pan position
Portamento on/off
Portamento Time
A normal plugin can automatically read midi CC commands. When you move the physical pitch wheel, the pitch of the sample rises or falls with the pitch wheel’s movements.
I would like to set up midi automation tracks to control the above parameters in all of my SFZ files.
I am wanting to know which Midi CC commands Sfizz is automatically able to read for any normal Sfizz instrument, and what numbers correspond to each CC.
For example, MIDI CC 1 provides the vibrato in a patch. When I try to set up a Midi CC automation track in my DAW to control the vibrato for my sequenced midi parts, Sfizz doesn’t seem to read the midi CC data.
I’m guessing that either Sfizz uses a different CC number or that it doesn’t support the functionality. This is why I am wanting to know what Midi CC commands are available that Sfizz can read, and what they are.
I hope this makes more sense. 🙂
Again, if I seem to be not understanding something about the way all of this works, please don’t hesitate to correct me. 🙂
Thanks again!
from sfizz-ui.
I'm beginning to think that my understanding of how Sfizz (and all SFZ parsers in general) work is wrong. After heavy re-reading of all material I can get my hands on, it appears that Sfizz as a parser is perfectly capable to handle it all, but it must be defined properly in the SFZ file in order for it to show up. According to the SFZFormat documentation:
The SFZ file’s role is a simple, two-part operation:
- Explain how to filter or sort the incoming MIDI data and determine which sample(s), if any, should sound in response.
- Instruct the Sampler how to modulate, or adapt, those samples, such as make them quieter or apply a filter.
It appears that in order for a particular midi CC to be able to be controlled or automated, the midi control number must first be assigned and defined in order for it to work.
Using an example from the SFZFormat tutorial documentation, I can see this:
<control>
label_cc100=Attack time
label_cc101=Hold time
label_cc102=Decay time
label_cc103=Sustain level
label_cc104=Release time
set_cc102=63
set_cc103=51
set_cc104=31
<global>
// AHDSR
ampeg_attack=0.002
ampeg_sustain=0
ampeg_release=0.002
ampeg_attack_oncc100=0.5
ampeg_hold_oncc101=1
ampeg_decay_oncc102=5
ampeg_sustain_oncc103=100
ampeg_release_oncc104=2
It appears that the midi controls for the AHDSR are assigned a midi cc number and the initial settings are defined or designated when the SFZ parser first parses the SFZ file. SFZ players should then be able to have the assigned midi CC available for track automation or hardware knob control.
This is all in theory, because I haven't tested it yet, but that's what it is looking like needs to be done in order to make the MIDI CC available for the instance.
So, for example:
label_ccN
creates a label for the MIDI CC.Used under the ‹control› header. Some DAWs will display those labels as parameter names, and Sforzando will also use them in the Control tab if no GUI is defined.
set_ccN
Sets a default initial value for MIDI CC number N, when the instrument is initially loaded.Used under the ‹control› header.
ampeg_attack
ampeg_sustain
ampeg_release
Each of these sets the initial value for the attack, sustain, and release
ampeg_attack_oncc100=0.5
ampeg_hold_oncc101=1
ampeg_decay_oncc102=5
ampeg_sustain_oncc103=100
ampeg_release_oncc104=2
I "think" this is the measurement value (in units of movement) of the EG time, but I'm not sure on this one. I'm not exactly sue what this does in relation to everything else. It seems that the ampeg_attack, ampeg_sustain, ampeg_release do this, so I'm not sure what these are for.
Over all, I feel like I'm getting closer to understanding this. It's too not many people understand it. It would be very helpful to be able to ask questions of someone who knows and understands this. :)
EDIT: I'm not sure what I'm doing wrong, but it appears that I need some kind of styling or markdown in order to get my examples to display properly in this post. The example from the SFZFormat tutorial documentation is ignoring my carriage returns and running the opcodes all together in the example. Sorry about that.
from sfizz-ui.
Related Issues (20)
- standalone flatpak distribution
- ⚠️ Feature requests / questions go in Discussions ⚠️
- Ability to change keyswitch from the UI HOT 2
- vst3sdk out-of-date HOT 2
- Build leads to shared library and standalone HOT 3
- Ensure static or dynamically linking
- Wrong ELF class: ELFCLASS32 HOT 3
- Notes hanging in Reaper (in Sfizz 1.2.3) HOT 4
- Our AU wrapper doesn't build with latest VST3SDK HOT 1
- The Fedora RPMs on the OBS need to be compiled for Fedora 38 and for the latest version. HOT 4
- Image doesn't load properly
- Scrolling issue
- Not able to reload or load preset HOT 1
- Sfizz Crashes with puredata when changing dsp status in external patch, assert faied !voice->isInSisterRing
- Missing dependencies on .deb in ubuntu repository HOT 9
- LV2: Load/Open SFZ file/folder issues HOT 1
- Unable to send project from Windows user to Linux user HOT 7
- android support HOT 1
- clap plugin format support
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-ui.