# O h m - L i v e s l i c e

New version: 1.5

After a small break, I've started buzzin' again. So I decided to release an updated version of LiveSlice. This version is crash-free - I've fixed some bugs and memory leaks to ensure much greater stability. If there are still issues there's a chance you can get hold of me by visiting www.livelab.dk and locating my email address, or if you are on KVRaudio.com, send a PM to the user ohm.

LiveSlice is now running in Buzé - seemed to be the most promising buzz clone on windows when I wrote this.

I've also added support for 24 and 32 bit wave files and updated the waveform display so it looks more like what you hear. Other features are better support for slices of varying duration. If you have a snare hit that is twice the duration of the other slices, simply drag the slice cutting it in half and create an empty (zero duration) slice - extremely short slices will not be played back.

I didn't make major changes to the playback engine to ensure 100% backwards compatibility. If you need more slicer features, go try the VST version. Screenshots at the bottom of this page (if you are online).

#### Quickstart guide

- Double click the machine to bring up the GUI
- Click the open button to loat a wave file from disk (44.1 kHz 16 bit uncompressed wavefiles only) or click the buzz wavetable icon to import a loop from the wavetable (the wavetable slot can be changed by typing in a different number in the box)
- The upper waveform is the original sound, the lower one is the current arrangement
- Rearrange slices by dragging them (you can drag from both waveforms)
- Playback starts when the play botton of buzz is pressed, and continues to loop until buzz is stopped.
  To use liveslice with the buzz sequencer set the attribute labeled "wait for trigger parameter" to 1. Now create a pattern with the value 1 in the trigger column, an place it in your song.
- Set the number of slices by clicking on the boxes next to the "slices:" label
- Set the number of measures by clicking the "measures" box
- Try randomizing the slices using the spacebar to toggle between your current arrangement and a random one, or pressing the "dice" icon.
- You can always revert to the default (linear) arrangement using the "X" button next to the dice
- Save a preset by right clicking on any of the 32 buttons in the bottom half of the window
- You load a preset by left clicking or by using the keyboard shortcuts (see below)
  Presets can be exported and imported to / from .sli files using the load / save buttons above the presets

#### Sample Import / Export

import
press the "open file" button to select a file from your harddrive. Samples must be 16 bit uncompressed. The selected sample is previewed - this can be turned off using a machine attribute.
press the wavetable button to load a file from the buzz wavetable. Select the slot by typing in a number in the box next to the button. If you loaded a sample from disk you can transfer it to the wavetable by right clicking this button. Useful if you want to share your bmx file.
export
the save button exports the re-sliced loop and all individual slices to the buzz wavetable. The loop is saved as it sounds - with envelope modifications, but without any attached peer effects - use the CnG recorder if you need those.

#### Parameter envelopes

There are four available parameter envelopes:

- Volume
- Panning
- Pitch
- Decay / Length
- Slice - an alternative to the drag'n' drop editing of slices
- Probability - 0: slice will never play 100: slice will always play
- Two PEER controllers
  (can be configured to control any buzz machine.)

To activate, say the volume envelope click the button labeled "Volume". Notice that the button changes color to indicate that the green volume envelope is editable. Clicking the button again will let the volume envelope remain visible but not editable (so that you can view the volume envelope while editing the panning envelope)
Peer controllers are configured by right clicking the machine and using the assignments menu (this procedure might change slightly)
Beneath the envelope selection buttons you find a bunch of icons. The lock is for locking all sliders in the envelopes (make them move together), the rest of them can be used to apply common envelopes (rising, falling, random, etc.) the slider below the icons define the bottom and top values (it's a double slider).

#### Fine tuning your slices

You can change slice points by dragging them. Move the pointer to one of the lines (upper waveform) and drag with the left mouse button.
There is an auto quantize feature that will move the slicepoints to the closest edge in the sound.
If you set the tempo or pitch to low values, slices will overlap - if this gets in your way you can use CTRL + left mouse button to change the decay of a slice, or use the DECAY envelope

#### Slice Preview

Click the right mouse button to preview a slice. If you click in the top loop, the sound will be played in the original tempo, and playback will loop the entire file.
Click in the lower loop to preview a slice with all length / volume / pitch / pan modifications

#### Wavetable Import / Export

Import
Type in the ID of the wave you want to import and click the wavetable icon. ID's are in hex - be aware that buzz sometimes displays the wavetable ID's in decimal - all ID's revert to hex when a file is reloaded however :-)
Note that you can move a loop that has been loaded as a file, to the wavetable by RIGHT-clicking the wavetable button - useful if you loaded from file, and want to move your bmx file to another computer.
Export
pressing the save-button with the little waveform label will export the slice arrangement (what you see in the bottom most waveform display) as well as all individual slices to wavetable slots starting from position 40(hex). The start position can be configured as an attribute - note that attributes are always decimal, but I guess most buzz users are quite skilled in hex / decimal conversions...
The slices are exported without any envelope modifications (pitch, volume, pan, etc.) - if you want each slice as they sound, re-import the exported loop into liveslice and do another export.

#### Buzz syncronization

By default LiveSlice will sync to the buzz tempo. However buzz does not report it's exact playback position to the machines so LiveSlice needs a little help to tighten the synchronization. To do this create a pattern that resets the playback position to slice 0 at regular intervals (there is a trigger parameter for that).
If you use alternating TPB values to control the groove, you need to create patterns with the "sliceposition" parameter, ranging from 0 the number of slices you are using.
If you change the bpm often, you need to turn off the BPM synchronization of live slice by setting the "Sync to bpm" parameter to zero.

#### Recording

There are two recording modes in LiveSlice.

- When you press record in buzz, all preset changes and mute/ unmute changes will be recorded to the current buzz pattern. This is useful for arranging your presets. First create a number of different grooves (presets) straight - stop-time - break - variations - silent, and then play them using the keyboard, and record them to a pattern.
- When the record button in liveslice is pressed, everything you hear will be recorded to presets 25-32 (the last row of presets). The recording continues, overwrites existing presets, until the record button is pressed again.

#### Keyboard shortcuts

Preset control
the preset shortcuts are layd out as on the screen:
the first row of keys (1-8) selects the first row of presets (1-8)
the second row of keys (a-k) selects the second row of presets (9-16)
etc.
Save preset: hold down SHIFT while pressing the corresponding key to
Slide display mode: TAB
Toggle Mute: Return
Toggle Randomize: SPACE
Toggle Recording: [.] (the dot)
Envelope values: Arrow keys (up/down changes value, left/right selects slice)

#### Parameter desription

In addition to the GUI, Live Slice can be controlled by various buzz parameters

- Sync to bpm
  Can be used to disable sync to buzz tempo
- Playback pos
  Forces live slice to play the slice at a particular position in current arrangement
- Current preset
  Switch to one of the 16 presets
- Manual
  Override the preset in the GUI (tells live slice not to read from the preset)
- Play slice
  Manually play a particular slice, overriding the preset
- Reverse slice
  reverses the slice about to be played
- Wavetable slot
  defines the wavetable slot for the import function
- Import wave
  from selected wavetable slot
- Randomize
  randomiz the slices in the GUI
- Revert
  go back to linear ordering of slices
- Global Pitch
  A note that controls the global pitch (C-4 is the default)
- Inertia
  not yet implemented
- Reset position
  starts playing back from position 0 in the slice arrangement
- Mute
  mutes the sound

#### Track parameters (commands)

Each track contains a caommand / value pair. Possible commands are:

cmd | description | value
--- | --- | ---
00 | load wavetable | slot
01 | num. measures | 1-4
02 | num. slices | 4-32
03 | quantize | sensitivity (0-254)
10 | randomize envelope | envelope 1-8 (1: vol. 2: pan, etc)
11 | reset envelope | 1-8
12 | set evelope to "rising" | 1-8
13 | set evelope to "falling" | 1-8
14 | set evelope to "gap1" | 1-8
15 | set evelope to "gap2" | 1-8
16 | edit envelope | 1-8
17 | show envelope | 1-8
18 | hide envelope | 1-8
1A | set minimum envelope value | 0-254
1B | set maximum envelope value | 0-254

#### Attributes:

Internal tempo
Pr. default liveslice will follow the buzz tempo, and will do some calculations on bpm changes - this is not good if you use bpm changing groovemachines. Therefore you can use this to disable bpm sync and have liveslice define it's own bpm
Crossfade length
Each slice is faded in and out to avoid clicks in the sound. The slices are faded in before they actually start, to avoid getting slow attacks (on snares for instance), but maintain accurate timing. This attribute defines the lenght of these fades
Pitch envelope range
In semitones - up to 240 semitones ! good to turn everything into clicks
Interpolation
0 = none (cool lofi sound)
1 = simple linear interpolation
First wavetable slot for export:
defines the first slot for the export function
Play preview:
remember to disable previews if you want to load waves in a live situation
Disable double buffering:
saves CPU, display might flicker a bit - use this if you have to use the MME driver and / or your computer is slow
Cut slices on end:
If the pitch is lowered one octave, all slices are twice as long - this can be changed using the length envelope, or by setting this attribute to 1 and force all slices to be muted before the next slice starts.

#### Need more LiveSlice?

Why not try LiveSlice VST - the next step in the slicer evolution. It has tons of new features:

- a full sequencer with multiple tracks
- time stretching
- auto slice and wav. editing
- multiple outputs
- audio recording
- imports industry standard loops

all this without sacrificing the speed of the workflow and the ease of use that you like from the buzz version.

All this comes at a price of course, but it's a very reasonable one :) I'm not in the habit of ripping off poor musicians like myself, and the money does indeed help to encourage future development (as you can see from the new feature set).