1.0.0 ----- code: * debugging * check all examples again * osc post filter (and one pole init, slew rate, etc.) val from input? set state instead? * audio rate optional pulse width/slope inputs? * should rather use backward Euler in bw_onepole? * one pole process const input? (return also if const out) * check const restrict size_t etc. * empty functions etc. to keep consistency and forward compatibility? * float in [-1,1] for velocity, pitch bend, mod wheel * should clip slope in triangle? * common smoothing policy (as control rate as possible?) - smoothing control? * svf bandpass out polarity too confusing (inverted in mm2)? * better common config.h (less stuff maybe, or more stuff - decide) * pan process with no out: should just reset coeffs? * get_y_z1, common strategy? * sqrt(0) and corner cases, common strategy? * bw_satur gain compensation to divide by actual gain (derivative) rather than gain parameter? * cite papers, thank authors * add initial state (x0) to reset state of lp1, ap1, mm1, hs1, ls1, others? all? * bw_comb: should also modulate feedback? * bw_comb: integer target delay values? * bw_svf/lp1 automatically limited (max) prewarp frequency to avoid instability? * prewarp control in all derived filtering modules * bw_math: review types * src inside distortions? w/ control from outside? * bw_fuzz gain compensation? * remove union value = {.f = v};? (std c++ latest) - C++ compound literals... * make gain of distortions homogeneous? * max_delay -> set sample rate? see reverb * revise typedef style (see https://stackoverflow.com/questions/54752861/using-an-anonymous-struct-vs-a-named-struct-with-typedef) * x_y vs xy var names * don't use reserved identifiers (https://devblogs.microsoft.com/oldnewthing/20230109-00/?p=107685) * update state ctrl -> process ctrl? * mem req -> return value of set sample rate? * peak gain + Q ??? * bwpp -> bwxx * sr_reduce reset_coeffs? update_coeffs? process_multi? * fix definitions leading to X ** -> const X ** error https://isocpp.org/wiki/faq/const-correctness#constptrptr-conversion, fix fx_balance, fx_pan, synth_poly * drywet -> dry_wet, ringmod -> ring_mod, etc? * allow nullptr in C++ wrappers where process_multi arg can be NULL * better src filter * bw_env_gen process_multi gate const? * c++ get coeffs/state? or public? src nIn/OutSamples case (array vs single value), delay read/write, process1? process single? * bw_buf invert src dest order? * check unititialized warnings * voice alloc mode -> voice alloc priority * clearly specify that state is tied to a particular set of coeffs (1:N) * modulation vs process (multi) no update (post 1.0.0)??? build system: * single header generation (vs modules in bwp... to think about) post 1.0.0 ---------- code: * blep etc in a module? * optimize triangle generation for constant pulse width * compute bit depth reduction only when input changes? (state, option?) * avoid "force" in coeffs update by using inline functions? * csch for bw_peak bandwidth -> Q, inv sqrt ls2 hs2 * separate tests and examples? * define common midi CCs for examples * MEM_REQ_ROUGH() macro? * web examples: need to export memset? * check unused param warning visual studio * float -> double, etc. ? * bw_buf_copy (to be used in bw_slew_lim)? * src post filt? * web examples construction/destruction * web effect mono->stereo and stereo->mono inputs? or display "input needs to be n channels"? * fix vst3 mapped values (visible in Ableton Live) and short names * polish examples (ranges, etc.) * dump data structures (see note queue) and indicate error precisely * process (multi) no update * examples cpu usage build system: * make makefiles handle paths with spaces etc * can run su on windows? (system-wide install) * make autodependencies (.d?) - https://make.mad-scientist.net/papers/advanced-auto-dependency-generation/ * make from... directories * recursive make? * make hashdeps (https://github.com/olipratt/hashdeps)? * VC, XCode, etc project files? * single header(s) * cross compile (rpi etc.) * better use of xcodegen (see xcode warnings) and/or consider tuist (https://tuist.io/), bazel (https://bazel.build/), pants (https://www.pantsbuild.org/), buck (https://buck2.build/), please (https://please.build/index.html) for mobile apps * homogenize android and ios common code (e.g., same index) -- code: * sample rate-constant coeffs? (pan case) * sr-dependent vs cr-dependent coeffs? see synth poly example