Lines Matching refs:mixer

37     fluid_rvoice_mixer_t *mixer; /**< Owner of object */  member
118 static void delete_rvoice_mixer_threads(fluid_rvoice_mixer_t *mixer);
119 static int fluid_rvoice_mixer_set_threads(fluid_rvoice_mixer_t *mixer, int thread_count, int prio_l…
123 fluid_rvoice_mixer_process_fx(fluid_rvoice_mixer_t *mixer, int current_blockcount) in fluid_rvoice_mixer_process_fx() argument
125 const int fx_channels_per_unit = mixer->buffers.fx_buf_count / mixer->fx_units; in fluid_rvoice_mixer_process_fx()
134 fluid_real_t *in_rev = fluid_align_ptr(mixer->buffers.fx_left_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_rvoice_mixer_process_fx()
140 if(mixer->mix_fx_to_out) in fluid_rvoice_mixer_process_fx()
143 out_ch_l = out_rev_l = fluid_align_ptr(mixer->buffers.left_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_rvoice_mixer_process_fx()
144 out_ch_r = out_rev_r = fluid_align_ptr(mixer->buffers.right_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_rvoice_mixer_process_fx()
153 out_ch_l = out_rev_l = fluid_align_ptr(mixer->buffers.fx_left_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_rvoice_mixer_process_fx()
154 … out_ch_r = out_rev_r = fluid_align_ptr(mixer->buffers.fx_right_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_rvoice_mixer_process_fx()
161 if(mixer->with_reverb) in fluid_rvoice_mixer_process_fx()
163 for(f = 0; f < mixer->fx_units; f++) in fluid_rvoice_mixer_process_fx()
171 reverb_process_func(mixer->fx[f].reverb, in fluid_rvoice_mixer_process_fx()
173 mixer->mix_fx_to_out ? &out_rev_l[i] : &out_rev_l[samp_idx], in fluid_rvoice_mixer_process_fx()
174 mixer->mix_fx_to_out ? &out_rev_r[i] : &out_rev_r[samp_idx]); in fluid_rvoice_mixer_process_fx()
182 if(mixer->with_chorus) in fluid_rvoice_mixer_process_fx()
184 for(f = 0; f < mixer->fx_units; f++) in fluid_rvoice_mixer_process_fx()
192 chorus_process_func(mixer->fx[f].chorus, in fluid_rvoice_mixer_process_fx()
194 mixer->mix_fx_to_out ? &out_ch_l[i] : &out_ch_l[samp_idx], in fluid_rvoice_mixer_process_fx()
195 mixer->mix_fx_to_out ? &out_ch_r[i] : &out_ch_r[samp_idx]); in fluid_rvoice_mixer_process_fx()
207 if(mixer->ladspa_fx) in fluid_rvoice_mixer_process_fx()
209 fluid_ladspa_run(mixer->ladspa_fx, current_blockcount, FLUID_BUFSIZE); in fluid_rvoice_mixer_process_fx()
225 const int fx_channels_per_unit = buffers->fx_buf_count / buffers->mixer->fx_units; in fluid_mixer_buffers_prepare()
227 int with_reverb = buffers->mixer->with_reverb; in fluid_mixer_buffers_prepare()
228 int with_chorus = buffers->mixer->with_chorus; in fluid_mixer_buffers_prepare()
234 int with_ladspa = (buffers->mixer->ladspa_fx != NULL); in fluid_mixer_buffers_prepare()
242 for(i = 0; i < buffers->mixer->fx_units; i++) in fluid_mixer_buffers_prepare()
290 if(buffers->finished_voice_count < buffers->mixer->polyphony) in fluid_finish_rvoice()
308 int av = buffers->mixer->active_voices; in fluid_mixer_buffer_process_finished_voices()
312 if(v == buffers->mixer->rvoices[j]) in fluid_mixer_buffer_process_finished_voices()
319 buffers->mixer->rvoices[j] = buffers->mixer->rvoices[av]; in fluid_mixer_buffer_process_finished_voices()
324 buffers->mixer->active_voices = av; in fluid_mixer_buffer_process_finished_voices()
326 fluid_rvoice_eventhandler_finished_voice_callback(buffers->mixer->eventhandler, v); in fluid_mixer_buffer_process_finished_voices()
332 static FLUID_INLINE void fluid_rvoice_mixer_process_finished_voices(fluid_rvoice_mixer_t *mixer) in fluid_rvoice_mixer_process_finished_voices() argument
337 for(i = 0; i < mixer->thread_count; i++) in fluid_rvoice_mixer_process_finished_voices()
339 fluid_mixer_buffer_process_finished_voices(&mixer->threads[i]); in fluid_rvoice_mixer_process_finished_voices()
343 fluid_mixer_buffer_process_finished_voices(&mixer->buffers); in fluid_rvoice_mixer_process_finished_voices()
471 fluid_rvoice_mixer_t *mixer = obj; in DECLARE_FLUID_RVOICE_FUNCTION() local
474 if(mixer->active_voices < mixer->polyphony) in DECLARE_FLUID_RVOICE_FUNCTION()
476 mixer->rvoices[mixer->active_voices++] = voice; in DECLARE_FLUID_RVOICE_FUNCTION()
482 for(i = 0; i < mixer->active_voices; i++) in DECLARE_FLUID_RVOICE_FUNCTION()
484 if(mixer->rvoices[i] == voice) in DECLARE_FLUID_RVOICE_FUNCTION()
490 if(mixer->rvoices[i]->envlfo.volenv.section == FLUID_VOICE_ENVFINISHED) in DECLARE_FLUID_RVOICE_FUNCTION()
492 fluid_finish_rvoice(&mixer->buffers, mixer->rvoices[i]); in DECLARE_FLUID_RVOICE_FUNCTION()
493 mixer->rvoices[i] = voice; in DECLARE_FLUID_RVOICE_FUNCTION()
575 fluid_render_loop_singlethread(fluid_rvoice_mixer_t *mixer, int blockcount) in fluid_render_loop_singlethread() argument
579 mixer->buffers.buf_count * 2 + mixer->buffers.fx_buf_count * 2); in fluid_render_loop_singlethread()
580 int bufcount = fluid_mixer_buffers_prepare(&mixer->buffers, bufs); in fluid_render_loop_singlethread()
582 fluid_real_t *local_buf = fluid_align_ptr(mixer->buffers.local_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_render_loop_singlethread()
586 for(i = 0; i < mixer->active_voices; i++) in fluid_render_loop_singlethread()
588 fluid_mixer_buffers_render_one(&mixer->buffers, mixer->rvoices[i], bufs, in fluid_render_loop_singlethread()
623 fluid_mixer_buffers_init(fluid_mixer_buffers_t *buffers, fluid_rvoice_mixer_t *mixer) in fluid_mixer_buffers_init() argument
627 buffers->mixer = mixer; in fluid_mixer_buffers_init()
628 buffers->buf_count = mixer->buffers.buf_count; in fluid_mixer_buffers_init()
629 buffers->fx_buf_count = mixer->buffers.fx_buf_count; in fluid_mixer_buffers_init()
658 if(fluid_mixer_buffers_update_polyphony(buffers, mixer->polyphony) in fluid_mixer_buffers_init()
673 fluid_rvoice_mixer_t *mixer = obj; in DECLARE_FLUID_RVOICE_FUNCTION() local
677 for(i = 0; i < mixer->fx_units; i++) in DECLARE_FLUID_RVOICE_FUNCTION()
679 if(mixer->fx[i].chorus) in DECLARE_FLUID_RVOICE_FUNCTION()
681 delete_fluid_chorus(mixer->fx[i].chorus); in DECLARE_FLUID_RVOICE_FUNCTION()
684 mixer->fx[i].chorus = new_fluid_chorus(samplerate); in DECLARE_FLUID_RVOICE_FUNCTION()
686 if(mixer->fx[i].reverb) in DECLARE_FLUID_RVOICE_FUNCTION()
688 fluid_revmodel_samplerate_change(mixer->fx[i].reverb, samplerate); in DECLARE_FLUID_RVOICE_FUNCTION()
694 if(mixer->ladspa_fx != NULL) in DECLARE_FLUID_RVOICE_FUNCTION()
696 fluid_ladspa_set_sample_rate(mixer->ladspa_fx, samplerate); in DECLARE_FLUID_RVOICE_FUNCTION()
711 fluid_rvoice_mixer_t *mixer = FLUID_NEW(fluid_rvoice_mixer_t); in new_fluid_rvoice_mixer() local
713 if(mixer == NULL) in new_fluid_rvoice_mixer()
719 FLUID_MEMSET(mixer, 0, sizeof(fluid_rvoice_mixer_t)); in new_fluid_rvoice_mixer()
720 mixer->eventhandler = evthandler; in new_fluid_rvoice_mixer()
721 mixer->fx_units = fx_units; in new_fluid_rvoice_mixer()
722 mixer->buffers.buf_count = buf_count; in new_fluid_rvoice_mixer()
723 mixer->buffers.fx_buf_count = fx_buf_count * fx_units; in new_fluid_rvoice_mixer()
726 mixer->fx = FLUID_ARRAY(fluid_mixer_fx_t, fx_units); in new_fluid_rvoice_mixer()
727 if(mixer->fx == NULL) in new_fluid_rvoice_mixer()
733 FLUID_MEMSET(mixer->fx, 0, fx_units * sizeof(*mixer->fx)); in new_fluid_rvoice_mixer()
737 mixer->fx[i].reverb = new_fluid_revmodel(sample_rate); in new_fluid_rvoice_mixer()
738 mixer->fx[i].chorus = new_fluid_chorus(sample_rate); in new_fluid_rvoice_mixer()
740 if(mixer->fx[i].reverb == NULL || mixer->fx[i].chorus == NULL) in new_fluid_rvoice_mixer()
747 if(!fluid_mixer_buffers_init(&mixer->buffers, mixer)) in new_fluid_rvoice_mixer()
753 mixer->thread_ready = new_fluid_cond(); in new_fluid_rvoice_mixer()
754 mixer->wakeup_threads = new_fluid_cond(); in new_fluid_rvoice_mixer()
755 mixer->thread_ready_m = new_fluid_cond_mutex(); in new_fluid_rvoice_mixer()
756 mixer->wakeup_threads_m = new_fluid_cond_mutex(); in new_fluid_rvoice_mixer()
758 if(!mixer->thread_ready || !mixer->wakeup_threads || in new_fluid_rvoice_mixer()
759 !mixer->thread_ready_m || !mixer->wakeup_threads_m) in new_fluid_rvoice_mixer()
764 if(fluid_rvoice_mixer_set_threads(mixer, extra_threads, prio) != FLUID_OK) in new_fluid_rvoice_mixer()
771 return mixer; in new_fluid_rvoice_mixer()
774 delete_fluid_rvoice_mixer(mixer); in new_fluid_rvoice_mixer()
791 void delete_fluid_rvoice_mixer(fluid_rvoice_mixer_t *mixer) in delete_fluid_rvoice_mixer() argument
795 fluid_return_if_fail(mixer != NULL); in delete_fluid_rvoice_mixer()
798 delete_rvoice_mixer_threads(mixer); in delete_fluid_rvoice_mixer()
800 if(mixer->thread_ready) in delete_fluid_rvoice_mixer()
802 delete_fluid_cond(mixer->thread_ready); in delete_fluid_rvoice_mixer()
805 if(mixer->wakeup_threads) in delete_fluid_rvoice_mixer()
807 delete_fluid_cond(mixer->wakeup_threads); in delete_fluid_rvoice_mixer()
810 if(mixer->thread_ready_m) in delete_fluid_rvoice_mixer()
812 delete_fluid_cond_mutex(mixer->thread_ready_m); in delete_fluid_rvoice_mixer()
815 if(mixer->wakeup_threads_m) in delete_fluid_rvoice_mixer()
817 delete_fluid_cond_mutex(mixer->wakeup_threads_m); in delete_fluid_rvoice_mixer()
821 fluid_mixer_buffers_free(&mixer->buffers); in delete_fluid_rvoice_mixer()
824 for(i = 0; i < mixer->fx_units; i++) in delete_fluid_rvoice_mixer()
826 if(mixer->fx[i].reverb) in delete_fluid_rvoice_mixer()
828 delete_fluid_revmodel(mixer->fx[i].reverb); in delete_fluid_rvoice_mixer()
831 if(mixer->fx[i].chorus) in delete_fluid_rvoice_mixer()
833 delete_fluid_chorus(mixer->fx[i].chorus); in delete_fluid_rvoice_mixer()
837 FLUID_FREE(mixer->fx); in delete_fluid_rvoice_mixer()
838 FLUID_FREE(mixer->rvoices); in delete_fluid_rvoice_mixer()
839 FLUID_FREE(mixer); in delete_fluid_rvoice_mixer()
847 void fluid_rvoice_mixer_set_ladspa(fluid_rvoice_mixer_t *mixer, in fluid_rvoice_mixer_set_ladspa() argument
850 mixer->ladspa_fx = ladspa_fx; in fluid_rvoice_mixer_set_ladspa()
858 fluid_real_t *main_l = fluid_align_ptr(mixer->buffers.left_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_rvoice_mixer_set_ladspa()
859 fluid_real_t *main_r = fluid_align_ptr(mixer->buffers.right_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_rvoice_mixer_set_ladspa()
861 fluid_real_t *rev = fluid_align_ptr(mixer->buffers.fx_left_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_rvoice_mixer_set_ladspa()
888 fluid_rvoice_mixer_t *mixer = obj; in DECLARE_FLUID_RVOICE_FUNCTION() local
891 mixer->with_reverb = on; in DECLARE_FLUID_RVOICE_FUNCTION()
896 fluid_rvoice_mixer_t *mixer = obj; in DECLARE_FLUID_RVOICE_FUNCTION() local
898 mixer->with_chorus = on; in DECLARE_FLUID_RVOICE_FUNCTION()
901 void fluid_rvoice_mixer_set_mix_fx(fluid_rvoice_mixer_t *mixer, int on) in fluid_rvoice_mixer_set_mix_fx() argument
903 mixer->mix_fx_to_out = on; in fluid_rvoice_mixer_set_mix_fx()
908 fluid_rvoice_mixer_t *mixer = obj; in DECLARE_FLUID_RVOICE_FUNCTION() local
917 for(i = 0; i < mixer->fx_units; i++) in DECLARE_FLUID_RVOICE_FUNCTION()
919 fluid_chorus_set(mixer->fx[i].chorus, set, nr, level, speed, depth_ms, type); in DECLARE_FLUID_RVOICE_FUNCTION()
925 fluid_rvoice_mixer_t *mixer = obj; in DECLARE_FLUID_RVOICE_FUNCTION() local
933 for(i = 0; i < mixer->fx_units; i++) in DECLARE_FLUID_RVOICE_FUNCTION()
935 fluid_revmodel_set(mixer->fx[i].reverb, set, roomsize, damping, width, level); in DECLARE_FLUID_RVOICE_FUNCTION()
941 fluid_rvoice_mixer_t *mixer = obj; in DECLARE_FLUID_RVOICE_FUNCTION() local
943 for(i = 0; i < mixer->fx_units; i++) in DECLARE_FLUID_RVOICE_FUNCTION()
945 fluid_revmodel_reset(mixer->fx[i].reverb); in DECLARE_FLUID_RVOICE_FUNCTION()
951 fluid_rvoice_mixer_t *mixer = obj; in DECLARE_FLUID_RVOICE_FUNCTION() local
953 for(i = 0; i < mixer->fx_units; i++) in DECLARE_FLUID_RVOICE_FUNCTION()
955 fluid_chorus_reset(mixer->fx[i].chorus); in DECLARE_FLUID_RVOICE_FUNCTION()
959 int fluid_rvoice_mixer_get_bufs(fluid_rvoice_mixer_t *mixer, in fluid_rvoice_mixer_get_bufs() argument
962 *left = fluid_align_ptr(mixer->buffers.left_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_rvoice_mixer_get_bufs()
963 *right = fluid_align_ptr(mixer->buffers.right_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_rvoice_mixer_get_bufs()
964 return mixer->buffers.buf_count; in fluid_rvoice_mixer_get_bufs()
967 int fluid_rvoice_mixer_get_fx_bufs(fluid_rvoice_mixer_t *mixer, in fluid_rvoice_mixer_get_fx_bufs() argument
970 *fx_left = fluid_align_ptr(mixer->buffers.fx_left_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_rvoice_mixer_get_fx_bufs()
971 *fx_right = fluid_align_ptr(mixer->buffers.fx_right_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_rvoice_mixer_get_fx_bufs()
972 return mixer->buffers.fx_buf_count; in fluid_rvoice_mixer_get_fx_bufs()
975 int fluid_rvoice_mixer_get_bufcount(fluid_rvoice_mixer_t *mixer) in fluid_rvoice_mixer_get_bufcount() argument
981 int fluid_rvoice_mixer_get_active_voices(fluid_rvoice_mixer_t *mixer) in fluid_rvoice_mixer_get_active_voices() argument
983 return mixer->active_voices; in fluid_rvoice_mixer_get_active_voices()
990 fluid_mixer_get_mt_rvoice(fluid_rvoice_mixer_t *mixer) in fluid_mixer_get_mt_rvoice() argument
992 int i = fluid_atomic_int_exchange_and_add(&mixer->current_rvoice, 1); in fluid_mixer_get_mt_rvoice()
994 if(i >= mixer->active_voices) in fluid_mixer_get_mt_rvoice()
999 return mixer->rvoices[i]; in fluid_mixer_get_mt_rvoice()
1012 fluid_rvoice_mixer_t *mixer = buffers->mixer; in fluid_mixer_thread_func() local
1019 while(!fluid_atomic_int_get(&mixer->threads_should_terminate)) in fluid_mixer_thread_func()
1021 fluid_rvoice_t *rvoice = fluid_mixer_get_mt_rvoice(mixer); in fluid_mixer_thread_func()
1027 fluid_cond_mutex_lock(mixer->thread_ready_m); in fluid_mixer_thread_func()
1028 fluid_cond_signal(mixer->thread_ready); in fluid_mixer_thread_func()
1029 fluid_cond_mutex_unlock(mixer->thread_ready_m); in fluid_mixer_thread_func()
1031 fluid_cond_mutex_lock(mixer->wakeup_threads_m); in fluid_mixer_thread_func()
1042 fluid_cond_wait(mixer->wakeup_threads, mixer->wakeup_threads_m); in fluid_mixer_thread_func()
1045 fluid_cond_mutex_unlock(mixer->wakeup_threads_m); in fluid_mixer_thread_func()
1055 current_blockcount = mixer->current_blockcount; in fluid_mixer_thread_func()
1154 fluid_mixer_mix_in(fluid_rvoice_mixer_t *mixer, int extra_threads, int current_blockcount) in fluid_mixer_mix_in() argument
1165 int j = fluid_atomic_int_get(&mixer->threads[i].ready); in fluid_mixer_mix_in()
1174 fluid_atomic_int_set(&mixer->threads[i].ready, THREAD_BUF_NODATA); in fluid_mixer_mix_in()
1175 fluid_mixer_buffers_mix(&mixer->buffers, &mixer->threads[i], current_blockcount); in fluid_mixer_mix_in()
1187 fluid_render_loop_multithread(fluid_rvoice_mixer_t *mixer, int current_blockcount) in fluid_render_loop_multithread() argument
1190 fluid_real_t *local_buf = fluid_align_ptr(mixer->buffers.local_buf, FLUID_DEFAULT_ALIGNMENT); in fluid_render_loop_multithread()
1193 mixer->buffers.buf_count * 2 + mixer->buffers.fx_buf_count * 2); in fluid_render_loop_multithread()
1195 int extra_threads = mixer->active_voices / VOICES_PER_THREAD; in fluid_render_loop_multithread()
1197 if(extra_threads > mixer->thread_count) in fluid_render_loop_multithread()
1199 extra_threads = mixer->thread_count; in fluid_render_loop_multithread()
1205 fluid_render_loop_singlethread(mixer, current_blockcount); in fluid_render_loop_multithread()
1209 bufcount = fluid_mixer_buffers_prepare(&mixer->buffers, bufs); in fluid_render_loop_multithread()
1212 fluid_cond_mutex_lock(mixer->wakeup_threads_m); in fluid_render_loop_multithread()
1213 fluid_atomic_int_set(&mixer->current_rvoice, 0); in fluid_render_loop_multithread()
1217 fluid_atomic_int_set(&mixer->threads[i].ready, THREAD_BUF_PROCESSING); in fluid_render_loop_multithread()
1221 fluid_cond_broadcast(mixer->wakeup_threads); in fluid_render_loop_multithread()
1222 fluid_cond_mutex_unlock(mixer->wakeup_threads_m); in fluid_render_loop_multithread()
1225 while(fluid_mixer_mix_in(mixer, extra_threads, current_blockcount)) in fluid_render_loop_multithread()
1228 fluid_rvoice_t *rvoice = fluid_mixer_get_mt_rvoice(mixer); in fluid_render_loop_multithread()
1233 …fluid_mixer_buffers_render_one(&mixer->buffers, rvoice, bufs, bufcount, local_buf, current_blockco… in fluid_render_loop_multithread()
1243 fluid_cond_mutex_lock(mixer->thread_ready_m); in fluid_render_loop_multithread()
1247 if(fluid_atomic_int_get(&mixer->threads[i].ready) == in fluid_render_loop_multithread()
1256 fluid_cond_wait(mixer->thread_ready, mixer->thread_ready_m); in fluid_render_loop_multithread()
1259 fluid_cond_mutex_unlock(mixer->thread_ready_m); in fluid_render_loop_multithread()
1267 static void delete_rvoice_mixer_threads(fluid_rvoice_mixer_t *mixer) in delete_rvoice_mixer_threads() argument
1270 fluid_atomic_int_set(&mixer->threads_should_terminate, 1); in delete_rvoice_mixer_threads()
1272 fluid_cond_mutex_lock(mixer->wakeup_threads_m); in delete_rvoice_mixer_threads()
1274 for(i = 0; i < mixer->thread_count; i++) in delete_rvoice_mixer_threads()
1276 fluid_atomic_int_set(&mixer->threads[i].ready, THREAD_BUF_TERMINATE); in delete_rvoice_mixer_threads()
1279 fluid_cond_broadcast(mixer->wakeup_threads); in delete_rvoice_mixer_threads()
1280 fluid_cond_mutex_unlock(mixer->wakeup_threads_m); in delete_rvoice_mixer_threads()
1282 for(i = 0; i < mixer->thread_count; i++) in delete_rvoice_mixer_threads()
1284 if(mixer->threads[i].thread) in delete_rvoice_mixer_threads()
1286 fluid_thread_join(mixer->threads[i].thread); in delete_rvoice_mixer_threads()
1287 delete_fluid_thread(mixer->threads[i].thread); in delete_rvoice_mixer_threads()
1290 fluid_mixer_buffers_free(&mixer->threads[i]); in delete_rvoice_mixer_threads()
1293 FLUID_FREE(mixer->threads); in delete_rvoice_mixer_threads()
1294 mixer->thread_count = 0; in delete_rvoice_mixer_threads()
1295 mixer->threads = NULL; in delete_rvoice_mixer_threads()
1303 static int fluid_rvoice_mixer_set_threads(fluid_rvoice_mixer_t *mixer, int thread_count, int prio_l… in fluid_rvoice_mixer_set_threads() argument
1309 if(mixer->thread_count) in fluid_rvoice_mixer_set_threads()
1311 delete_rvoice_mixer_threads(mixer); in fluid_rvoice_mixer_set_threads()
1320 fluid_atomic_int_set(&mixer->threads_should_terminate, 0); in fluid_rvoice_mixer_set_threads()
1321 mixer->threads = FLUID_ARRAY(fluid_mixer_buffers_t, thread_count); in fluid_rvoice_mixer_set_threads()
1323 if(mixer->threads == NULL) in fluid_rvoice_mixer_set_threads()
1329 FLUID_MEMSET(mixer->threads, 0, thread_count * sizeof(fluid_mixer_buffers_t)); in fluid_rvoice_mixer_set_threads()
1330 mixer->thread_count = thread_count; in fluid_rvoice_mixer_set_threads()
1334 fluid_mixer_buffers_t *b = &mixer->threads[i]; in fluid_rvoice_mixer_set_threads()
1336 if(!fluid_mixer_buffers_init(b, mixer)) in fluid_rvoice_mixer_set_threads()
1361 fluid_rvoice_mixer_render(fluid_rvoice_mixer_t *mixer, int blockcount) in fluid_rvoice_mixer_render() argument
1365 mixer->current_blockcount = blockcount; in fluid_rvoice_mixer_render()
1368 fluid_mixer_buffers_zero(&mixer->buffers, blockcount); in fluid_rvoice_mixer_render()
1369 fluid_profile(FLUID_PROF_ONE_BLOCK_CLEAR, prof_ref, mixer->active_voices, in fluid_rvoice_mixer_render()
1374 if(mixer->thread_count > 0) in fluid_rvoice_mixer_render()
1376 fluid_render_loop_multithread(mixer, blockcount); in fluid_rvoice_mixer_render()
1381 fluid_render_loop_singlethread(mixer, blockcount); in fluid_rvoice_mixer_render()
1384 fluid_profile(FLUID_PROF_ONE_BLOCK_VOICES, prof_ref, mixer->active_voices, in fluid_rvoice_mixer_render()
1389 fluid_rvoice_mixer_process_fx(mixer, blockcount); in fluid_rvoice_mixer_render()
1392 fluid_rvoice_mixer_process_finished_voices(mixer); in fluid_rvoice_mixer_render()