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 _______________________________________________ beast mailing list [email protected] https://mail.gnome.org/mailman/listinfo/beast
