name,\ times,\ [] (LavHandle sim, int count) {\ LavHandle h;\ std::vector<LavHandle> v;\ for(int i=0; i < count; i++) {\ ERRCHECK(createLine);\ v.push_back(h);\ }\ return v;\ }\ ) std::tuple<std::string, int, std::function<std::vector<LavHandle>(LavHandle, int)>> to_profile[] = { ENTRY("sine", 1000, Lav_createSineNode(sim, &h)), ENTRY("crossfading delay line", 1000, Lav_createCrossfadingDelayNode(sim, 0.1, 1, &h)), ENTRY("biquad", 1000, Lav_createBiquadNode(sim, 1, &h)), ENTRY("amplitude panner", 1000, Lav_createAmplitudePannerNode(sim, &h)), ENTRY("HRTF panner", 30, Lav_createHrtfNode(sim, "default", &h)), ENTRY("hard limiter", 1000, Lav_createHardLimiterNode(sim, 2, &h)), ENTRY("channel splitter", 1000, Lav_createChannelSplitterNode(sim, 10, &h)), ENTRY("channel merger", 1000, Lav_createChannelMergerNode(sim, 10, &h)), ENTRY("noise", 100, Lav_createNoiseNode(sim, &h)), ENTRY("square", 500, Lav_createSquareNode(sim, &h)), ENTRY("ringmod", 1000, Lav_createRingmodNode(sim, &h)), ENTRY("16x16 FDN", 1, Lav_createFeedbackDelayNetworkNode(sim, 1.0f, 16, &h)), ENTRY("32x32 FDN", 1, Lav_createFeedbackDelayNetworkNode(sim, 1.0f, 32, &h)), ENTRY("late reflections generator", 1, Lav_createLateReflectionsNode(sim, &h)), }; int to_profile_size=sizeof(to_profile)/sizeof(to_profile[0]);
LavError createCrossfadingDelay(LavHandle s, LavHandle& h) { ERRCHECK(Lav_createCrossfadingDelayNode(s, 0.1, 1, &h)); ERRCHECK(Lav_nodeSetFloatProperty(h, Lav_DELAY_DELAY, 0.1)); return Lav_ERROR_NONE; }