|mp4-sa-> the mp4-sa book-> appendices->cor2 items|
In subclause 220.127.116.11.5.2 (Determination of instrument output width and bus width), replace the second sentence of the first paragraph with:
the width of each bus is either provided by a send statement (subclause 18.104.22.168) or is determined by the sum of the output widths (subclause 22.214.171.124.8) of the instruments routed to that bus in a single route statement (subclause 126.96.36.199).
In subclause 188.8.131.52.5.2 (Determination of instrument output width and bus width), remove the beginning of the third sentence:
Only for the purpose of calculating bus widths
In subclause 184.108.40.206.5.2 (Determination of instrument output width and bus width), add the following note at the end of the first paragraph, before EXAMPLE 1:
NOTE: if the output width of an instrument depends on outchannels, and the bus width of the bus where that instrument is routed is not specified by means of other send and route statements, the orchestra may be indeterministic. Programmers should pay special attention in checking the deterministic behavior of the orchestra or make use of determined bus widths (subclause 220.127.116.11).
In subclause 18.104.22.168.5.2 (Determination of instrument output width and bus width), in EXAMPLE 1 replace the second route with:
route(bus2, i2, i1);
In subclause 22.214.171.124.5.2 (Determination of instrument output width and bus width) remove instr i3 from the pseudo-code. Replace the paragraph following the pseudo-code with:
In this orchestra, the global sequencing rules (subclause 126.96.36.199) specify that instrument i1 precedes instrument i2, and instrument i1 and i2 precede instrument i4. Instrument i1 has two channels, so bus bus1 has two channels. Instrument i2 has two channels, since it gets input from bus1. The bus bus2 has four channels, two each from i2 and i1. The instrument i4 has four channels, since it gets input from bus2.
In subclause 188.8.131.52.2 (Signal variables), replace the second part of the paragraph following <array length> specification with:
If the latter, the array length shall be the same as the number of input channels or output channels of the orchestra, respectively. It is illegal to use the token inchannels if the number of input channels to the orchestra is 0.
In subclause 184.108.40.206 (Send statement), change the definition of <send statement> to be:
In subclause 220.127.116.11 (Send statement), in the paragraph beginning with "Any bus may be routed to more than one effect instrument" replace the first sentence with:
Any bus, except for the special bus output_bus, may be sent to more than one effect instrument and/or instantiations; in this case, when the simple identifier is not used, it is illegal to refer to a bus with more than one length.
In subclause 18.104.22.168.1 (Syntactic form), replace the line following the <tablemap declaration> with:
<array length> and <namelist> as defined in subclause 22.214.171.124.2, except that in the instrument scope the tokens inchannels and outchannels refer to the input channels and output channels of the instrument, respectively.
In subclause 126.96.36.199.5 (outchan), replace standard name description with:
The standard name outchan, in each scope, shall contain the number of channels ofoutput provided by the instrument instantiation with which that scope is associated, in the sense described in subclause 188.8.131.52.4.
In subclause 184.108.40.206.1 (Syntactic form), replace the last sentence of the first paragraph to:
If the array width is the special token outchannels, then the array width shall be the same as the number of output channels to the associated instrument instantiation (in the sense described in subclause 220.127.116.11.4).
In subclause 18.104.22.168.1, (Syntactic form) after the <opcode var declaration> lines, replace the first two lines as follows:
<namelist> and <instr variable declaration> as defined in subclause 22.214.171.124.2 and subclause 126.96.36.199.1. In the opcode scope, the tokens inchannels and outchannels refer to the input channels and output channels of the associated instrument,respectively (in the sense described in subclause 188.8.131.52.4).
In subclause 184.108.40.206.2 (Assignment), add at the end of the third paragraph (If the lvalue denotes an entire array...):
In the case that lvalue depends on the ordering of computation of the right-hand-side expression (e.g. if an entire array is multiplied with one of its elements), lvalue is undefined.
In subclause 220.127.116.11.11 (Extend), in the third paragraph replace the following text:
or the rate of the guarding expression containing the statement, or the rate of the opcode containing the statement, whichever is fastest.
with the text
or the control rate if the rate of the guarding expression containing the statement, or the rate of the opcode containing the statement, is faster than the rate of the expression parameter.
(MP4-SA Book Author Note: The purpose of this text is to make a-rate extend statements illegal.)
In subclause 18.104.22.168.11 (Extend), before the NOTE add:
The extend statement shall not be executed in an instrument instance that is created asthe result of a send statement referencing the special bus output_bus.
In subclause 22.214.171.124.1 (Syntactic form), at the end of the second paragraph add the following paragraph:
A variable shall not have a rate faster than the rate of the opcode. Standard names faster than the rate of the opcode are not defined in the opcode. The imports tag shall not be used for local k-rate signals when there is no global variable of the same name.
In subclause 126.96.36.199.3 (Shared variables and statements slower than the rate of the opcode),at the end of the third paragraph add:
Statements that contain expressions of type specialop (subclause 5.9.2) are executed both at the k-rate and a-rate, and those expressions return values as specified in subclause 188.8.131.52.6 and 5.9.2.
In subclause 5.9.2 (Specialop type), add at the end of the third paragraph:
Calls to specialop type opcodes are not allowed in iopcodes, kopcodes and opcodes. If a call to a specialop type opcode is present in an aopcode, the specialop opcode is executed both at k-rate and a-rate according to rules specified in subclause 184.108.40.206.3.
In subclause 220.127.116.11 (rms), replace the sentence:
It is a run-time error if length is provided and is negative.
It is a run-time error if length is provided and is not strictly positive.
In subclause 18.104.22.168 (downsamp), in the fourth paragraph replace:
In subclause 5.C.3 (Syntactic grammar for SAOL in yacc), in senddef replace
Return to: Appendix Cover Page
|mp4-sa-> the mp4-sa book-> appendices->cor2 items|