sfront

John Lazzaro and John Wawrzynek

 

Not Rated

 

Version 0.68 - 10/28/00

  • C code generated for MIDI control now compiles faster.
  • Many contributed bug fixes.

Version 0.67 - 9/9/00

  • Another bugfix for Windows sfront.dsp file.
  • C code generated for SAOL and SASL wavetables compiles much quicker and runs with improved cache behavior. C code created for the "sample" wavetable generator no longer includes an WAV or AIFF parser, and moderately-sized constant tables for all generators are computed by sfront and placed into the sa.c file as constant float arrays. On some machine/compiler configurations, the sfront -hexdata flag offers additional compilation speedup, by encoding arrays as hexadecimal strings.
  • C code generated for wide oparrays compiles much quicker and runs with improved cache behavior.
  • Many sa.c memory leaks involving wavetables have been fixed, reducing the working memory space of table-intensive programs.
  • Bugfixes involving the dur standard name, empty opcode return() statements, name space collisions, oparrays, and wavetables.

Version 0.64 - 8/2/00

  • Optimizations for accessing global variables (via import/export) and opcode parameters, to eliminate unneeded copying. Programs that use these language features extensively should see significiant speedups.
  • Linux rpm and deb binary packages now available for download.
  • Bugfixes for fft/ifft shift-and-add mode (a startup artifact was eliminated, and an boxcar windowed fft/ifft pair has unity gain).
  • Bug fixes for ANSI constant compatibility and name-space clashes, and a null -ain/-aout driver added was.

Version 0.63 - 7/10/00

  • Several cross-platform bugfixes

Version 0.62 - 7/7/00

  • Standard name cpuload is now supported in -playback and -timesync mode, for all drivers. Cpuload is a ksig, that takes on a value between 0 (machine is not loaded at all) and 1 (any further loading of machine risks loss of real-time playback). Cpuload is computed with no temporal filtering or windowing, and shows the performance on the last kcycle.
  • The -ain/-aout linux and -cin linmidi drivers are enhanced. The drivers are more robust against lockup and MIDI data loss. When run as root, the driver uses POSIX real-time scheduling to reduce audio dropouts (while we have carefully tested these root features, bugs in programs run as root can cause file-system damage: use at your own risk). Sa.c start-up screen now suggests the best sfront flags to use for a given patch. FreeBSD and linux sources are now merged, with many of these features available for both operating systems.
  • Bugfixes in: memory allocation, dsound driver, random number generators, polymorphic table opcode rate semantics, -cin fstr file streaming, wavetable generator sizing, and array parameters in user defined opcodes.

Version 0.61 - 5/28/00

  • Now includes Slib, a SAOL library that provides support utilities to simplify low-level SAOL programming. See this new chapter of the MP4-SA book for details.
  • New linux/linbuzz example, that shows the MIDI features of Slib in a real-time instrument.
  • New optimization: faster execution of expressions like tableread(t, int(x)), by eliminating interpolation code.
  • Bugfixes for the dynamic instr command, the outbus command, the buzz opcode and wavetable generator, specialop expressions, opcode table initializations that use opcode parameters, send statements that target the output_bus, and user-defined opcode rate warnings.

Version 0.60 - 5/7/00

  • Major additions to help SAOL programmers write and debug programs including a rate-semantic printf statement, a new chapter in the online MP4-SA book on debugging, and full integration of the C pre-processor to prepare ASCII SAOL and SASL files for parsing.
  • Enhancements were made to MIDI real-time control, external audio input processing, and the BIFS standard name interface.
  • Many bugs were fixed, including MIDI File handling bugs, graceful detection of recursive op-code calls, and fixes to the core opcodes and generators.

Version 0.58 - 4/17/00

  • Enhanced control driver API, which supports the use of sfront in end-user applications like streaming decoders, patch editors, sequencers and symbolic debuggers.
  • Many bugs were fixed, mostly in wavetable generators and the linmidi control driver for real-time MIDI input under Linux.
  • Random number opcodes now produce unique data streams on each decoder invocation, with a new sfront flag to force deterministic data streams for testing.

Version 0.57 - 3/8/00

  • Streaming data part of the Structured Audio binary format can now be decoded and encoded by sfront
  • Default sfront help message has improved
  • Skip and size fields now work correctly in sample wavetable generator
  • An instr can now correctly create copies of itself using the instr command
  • Bugs in the AIFF audio input driver fixed

Version 0.55 - 2/12/00

  • Base frequency and loop points can be read by the sample wavetable generator, for both AIFF and WAV files, and this looping information is correctly captured in .mp4 files
  • Syntax restrictions on SAOL templates removed ("<" and ">" in maplist expressions have been removed, many bugs have been fixed, and a new template chapter in the MP4-SA book is now online)
  • Enhanced the control and audio driver APIs to support command-line arguments
  • MIDIctrl standard name now works as an lval
  • Control driver interface bugs fixed
 

Download

This program is freeware and has no trial limitations. It is destributed under the terms of the GNU Public License. The download contains source code for the Windows platform. Other platforms can be downloaded from the Product Download Page.

Product Download Page
Full Source & Examples: sfront.zip 3.9 MB
Minimal Source & Examples: sfrontlite.zip 577.2 KB