Sync to host temp?

Describe your looping workflow

Moderator: jesse

Post Reply
FearlessFreep
Posts: 28
Joined: Sat Dec 06, 2008 5:50 pm

Sync to host temp?

Post by FearlessFreep »

Is there a setting I can that will sync, or probably quantize, a loop to the tempo coming from the host?

Here's the scenario. I have my temp established for a song I play and a sample that plays back a four bar piece of the song when I trigger it. However, as I'm jamming along to this I'm trying to loop a bass line. Problem is, the loop is in variably just a little bit off so the timing gets thrown as it kepts playing. I'd like it to be that the loop kinda syncs/quantizes to the tempo/timing of the sample. Is that possible?

(Note:Mainstage using EXS4 sampler for playing back sample)
jesse
Posts: 554
Joined: Sat Sep 06, 2008 9:46 am
Contact:

Re: Sync to host temp?

Post by jesse »

Follow these steps:

- set the 'sync to' to Jack/Host. Once you do this, you should see the tempo indicator switch to that of your host. You'll have to ensure that the host tempo is set appropriately...
- set the quantize value to 'cycle'
- enable 'sync' on the loop(s).

You can set your 8ths/per cycle appropriately for the granularity of the quantize. If you know you want your loop to be multiples of a bar (and your time sig is 4/4), set it to 8, for instance. If you want to be able to hit record and start recording immediately, but still finish the record so the loop length is quantized appropriately, enable the 'rel sync' option.
FearlessFreep
Posts: 28
Joined: Sat Dec 06, 2008 5:50 pm

Re: Sync to host temp?

Post by FearlessFreep »

Great Jesse, thanks. I'll try that out tonight
FearlessFreep
Posts: 28
Joined: Sat Dec 06, 2008 5:50 pm

Re: Sync to host temp?

Post by FearlessFreep »

OK, this is sorta working but it's pretty touchy still and tends to drift on long playing runs (ie...same loop playing for extended length of time)

I tried setting "play sync" on the loop but all I get from it is a high pitched squeal.
FearlessFreep
Posts: 28
Joined: Sat Dec 06, 2008 5:50 pm

Re: Sync to host temp?

Post by FearlessFreep »

Ergh apparently MainStage doesn't send MIDI clock messages (although it does send tempo), which is why, I guess, setting Sync To:Jack/Host and then 'play sync' doesn't work...
jesse
Posts: 554
Joined: Sat Sep 06, 2008 9:46 am
Contact:

Re: Sync to host temp?

Post by jesse »

Jack/Host does not use midi clock, the plugin host itself provides the tempo/position info through the AU plugin interface. If the tempo indicator in the SL gui matches up with what mainstage says (and changes appropriately) things should be working.

Can save your SL session and email it to me or post it here? (In SL, Session menu->Save Session)
FearlessFreep
Posts: 28
Joined: Sat Dec 06, 2008 5:50 pm

Re: Sync to host temp?

Post by FearlessFreep »

If I just set sync I notice that after awhile there is still some drift but I'm suspecting that the EXS24 Sampler is not really designed to be a "Sample Looper" so to speak so it's own accuracy on re-triggering the sample is not really sync'ed or tied to anything, so it drifts on it's own (it's not really I think designed to be a sample looper like Ultrabeat is, for example)

So I'm suspecting that what I will have to do is play the sample through the EXS24, run that through SL and 'loop' the sample in SL and then kill the EXS24 playback and overdub my bass into SL.

(In case you're wondering, currently the audio from the EXS24 does not go through SL, just my life instruments. So when I have some parts looping through SL and some parts looping though the EXS24, they drift away over time)

Yes, SL does pick up the Tempo correctly when I set Sync To to Jack/Host. However 'play sync' just makes noise when it's enabled. But I've been finding out that Mainstage doesn't really understand the passage of time so time synchronization with it doesn't seem to really work

Heres the session if that will help

<?xml version="1.0"?>
<SLSession version="1.6.13">
<Globals tempo="110" eighth_per_cycle="1" common_dry="1" common_wet="1" input_gain="1" sync_source="-1" auto_disable_latency="1" jack_timebase_master="0" output_midi_clock="1" use_midi_start="0" use_midi_stop="0" send_midi_start_on_trigger="0" smart_eighths="1"/>
<Loopers>
<Looper index="0" channels="2" loop_secs="40" discrete_io="yes" use_common_ins="no" use_common_outs="yes" relative_sync="yes" auto_latency="yes" tempo_stretch="no" stretch_ratio="1" pitch_shift="0">
<Panner linked="no" link_direction="0" bypassed="no">
<StreamPanner x="0.000000" type="Equal Power Stereo" muted="no"/>
<StreamPanner x="1.000000" type="Equal Power Stereo" muted="no"/>
<Output x="0.000000" y="0.000000"/>
<Output x="1.000000" y="0.000000"/>
</Panner>
<Controls>
<Control name="rec_thresh" value="0"/>
<Control name="dry" value="0"/>
<Control name="wet" value="1"/>
<Control name="feedback" value="1"/>
<Control name="rate" value="1"/>
<Control name="scratch_pos" value="0"/>
<Control name="delay_trigger" value="0"/>
<Control name="use_feedback_play" value="0"/>
<Control name="quantize" value="1"/>
<Control name="round" value="0"/>
<Control name="redo_is_tap" value="0"/>
<Control name="sync" value="1"/>
<Control name="use_rate" value="0"/>
<Control name="fade_samples" value="64"/>
<Control name="playback_sync" value="1"/>
<Control name="use_safety_feedback" value="1"/>
<Control name="input_latency" value="0"/>
<Control name="output_latency" value="0"/>
<Control name="trigger_latency" value="0"/>
<Control name="mute_quantized" value="0"/>
<Control name="overdub_quantized" value="1"/>
<Control name="round_integer_tempo" value="0"/>
</Controls>
</Looper>
<Looper index="1" channels="2" loop_secs="55" discrete_io="yes" use_common_ins="no" use_common_outs="yes" relative_sync="yes" auto_latency="yes" tempo_stretch="no" stretch_ratio="1" pitch_shift="0">
<Panner linked="no" link_direction="0" bypassed="no">
<StreamPanner x="0.000000" type="Equal Power Stereo" muted="no"/>
<StreamPanner x="1.000000" type="Equal Power Stereo" muted="no"/>
<Output x="0.000000" y="0.000000"/>
<Output x="1.000000" y="0.000000"/>
</Panner>
<Controls>
<Control name="rec_thresh" value="0"/>
<Control name="dry" value="0"/>
<Control name="wet" value="1"/>
<Control name="feedback" value="1"/>
<Control name="rate" value="1"/>
<Control name="scratch_pos" value="0"/>
<Control name="delay_trigger" value="0"/>
<Control name="use_feedback_play" value="0"/>
<Control name="quantize" value="1"/>
<Control name="round" value="0"/>
<Control name="redo_is_tap" value="0"/>
<Control name="sync" value="1"/>
<Control name="use_rate" value="0"/>
<Control name="fade_samples" value="64"/>
<Control name="playback_sync" value="0"/>
<Control name="use_safety_feedback" value="1"/>
<Control name="input_latency" value="0"/>
<Control name="output_latency" value="0"/>
<Control name="trigger_latency" value="0"/>
<Control name="mute_quantized" value="0"/>
<Control name="overdub_quantized" value="1"/>
<Control name="round_integer_tempo" value="0"/>
</Controls>
</Looper>
<Looper index="2" channels="2" loop_secs="55" discrete_io="yes" use_common_ins="no" use_common_outs="yes" relative_sync="yes" auto_latency="yes" tempo_stretch="no" stretch_ratio="1" pitch_shift="0">
<Panner linked="no" link_direction="0" bypassed="no">
<StreamPanner x="0.000000" type="Equal Power Stereo" muted="no"/>
<StreamPanner x="1.000000" type="Equal Power Stereo" muted="no"/>
<Output x="0.000000" y="0.000000"/>
<Output x="1.000000" y="0.000000"/>
</Panner>
<Controls>
<Control name="rec_thresh" value="0"/>
<Control name="dry" value="0"/>
<Control name="wet" value="1"/>
<Control name="feedback" value="1"/>
<Control name="rate" value="1"/>
<Control name="scratch_pos" value="0"/>
<Control name="delay_trigger" value="0"/>
<Control name="use_feedback_play" value="0"/>
<Control name="quantize" value="1"/>
<Control name="round" value="0"/>
<Control name="redo_is_tap" value="0"/>
<Control name="sync" value="1"/>
<Control name="use_rate" value="0"/>
<Control name="fade_samples" value="64"/>
<Control name="playback_sync" value="0"/>
<Control name="use_safety_feedback" value="1"/>
<Control name="input_latency" value="0"/>
<Control name="output_latency" value="0"/>
<Control name="trigger_latency" value="0"/>
<Control name="mute_quantized" value="0"/>
<Control name="overdub_quantized" value="1"/>
<Control name="round_integer_tempo" value="0"/>
</Controls>
</Looper>
<Looper index="3" channels="2" loop_secs="55" discrete_io="yes" use_common_ins="no" use_common_outs="yes" relative_sync="yes" auto_latency="yes" tempo_stretch="no" stretch_ratio="1" pitch_shift="0">
<Panner linked="no" link_direction="0" bypassed="no">
<StreamPanner x="0.000000" type="Equal Power Stereo" muted="no"/>
<StreamPanner x="1.000000" type="Equal Power Stereo" muted="no"/>
<Output x="0.000000" y="0.000000"/>
<Output x="1.000000" y="0.000000"/>
</Panner>
<Controls>
<Control name="rec_thresh" value="0"/>
<Control name="dry" value="0"/>
<Control name="wet" value="1"/>
<Control name="feedback" value="1"/>
<Control name="rate" value="1"/>
<Control name="scratch_pos" value="0"/>
<Control name="delay_trigger" value="0"/>
<Control name="use_feedback_play" value="0"/>
<Control name="quantize" value="1"/>
<Control name="round" value="0"/>
<Control name="redo_is_tap" value="0"/>
<Control name="sync" value="1"/>
<Control name="use_rate" value="0"/>
<Control name="fade_samples" value="64"/>
<Control name="playback_sync" value="0"/>
<Control name="use_safety_feedback" value="1"/>
<Control name="input_latency" value="0"/>
<Control name="output_latency" value="0"/>
<Control name="trigger_latency" value="0"/>
<Control name="mute_quantized" value="0"/>
<Control name="overdub_quantized" value="1"/>
<Control name="round_integer_tempo" value="0"/>
</Controls>
</Looper>
</Loopers>
</SLSession>
Post Reply