README.md : Updates.

This commit is contained in:
kevin 2024-05-08 10:24:48 -04:00
parent 986b842bc6
commit f8a907f360

View File

@ -581,7 +581,8 @@ Syntax:
------- -------
The 'in' list has the follow syntax: The 'in' list has the follow syntax:
`in: { in-stmt* }` `in: { in-stmt* }`
`in-stmt` -> `in-var-id`":" `src_expr` `in-stmt` -> `in_expr`":" `src_expr`
`in-expr` -> `in-proc-id`".`in-var-id`
`src-expr` -> `src-proc-id`"."`src-var-id` `src-expr` -> `src-proc-id`"."`src-var-id`
`in-var-id` -> `var-id` `in-var-id` -> `var-id`
`src-proc-id` -> `var-id` `src-proc-id` -> `var-id`
@ -595,6 +596,20 @@ The 'in' list has the follow syntax:
Semantics: Semantics:
---------- ----------
### `in-proc-id`
- The `in-proc-id` is only used when the in-stmt
is iterating over the in-proc sfx-id.
This precludes iterating over the in-var, as discussed below.
In this case the only useful option is to set the 'var-id` to `_`
as the in-proc is taken as the the proc which the
in-stmt belongs to.
The iterating source and/or var sfx-id are then set
to the current proc sfx-id + source `pri-int`.
### `in-var-id` ### `in-var-id`
- The `label` part of the `in-var-id` must match to a - The `label` part of the `in-var-id` must match to a
@ -911,19 +926,31 @@ Add proc instance field: `log:{ var_label_0:0, var_label_1:0 } `
Next: Next:
- Complete subnets: - Complete subnets:
+ subnet var desc's should be the same as non+subnet vars but also include the 'proxy' field. + Subnets should have presets written in terms of the subnet vars rather than the network vars
or the value application needs to follow the internal variable src_var back to the proxy var.
+ write a paragraph in the flow_doc.md about overall approach taken to subnet implementation.
Subnets are implemented in the following phases:
- During program initialization the subnet cfg files is scanned and the
proxy vars for each subnet are used to create `class_desc_t` records for each subnet.
- When the subnet is instantiated the proxy vars are instantiated first.
- Then the internal network is instantiated.
+ DONE: subnet var desc's should be the same as non+subnet vars but also include the 'proxy' field.
In particular they should get default values. In particular they should get default values.
If a var desc is part of a subnet then it must have a proxy. If a var desc is part of a subnet then it must have a proxy.
The output variables of var desc's must have the 'out' attribute The output variables of var desc's must have the 'out' attribute
+ subnets should have presets written in terms of the subnet vars rather than the network vars
+ improve the subnet creating code by using consistent naming + use proxy or wrap but not both + DONE: improve the subnet creating code by using consistent naming + use proxy or wrap but not both
+ improve code comments on subnet creation + DONE: improve code comments on subnet creation
+ write a paragraph in the flow_doc.md about overall approach taken to subnet implementation.
- Implement feedback
- Audio inputs should be able to be initialized with a channel count and srate without actually connecting an input.
This will allow feedback connections to be attached to them at a later stage of the network
instantiation.
- Implement subnet preset application.
- Implement the var attributes and attribute checking. - Implement the var attributes and attribute checking.
- Implement dynamic loading of procs. - Implement dynamic loading of procs.
- Implement a debug mode to aid in building networks and subnets (or is logging good enough) - Implement a debug mode to aid in building networks and subnets (or is logging good enough)
@ -936,22 +963,10 @@ Next:
One way around this is to instantiate them with an initial set of inputs but then One way around this is to instantiate them with an initial set of inputs but then
allow those inputs to be replaced by a later connection. allow those inputs to be replaced by a later connection.
- DONE: Fix up the coding language - change the use of `instance_t` to `proc_t` and `inst` to `proc`, change use of `ctx` in cwFlowProc
BUGS: BUGS:
- The counter modulo mode is not working as expected. - The counter modulo mode is not working as expected.
- There is no way for a proc in a poly context to use it's poly channel number to
select a mult variable. For example in an osc in a poly has no way to select
the frequency of the osc by conneting to a non-poly proc - like a list.
Consider:
1. Use a difference 'in' statememt (e.g. 'poly-in' but the
same syntax used for connecting 'mult' variables.)
2. Include the proc name in the 'in' var to indicate a poly index is being iterated
e.g. `lfo: { class:sine_tone, in:{ osc_.dc:list.value_ } }`
Host Environments: Host Environments:
@ -967,6 +982,13 @@ Host Environments:
- DONE: Turn on variable 'broadcast'. Why was it turned off? ... maybe multiple updates? - DONE: Turn on variable 'broadcast'. Why was it turned off? ... maybe multiple updates?
``` - DONE: There is no way for a proc in a poly context to use it's poly channel number to
select a mult variable. For example in an osc in a poly has no way to select
the frequency of the osc by conneting to a non-poly proc - like a list.
Consider:
1. Use a difference 'in' statememt (e.g. 'poly-in' but the
same syntax used for connecting 'mult' variables.)
2. Include the proc name in the 'in' var to indicate a poly index is being iterated
e.g. `lfo: { class:sine_tone, in:{ osc_.dc:list.value_ } }`
``` - DONE: Fix up the coding language - change the use of `instance_t` to `proc_t` and `inst` to `proc`, change use of `ctx` in cwFlowProc