Hi Everyone,
Here's a brief addendum to Part 2 of the "Sfront
Implementation FAQ" I posted yesterday -- I was going to
just hold this off to send to Eric privately when I makes
his calls for corrigendum, but putting these issues in a
public archive seems to have real benefits for other
decoder implementers, and besides, I promise this is the
last corrigendum post from me for a while :-).
-------------------------------------------------------------------------
John Lazzaro -- Research Specialist -- CS Division -- EECS -- UC Berkeley
lazzaro [at] cs [dot] berkeley [dot] edu www.cs.berkeley.edu/~lazzaro
-------------------------------------------------------------------------
Addendum to Part II of
Sfront Implementation Issues FAQ
John Lazzaro
University of California at Berkeley
CS Division
5.5.2
Issue: Reserved part of namespace.
The reservation of _sym_x, where x is a symbol number, could be
made much more useful by reserving _sym_x where x is any string.
5.5.2
Issue: Fractional sample loops in class sample
A bitstream issue: the class sample for storing sample data can
only handle integral loop points. Since popular file formats
support fractional loop points, simple conversion of these
sample files may very well induce clicks and artifacts into the
loops, especially shorter loops. I realize this one is probably
too hard to consider, since it breaks bit-stream compatibility ...
5.6
Issue: An Object 3+ format.
A popular sort of MP4-SA file will contain all of Object 3 +
midi_file, or alternatively, Object 4 - sbf. If its possible
to give this sort of file its own Object type, this would be
a good thing.
5.8.5.2.1
Issue: 32000 Hz default
Commodity PC hardware has horrible sample-rate conversion,
and sending 32000 Hz files is a recipe for clicky sound. Is
it possible to consider making the default sample rate
the CD rate of 44100 Hz?
5.8.5.2.5
Issue: Wording of interp = 1 specification
Is it possible to consider changing the wording "If
interp parameter is 1 [...] it shall be a higher
quality method than linear interpolation" to be
something like "it shall be a higher quality method
than linear interpolation, or failing that, linear
interpolation". This would let decoders that only
implement linear interpolation be in formal compliance
with the spec.
5.8.5.3.3.
Issue: Non-deterministic wavetable initialization and concat.
The order of initializing global wavetables is declared
to be non-deterministic. This makes the use of the concat
wavetable generator impossible in the global block. It
seems that either enforcing an ordering, or formally
forbidding the concat operator, can solve this issue.
5.8.6.6.7
Issue: Dynamic instruments inheritance of MIDI standard names.
The spec does say if a dynamic instrument inherits the
value of preset and channel from its MIDI-created parent, and
whether MIDIctrl, MIDIbend, and MIDItouch see the same data
the parent does (or any valid data).
5.8.6.6.7
Issue: Units of dur and delay fields in instr statement.
Be explicit in noting that dur and delay fields are in
units of beats, not seconds
5.8.6.6.10
Issue: Input_bus a legal outbus() statement target?
Is input_bus a legal outbus() statement target?
5.8.7.6.2
Issue: Opcodes w/o return statements.
Explicitly state the return width of user-defined opcodes
without return statements, as well as the returned value
if a return statement is not executed ("undefined" and
"zero" are both valid ways to specify it, but it would be
nice to have one chosen as standard).
5.9.14.1
Issue: Reverb opcode R-T pairs
It would be nice to make explicit if a implementing reverb()
as a generic reverb algorithm followed by filtering is valid,
and if so the qualitative filtering type expected (lowpass
or bandpass). Send me email for more detail, or check the
saol-dev archives where I discuss this issue in more detail.
5.9.14.2-3
Issue: Chorus/flange: Percent [0.0,1.0] or [0,100]
Is the percent excursion field in chorus and flange a number
between 0.0 and 1.0, or between 0 and 100?
5.15.2
Issue: PhaseGroup a Standard Name?
The PhaseGroup array is mentioned in this section -- is this
an (apparently missing from section 5.8.6.8) standard name?
Annex 5.C
Issue: Tablemap is opcode decl missing
The spec explicitly allows tablemap declarations in user-defined
opcodes, but the grammer explicitly doesn't.
This archive was generated by hypermail 2b29 : Mon Jan 28 2002 - 12:03:55 EST