flac-support finished; flac piano available



   Hi!

I've now completed flac support for BEAST. My version can be found in

repo:   http://space.twc.de/public/git/stwbeast.git
branch: flac-support

I rebased the flac-support branch so that it now starts at the 0.8.0 release
of beast.

The imis piano as bsewave file can be found here (you need to apply the patches
from the branch to use it):

flac encoded piano: http://space.twc.de/~stefan/big/imis-piano.bsewave
license for piano : http://space.twc.de/~stefan/big/LICENSE

To get the normalization right, I've changed the allowed values for the volume
xinfo. BEAST used to ensure that every volume xinfo is in the range [0..1].
However the original imis samples are recorded at low volumes, so now a valid
volume can also be > 1. I added "lossless" normalization to bsewavetool.
Before this change, the normalization would change the datahandle data itself,
which expands the flac files. Now if you use bsewavetool normalize with
--volume-xinfo it will just set the volume xinfo to achieve normalization
without touching the data.

I also added a wave xinfo master-volume-db, which allows changing the volume of
the complete wave without touching the sample data.

To get a useful value for the master volume for imis-piano.bsewave, I used two
classical midi files, set all note on events to maximum velocity, and ensured
that no clipping occurred.

The attack/release times can now be modified using the adsr-attack-time and
adsr-release-time xinfos. The piano wouldn't sound too good with the default
values of the adsr stereo replay network.

Flac files will not be expanded to raw data when stored by beast or
bsewavetool, so the data remains compressed; the code is inspired by the ogg
code, which already has this feature.

As suggested during previous review:
 - the flac_error_callback function is now implemented correctly
 - the read() method was renamed to read_samples()

The flac-support branch currently has one unrelated commit,

47439ede7dbaabedb3230f97b63522bb45a64967 BSE: compile without -D_BIRNET_SOURCE_EXTENSIONS

which is required to build SpectMorph against BEAST. It just ensures that
compilation of files that include bse headers will succeed even without the
-D_BIRNET_SOURCE_EXTENSIONS define.

   Cu... Stefan
-- 
Stefan Westerfeld, http://space.twc.de/~stefan


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]