diff --git a/advanced/channel_mimicking.html b/advanced/channel_mimicking.html index 98449f13..94e98502 100644 --- a/advanced/channel_mimicking.html +++ b/advanced/channel_mimicking.html @@ -181,25 +181,25 @@

struct { - halp::audio_input_bus<"Main Input"> audio; + halp::audio_input_bus<"Main Input"> audio; } inputs; struct { - halp::audio_output_bus<"Output"> audio; + halp::audio_output_bus<"Output"> audio; } outputs;

Here, everything is fine: the host can send 1, 2, ... channels to the input, and Avendish will make sure that the audio output matches that.

-

Now imagine that we add another bus:

+

Now imagine that we add another bus:

struct ins
 {
-  halp::audio_input_bus<"Main Input"> audio;
-  halp::audio_input_bus<"Sidechain"> sidechain;
+  halp::audio_input_bus<"Main Input"> audio;
+  halp::audio_input_bus<"Sidechain"> sidechain;
 } inputs;
 
 struct outs
 {
-  halp::audio_output_bus<"Output"> audio;
+  halp::audio_output_bus<"Output"> audio;
 } outputs;
 

Even if for us, humans, it is reasonable to assume that there will be as many output channels, as there are in the main input, it is not something that a computer can assume that easily.

@@ -208,16 +208,16 @@

static constexpr auto mimick_channel = &ins::audio;

Taking the member function pointer to an input will allow Avendish to match the channel count at run-time.

-

An helper is provided: for instance, in the above case, it would give:

+

An helper is provided: for instance, in the above case, it would give:

struct ins
 {
-  halp::audio_input_bus<"Main Input"> audio;
-  halp::audio_input_bus<"Sidechain"> sidechain;
+  halp::audio_input_bus<"Main Input"> audio;
+  halp::audio_input_bus<"Sidechain"> sidechain;
 } inputs;
 
 struct outs
 {
-  halp::mimic_audio_bus<"Output", &ins::audio> audio;
+  halp::mimic_audio_bus<"Output", &ins::audio> audio;
 } outputs;
 
diff --git a/advanced/cmake.html b/advanced/cmake.html index 17abc789..e56a9eef 100644 --- a/advanced/cmake.html +++ b/advanced/cmake.html @@ -174,7 +174,7 @@

Avendish documentation

Configuration with CMake

-

So far, the "building" side of things has been left under the carpet.

+

So far, the "building" side of things has been left under the carpet.

It is actually not very complicated.

We have:

diff --git a/advanced/presets.html b/advanced/presets.html index fe0d01d5..afe9e517 100644 --- a/advanced/presets.html +++ b/advanced/presets.html @@ -182,8 +182,8 @@

Presets

// Our inputs
 struct
 {
-  halp::hslider_f32<"Preamp"> preamp;
-  halp::hslider_f32<"Volume"> volume;
+  halp::hslider_f32<"Preamp"> preamp;
+  halp::hslider_f32<"Volume"> volume;
 } inputs;
 
 // We define the type of our programs, like in the other cases
@@ -197,8 +197,8 @@ 

Presets

// Note: it's an array instead of a function because // it's apparently hard to deduce N in array<..., N>, unlike in C arrays. static constexpr const program programs[]{ - {.name{"Low gain"}, .parameters{.preamp = {0.3}, .volume = {0.6}}}, - {.name{"Hi gain"}, .parameters{.preamp = {1.0}, .volume = {1.0}}}, + {.name{"Low gain"}, .parameters{.preamp = {0.3}, .volume = {0.6}}}, + {.name{"Hi gain"}, .parameters{.preamp = {1.0}, .volume = {1.0}}}, };
diff --git a/advanced/sample_accurate.example.html b/advanced/sample_accurate.example.html index 55f2d343..050047e7 100644 --- a/advanced/sample_accurate.example.html +++ b/advanced/sample_accurate.example.html @@ -187,24 +187,24 @@

ossia score) are able to give precise timestamps to control values.

If an algorithm supports this level of precision, it can be expressed by extending value ports in the following way:

struct { 
-  static consteval auto name() { return "Control"; } 
+  static consteval auto name() { return "Control"; } 
 
   /* a value_map type */ values;
   float value; 
 } control;
 
    -
  • value will always carry the "running" value at the beginning of the tick, like before.
  • -
  • values is a type which should be API-wise more-or-less compatible with std::map<int, type_of_value>.
  • +
  • value will always carry the "running" value at the beginning of the tick, like before.
  • +
  • values is a type which should be API-wise more-or-less compatible with std::map<int, type_of_value>.

For every message received in the tick, values will be set (which means that they can also be empty if no message at all was received on that port).

There are actually three options for implementing values.