% Render a triangle strike with default parameters and print diagnostics. % Run with: numbl run triangle_demo.m P = triangle_defaults(); tic; [y, basis, dinfo] = triangle_render(P); elapsed = toc; fprintf('modes kept : %d (%d in-plane, %d out-of-plane)\n', basis.n, dinfo.modesIn, dinfo.modesOut); fprintf('mode freq : '); fprintf('%.0f ', basis.f); fprintf('Hz\n'); fprintf('strikes : %d (mean v %.2f m/s, mean contact %.0f us, peak force %.0f N)\n', ... dinfo.strikeCount, dinfo.meanV, dinfo.meanTauUs, dinfo.peakForceN); fprintf('peak press.: %.4f Pa (%.1f dB SPL) at %.0f cm\n', ... dinfo.peakPa, dinfo.peakSplDb, dinfo.listenerDistM * 100); fprintf('length : %.2f s @ %d Hz\n', length(y) / P.sample_rate, P.sample_rate); fprintf('render time: %.2f s\n', elapsed); if dinfo.listenerInside fprintf('WARNING : listener is at or inside the rod\n'); end