|mp4-sa-> the mp4-sa book-> appendices->cor2 items|
In subclause 18.104.22.168.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 22.214.171.124) or is determined by the sum of the output widths (subclause 126.96.36.199.8) of the instruments routed to that bus in a single route statement (subclause 188.8.131.52).
In subclause 184.108.40.206.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 220.127.116.11.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 18.104.22.168).
In subclause 22.214.171.124.5.2 (Determination of instrument output width and bus width), in EXAMPLE 1 replace the second route with:
route(bus2, i2, i1);
In subclause 126.96.36.199.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 188.8.131.52) 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 184.108.40.206.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 220.127.116.11 (Send statement), change the definition of <send statement> to be:
In subclause 18.104.22.168 (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 22.214.171.124.1 (Syntactic form), replace the line following the <tablemap declaration> with:
<array length> and <namelist> as defined in subclause 126.96.36.199.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 188.8.131.52.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 184.108.40.206.4.
In subclause 220.127.116.11.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 18.104.22.168.4).
In subclause 22.214.171.124.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 126.96.36.199.2 and subclause 188.8.131.52.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 184.108.40.206.4).
In subclause 220.127.116.11.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 18.104.22.168.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 22.214.171.124.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 126.96.36.199.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 188.8.131.52.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 184.108.40.206.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 220.127.116.11.3.
In subclause 18.104.22.168 (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 22.214.171.124 (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|