KFR 7.0.0-rc #262
dancasarin
announced in
Announcements
Replies: 1 comment
-
|
Good work Dan. I’ll give it a try when I have some time. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
7.0.0-rc
Added
audiominimp3) encoders/decodersriscv64-linux-gnumacos-merge-binaries.cmakemerges two directories into one with universal binariesmacosforge/alacbugellipticfunction to design elliptic filters with ripple parameters (follows SciPy semantics)library_version_dsp,library_version_audio, etc.)samples_storeandsamples_loadconvert audio channels to/from stored formats (integer and floating-point, optional dithering)strided_channelclass for reading/writing strided data in KFR expressionsaudio_dataclass providing a unified interface for interleaved/planar audio dataaudio_dataaudio_data: Peak and RMSaudio_dataaudio_encoderandaudio_decoderbase classes for encoding/decoding audioaudio_decoderswitch_to_rf64_if_over_4gb)encode_audio_fileanddecode_audio_filefunctions for simplified file handlingarangefunction added (similar to NumPy’s)has_expression_traits,input_expression,output_expression, andinput_output_expressionconceptsexpr_elementconcept defines valid expression element typesf_class,i_class, andu_classconcepts (is_f_class,is_i_class,is_u_class)not_f_class,not_i_class, andnot_u_classconceptshas_data_sizeconcept checks forstd::dataandstd::sizedefinitionsfiltfiltfor forward-backward IIR filteringarrangement_speakersandarrangement_for_channelsfunctionsfopen_pathfor cross-platform UTF-8 file access; replacesfopen_portablememory_readerandmemory_writeradapters for user memory bufferstests/usage-configandtests/usage-manualf32rvv,i32rvv,u32rvv, etc.simd_compatconcept to verify SIMD element compatibilityscoped_flush_denormalsRAII class to enable flush-to-zero semantics on x86 and ARMtest_matrixfunction introduced (replacestesto::matrixfor Catch2 compatibility)Changed
KFR_ENABLE_MULTIARCHis forcibly turned off for non-x86KFR_USE_BOOST_MATHoption enables the use of standalone Boost.Math for elliptic filters (on by default)KFR_USE_BOOSToption switches to using Boost.Math from a full Boost installation. Enable if you already use Boostcxx_std_20CMake feature and inherited by dependent targetsadd_kfr_libraryrefactored to distinguish between private and public dependencies and definitionskfr_dsp_sse2,kfr_dsp_avx2; now:kfr_dsp,kfr_dsp_avx2)src/thirdpartyorinclude/kfr/thirdpartyaudio_readerandaudio_writeris now deprecatedreverseexpression is now writableaudio_sample_typenow represents bit depth; negative if floating-pointconvert_endiannessnow accepts references to data typessamplerate_converteris now default-, move-constructible, and move-assignableIO_SEEK_64andIO_TELL_64macros renamed toKFR_IO_SEEK_64andKFR_IO_TELL_64get_nth_typeoptimized for Clang and GCCconstexprvariables now markedinlineis_poweroftwo,next_poweroftwo,ilog2, etc., now use C++20<bit>headercometanamespace merged intokfr; Cometa is no longer distributed separately. Replacecometawithkfrin your sourcesCMT_toKFR_; replace all occurrences ofCMT_withKFR_TESTO_toKFR_; replace all occurrences ofTESTO_withKFR_cometa.hpprenamed tometa.hpp;kfr/cometa/*.hpprenamed tokfr/meta/*.hpp. Update your includes accordinglykfr/testo/*.hpprenamed tokfr/test/*.hppdoublefor maximum precision. Related changes:zpk<float_type>replaced withzpkbessel<float_type>andbutterworth<float_type>replaced withbesselandbutterworthbilinear<float_type>,lp2lp_zpk<float_type>,lp2bs_zpk<float_type>,lp2bp_zpk<float_type>,lp2hp_zpk<float_type>, andwarp_freq<float_type>replaced with non-template equivalentsiir_lowpass<float_type>,iir_highpass<float_type>,iir_bandpass<float_type>,iir_bandstop<float_type>replaced with non-template equivalentsiir_params<float_type>still accepts a template parameter to control precisionto_sosnow acceptsfloat_type(defaultdouble) to returniir_params<float_type>ellipticfunction follows the same rule and always produces double-precisionzpkintrinsicsnamespace renamed tointriir_design.hppmoved tosrc/iir_design.cppKFR_ACCEPT_EXPRESSIONSremoved; replaced withexpression_argumentandexpression_argumentsconceptsidentityremoved; replaced with C++std::type_identity_toutput_expressionconcept replacesenable_if_output_expressiontraitconvert_endianess→convert_endiannessCMT_NOEXCEPTremoved; usenoexceptkfr_size_tandkfr_int32_tremoved; usesize_tandint32_tSpeaker→speaker_type,SpeakerArrangement→speaker_arrangementfrom_lambdaparameter required to constructvecfrom a lambda generatorebu_r128now acceptsstd::spaninstead ofstd::vectorarraysizeandcarraysizeremoved; usestd::sizefrom C++17noexceptandconstexprCMT_ENABLE_IFmostly replaced with concepts andrequires;KFR_ENABLE_IFstill availableCMT_CLANG_EXTrenamed toKFR_VEC_EXTand now usable with GCCnumericconcept replacesis_numeric<T1>predicatealigned_size,aligned_force_free,aligned_release, andaligned_reallocateonly defined ifKFR_MANAGED_ALLOCATIONis on (default off)Fixed
macosforge/alacbugbittestanyThis discussion was created from the release KFR 7.0.0-rc.
Beta Was this translation helpful? Give feedback.
All reactions