hsc3-0.21: Help/Ugen/rSmplrIndex.help.hs
-- rSmplrIndex ; event control ; stereo ; requires=b0 ; loaded bosendorfer (or equivalent) sample data
let f (_,g,x,y,z,_,_,_,_,_,_) =
let s_mnn = [21,23,24,26,28,29,31,33,35,36,38,40,41,43,45,47,48,50,52,53,55,57,59
,60,62,64,65,67,69,71,72,74,76,77,79,81,83,84,86,88,89,91,93,95,96,98
,100,101,103,105,107,108]
tbl = asLocalBufId 'α' s_mnn
mnn = x * 88 + 21
mnn0 = latch mnn g
rt = midiRatio ((mnn - mnn0) * y)
(buf,rt0) = unmce2 (X.rSmplrIndex kr tbl (bufFrames kr tbl) mnn0)
b0 = control kr "b0" 100
sig = playBuf 2 ar (b0 + buf) (bufRateScale kr (b0 + buf) * rt0 * rt) g 0 NoLoop DoNothing
in sig * z * lagUD g 0 4
in mix (voicer 16 f) * control kr "gain" 1
-- rSmplrIndex ; event control ; stereo ; requires=tbl,b0 ; data table and loaded sample data
let f (_,g,x,y,z,_,_,_,_,_,_) =
let tbl = control kr "tbl" 0
lhs = bufRd 1 kr tbl 0 NoLoop NoInterpolation
rhs = bufRd 1 kr tbl (bufFrames kr tbl - 1) NoLoop NoInterpolation
mnn = x * (rhs - lhs) + lhs
mnn0 = latch mnn g
rt = midiRatio ((mnn - mnn0) * y)
(buf,rt0) = unmce2 (X.rSmplrIndex kr tbl (bufFrames kr tbl) mnn0)
b0 = control kr "b0" 100
sig = playBuf 2 ar (b0 + buf) (bufRateScale kr (b0 + buf) * rt0 * rt) g 0 NoLoop DoNothing
in sig * z * lagUD g 0 4
in mix (voicer 16 f) * control kr "gain" 1
-- rSmplrIndex ; event control ; mono ; requires=tbl,b0 data table and loaded sample data
let f (_,g,x,y,z,o,_,_,_,_,_) =
let tbl = control kr "tbl" 0
lhs = bufRd 1 kr tbl 0 NoLoop NoInterpolation
rhs = bufRd 1 kr tbl (bufFrames kr tbl - 1) NoLoop NoInterpolation
mnn = x * (rhs - lhs) + lhs
mnn0 = latch mnn g
rt = midiRatio ((mnn - mnn0) * y)
(buf,rt0) = unmce2 (X.rSmplrIndex kr tbl (bufFrames kr tbl) mnn0)
b0 = control kr "b0" 100
sig = playBuf 1 ar (b0 + buf) (bufRateScale kr (b0 + buf) * rt0 * rt) g 0 NoLoop DoNothing
in pan2 sig (o * 2 - 1) (z * lagUD g 0.01 0.01)
in mix (voicer 16 f) * control kr "gain" 8
---- ; load bosdendorfer sample data
hsc3-smplr load pf --dyn=008 --b0=100
---- ; load SFZ sample data
import Sound.Osc {- hosc -}
import Sound.Sc3.Data.Sfz {- hsc3-data -}
sfz_fn = sfResolve "instr/bosendorfer/008.sfz"
sfz_fn = sfResolve "instr/farfisa/aad/dolce-8.sfz"
sfz_fn = sfResolve "instr/casacota/zell_1737_415_MeanTone5/8_i.sfz"
(ctl,glb,rgn) <- sfz_load_data sfz_fn
tbl = map ((\(k,_,_) -> k) . sfz_region_key) rgn
withSc3 (sendMessage (b_alloc_setn1 0 0 (map fromIntegral tbl)))
alloc_msg = zipWith (\b fn -> b_allocRead b fn 0 0) [100..] (map (sfz_region_sample_resolve sfz_fn ctl) rgn)
withSc3 (mapM_ async alloc_msg)