Skip to content

Commit

Permalink
Pull request #108: [update] add tables for clarification
Browse files Browse the repository at this point in the history
Merge in VSTSDK/vst3_dev_portal from clarify-buffer-availability-depending-on-activated-bus to main

* commit '247d742bea0d8f5efcdcb51f9fcc9e71f2d100fb':
  [update] add tables for clarification
  • Loading branch information
ygrabit committed Jan 29, 2024
2 parents 61572b8 + 247d742 commit e101927
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/pages/FAQ/Hosting.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ No, this is not the typical use case. However, it could be used by plug-ins chan

---

## Q: In what ways (if any) can units change, in terms of the number or names of units, the allocation of parameter buses to units, etc.?
## Q: In what ways (if any) can units change, in terms of the number or names of units, the allocation of parameter busses to units, etc.?

Plug-in Unit names can change when restartComponent is called with *kParamTitlesChanged*.
When restartComponent is called with *kReloadComponent* then the whole structure should be regenerated.
Expand Down
16 changes: 15 additions & 1 deletion src/pages/FAQ/Processing.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,21 @@ Q: Must the host deliver valid initialized Audio buffers if the associated bus i

In a correctly implemented host, if an input or output bus exists in the host, and it has become disconnected from the plug-in, the plug-in will receive disconnection information (bus activation).

Additionally, a plug-in with a disconnected input bus will continue to receive default silence buffers, just as a plug-in with a disconnected output bus will continue to receive default nirvana buffers. When these deactivated busses are the last busses (for input or output), the host could not provide associated [AudioBusBuffers](https://steinbergmedia.github.io/vst3_doc/vstinterfaces/structSteinberg_1_1Vst_1_1AudioBusBuffers.html), in this case the plug-in should check [numInputs](https://steinbergmedia.github.io/vst3_doc/vstinterfaces/structSteinberg_1_1Vst_1_1ProcessData.html#a852a74fc4e461ef086bac048313d2de9) and [numOutputs](https://steinbergmedia.github.io/vst3_doc/vstinterfaces/structSteinberg_1_1Vst_1_1ProcessData.html#a1338255f88bad5cf4fb714c71f92b61a) and doesn't process these busses.
Additionally, a plug-in with a disconnected input bus will continue to receive default silence buffers, just as a plug-in with a disconnected output bus will continue to receive default nirvana buffers if there are activated busses placed after them. When these deactivated busses are the last busses (for input or output), the host do not need to provide associated [AudioBusBuffers](https://steinbergmedia.github.io/vst3_doc/vstinterfaces/structSteinberg_1_1Vst_1_1AudioBusBuffers.html), in this case the plug-in should check [numInputs](https://steinbergmedia.github.io/vst3_doc/vstinterfaces/structSteinberg_1_1Vst_1_1ProcessData.html#a852a74fc4e461ef086bac048313d2de9) and [numOutputs](https://steinbergmedia.github.io/vst3_doc/vstinterfaces/structSteinberg_1_1Vst_1_1ProcessData.html#a1338255f88bad5cf4fb714c71f92b61a) and doesn't process these busses.

The following tables show availability of buffer depending on which busses are activated:

|Input/Output Bus| Index 0 (kMain) | Index 1 (kAux) | Index 2 (kAux) |
| :-| :- | :- |:- |
| Bus activated| Yes | No | Yes |
| Buffer| available | available | available |
| | | | |

|Input/Output Bus| Index 0 (kMain) | Index 1 (kAux) | Index 2 (kAux) |
| :-| :- | :- |:- |
| Bus activated| Yes | Yes | No |
| Buffer| available | available | optional |
| | | | |

---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ sequenceDiagram
P-->>-H: return
H->>+P: setBusArrangements (req. Ins, req. Outs)
P-->>P: Adapt its buses according to the requested ones if possible
P-->>P: Adapt its busses according to the requested ones if possible
P-->>P: return kResultFalse if not match.
P-->>-H: return kResultFalse
Expand Down

0 comments on commit e101927

Please sign in to comment.