return false;
}
+static FLAC__bool generate_noisy_sine(void)
+{
+ FILE *f;
+ FLAC__byte wav[] = {
+ 'R', 'I', 'F', 'F', 76, 0, 0, 0,
+ 'W', 'A', 'V', 'E', 'f', 'm', 't', ' ',
+ 16, 0, 0, 0, 1, 0, 1, 0,
+ 0x44,0xAC, 0, 0,0x88,0x58,0x01, 0,
+ 2, 0, 16, 0, 'd', 'a', 't', 'a',
+ 0xa8, 0xba, 0x6, 0
+ };
+ int32_t randstate = 0x1243456;
+ double sample, last_val = 0.0;
+ int k;
+
+ if(0 == (f = fopen("noisy-sine.wav", "wb")))
+ return false;
+ if(fwrite(wav, 1, sizeof (wav), f) < sizeof (wav))
+ goto foo;
+
+ for (k = 0 ; k < 5 * 44100 ; k++) {
+ /* Obvioulsy not a crypto quality RNG. */
+ randstate = 11117 * randstate + 211231;
+ randstate = 11117 * randstate + 211231;
+ randstate = 11117 * randstate + 211231;
+
+ sample = randstate / (0x7fffffff * 1.000001);
+ sample = 0.2 * sample - 0.9 * last_val;
+
+ last_val = sample;
+
+ sample += sin (2.0 * k * M_PI * 1.0 / 32.0);
+ sample *= 0.4;
+
+ write_little_endian_int16(f, lrintf(sample * 32700.0));
+ };
+
+ fclose(f);
+
+ return true;
+foo:
+ fclose(f);
+ return false;
+}
+
static FLAC__bool generate_wackywav64s(void)
{
FILE *f;
if(!generate_wackywavs()) return 1;
if(!generate_wackywav64s()) return 1;
if(!generate_wackyrf64s()) return 1;
+ if(!generate_noisy_sine()) return 1;
for(channels = 1; channels <= 8; channels *= 2) {
unsigned bits_per_sample;
for(bits_per_sample = 8; bits_per_sample <= 24; bits_per_sample += 4) {
--- /dev/null
+#!/bin/sh
+
+# FLAC - Free Lossless Audio Codec
+# Copyright (C) 2012 Xiph.Org Foundation
+#
+# This file is part the FLAC project. FLAC is comprised of several
+# components distributed under difference licenses. The codec libraries
+# are distributed under Xiph.Org's BSD-like license (see the file
+# COPYING.Xiph in this distribution). All other programs, libraries, and
+# plugins are distributed under the GPL (see COPYING.GPL). The documentation
+# is distributed under the Gnu FDL (see COPYING.FDL). Each file in the
+# FLAC distribution contains at the top the terms under which it may be
+# distributed.
+#
+# Since this particular file is relevant to all components of FLAC,
+# it may be distributed under the Xiph.Org license, which is the least
+# restrictive of those mentioned above. See the file COPYING.Xiph in this
+# distribution.
+
+LD_LIBRARY_PATH=`pwd`/../src/libFLAC/.libs:$LD_LIBRARY_PATH
+LD_LIBRARY_PATH=`pwd`/../src/share/grabbag/.libs:$LD_LIBRARY_PATH
+LD_LIBRARY_PATH=`pwd`/../src/share/getopt/.libs:$LD_LIBRARY_PATH
+LD_LIBRARY_PATH=`pwd`/../src/share/replaygain_analysis/.libs:$LD_LIBRARY_PATH
+LD_LIBRARY_PATH=`pwd`/../src/share/replaygain_synthesis/.libs:$LD_LIBRARY_PATH
+LD_LIBRARY_PATH=`pwd`/../src/share/utf8/.libs:$LD_LIBRARY_PATH
+LD_LIBRARY_PATH=`pwd`/../obj/$BUILD/lib:$LD_LIBRARY_PATH
+export LD_LIBRARY_PATH
+PATH=`pwd`/../src/flac:$PATH
+
+echo "Using FLAC binary :" `which flac`
+
+date=`date "+%Y%m%dT%H%M%S"`
+fname="comp${date}.flac"
+
+last_size=0
+last_k=0
+for k in `seq 1 8` ; do
+ flac -${k} --silent noisy-sine.wav -o ${fname}
+ size=`stat --format="%s" ${fname}`
+ echo "Compression level ${k}, file size ${size} bytes."
+ if test $k -gt 1 ; then
+ if test $last_size -lt $size ; then
+ echo "Error : Compression $last_k size $last_size >= compression $k size $size."
+ exit 1
+ fi
+ fi
+ last_size=$size
+ last_k=$k
+ rm -f $fname
+ done