Esempio n. 1
0
void gen_mix(jack_default_audio_sample_t *outs[], int frame) {
	MASH_UNIT *gen;
	if (active_gens == NULL) return;
	for (gen = active_gens->dlink; gen != NULL; gen = gen->dlink) {
		mix_frame((GEN *)gen, outs, frame);
		}
	return;
	}
Esempio n. 2
0
void feeds_mix(jack_default_audio_sample_t *outs[], int frame) {
	MASH_UNIT *feed;
	if (feeds == NULL) return;
	for (feed = feeds->dlink; feed != NULL; feed = feed->dlink) {
		mix_frame((FEED *)feed, outs, frame);
		}
	return;
	}
Esempio n. 3
0
void Player::mix_events(MessageQueue &queue, int samples) {
    assert(model);
    
    long long target = queue.read_samples + ((long long)samples<<32);
    while (queue.write_samples < target)
    {
        // send status package
        queue.status_msg();
        mix_frame(queue);
        long long framesize = get_frame_size();
        queue.write_samples += framesize;
        queue.position++;
        if (model->enable_loop && (queue.position == model->loop.get_end())) {
            queue.position = model->loop.get_begin();
        }
    }
}