PDA

View Full Version : K2 Script for GPO



br1252
12-07-2005, 12:23 PM
Something I cobbled together from different things...

-- Bob


{GPO Kontrol - Kontakt 2 script Bob Richards bob@ndpcci.com

A handy little script for GPO orchestra (www.garritan.com)

mod current mod wheel setting (resets to 64 on all notes off) [cc 1]
porta current portamento setting [cc 20]
length currrent length setting [cc 21]
tune current tune setting [cc 22]
timbre current timbre setting [cc 23]

vol percentage of received midi 7 cc (volume) to apply to mod setting [cc 75]
(Remember to check Vol/Pan in Instrument Options and Auto
expr percentage of received midi 11 cc (expression) to apply to mod setting [cc 76]
vel percentage of received note velocity to apply [cc 77]
velmod percentage of received velocity to apply as mod wheel [cc 78]

timing percentage of timing delay to use for humanization [cc 25]
tuning percentage of tuning change to use for humanization [cc 26]
velocity percentage of velocity change to use for humanization [cc 27]
volume percentage of volume change to use for humanization [cc 28]

legato current legato status [cc 64]
(Remember to set the CC64 as CC only in Instrument Options)
defaults set controls to defaults
Humanize quick setting menu for different huminization settings

}

on init
declare ui_label $info1 (1,2)
set_text ($info1, "GPO: 1,20,21,22,23")
declare ui_label $info2 (1,2)
set_text ($info2, "MIDI (%): 75,76,77,78")
declare ui_label $info3 (1,2)
set_text ($info3, "Humanize (%): 25,26,27,28")
declare ui_button $legato
declare ui_knob $vol (0,100,1)
declare ui_knob $expr (0,100,1)
declare ui_knob $vel (0,100,1)
declare ui_knob $velmod (0,100,1)
declare ui_knob $mod (0,127,1)
declare ui_knob $porta (0,127,1)
declare ui_knob $length (0,127,1)
declare ui_knob $tune (0,127,1)
declare ui_knob $timbre (0,127,1)

declare ui_knob $timing (0,100,1)
declare ui_knob $tuning (0,100,1)
declare ui_knob $velocity (0,100,1)
declare ui_knob $volume (0,100,1)
declare ui_button $defaults

declare ui_menu $preset
add_menu_item ($preset,"On the spot",0)
add_menu_item ($preset,"Human touch",1)
add_menu_item ($preset,"Slight but tight",2)
add_menu_item ($preset,"Old rusty tunes",3)
add_menu_item ($preset,"Drunk driver",4)
add_menu_item ($preset,"Total desaster",5)
add_menu_item ($preset,"GPO Winds",6)
add_menu_item ($preset,"GPO Brass",7)
add_menu_item ($preset,"GPO Percussion",8)
add_menu_item ($preset,"GPO Strings",9)

move_control ($info1,1,1)
move_control ($info2,1,3)
move_control ($info3,1,5)
move_control ($vol,2,3)
move_control ($expr,3,3)
move_control ($vel,4,3)
move_control ($velmod,5,3)
move_control ($timing,2,7)
move_control ($tuning,3,7)
move_control ($velocity,4,7)
move_control ($volume,5,7)
move_control ($legato,6,3)
move_control ($defaults,6,5)
move_control ($preset,6,6)

declare $first
declare $new_time
declare $new_vel
declare $new_vol
declare $new_tune
declare $new_event

$mod:=64
$porta:= 0
$length:= 50
$tune:= 0
$timbre:= 0
$legato:=0
$vol:=0
$expr:=0
$vel:=0
$velmod:=0
$timing:=0
$velocity:=0
$tuning:=0
$volume:=0
$first:=1

make_persistent ($mod)
make_persistent ($porta)
make_persistent ($length)
make_persistent ($tune)
make_persistent ($timbre)
make_persistent ($legato)
make_persistent ($vol)
make_persistent ($expr)
make_persistent ($vel)
make_persistent ($velmod)
make_persistent ($timing)
make_persistent ($velocity)
make_persistent ($tuning)
make_persistent ($volume)
make_persistent ($preset)

message("")
end on

on note
{handle setting values after reloading instrument, but do this just once on first note recieved}
if ($first=1)
set_controller (1,$mod)
set_controller (20,$porta)
set_controller (21,$length)
set_controller (22,$tune)
set_controller (23,$timbre)
if ($legato>1)
set_controller (64,127)
else
set_controller (64,0)
end if
$first:=0
end if

{now handle note changes}
ignore_event ($EVENT_ID)

$new_time:=random (0,$timing * 1000)
$new_vel:=$EVENT_VELOCITY + (random (-127,127) * $Velocity / 200)
$new_tune := random (-1000,1000) * $tuning
$new_vol:=random (-60,60) * $volume

{set velocity and make sure it is in range}
if ($vel>1)
$new_vel:=$new_vel * $vel/100
end if
if ($new_vel>127)
$new_vel:=127
else
if ($new_vel<1)
$new_vel:=1
end if
end if

{handle mod wheel following velocity}
if ($velmod>1)
$mod:=$EVENT_VELOCITY * $velmod/100
if ($mod>127)
$mod:=127
else
if ($mod<1)
$mod:=1
end if
end if
set_controller (1,$mod)
end if

{now play the new note event}
wait($new_time+1)
$new_event:=play_note ($EVENT_NOTE,$new_vel,0,-1)
change_tune ($new_event,$new_tune,1)
change_vol ($new_event,$new_vol,1)
end on

{handle when the user interface controls are touched}
on ui_control ($mod)
set_controller (1,$mod)
end on

on ui_control ($porta)
set_controller (20,$porta)
end on

on ui_control ($length)
set_controller (21,$length)
end on

on ui_control ($tune)
set_controller (22,$tune)
end on

on ui_control ($timbre)
set_controller (23,$timbre)
end on

on ui_control ($legato)
if ($legato>1)
set_controller (64,127)
else
set_controller (64,0)
end if
end on

on ui_control ($defaults)
$mod:=64
$porta:= 0
$length:= 50
$tune:= 0
$timbre:= 0
$legato:=0
$vol:=0
$expr:=0
$vel:=0
$velmod:=0
$timing:=0
$velocity:=0
$tuning:=0
$volume:=0
$first:=1
$preset:=0
$defaults:=0
message("")
end on

on ui_control ($preset)
select ($preset)
case 0
$timing:=0
$velocity:=0
$tuning:=0
$volume:=0
$timbre:=0
$tune:=0
case 1
$timing:=10
$velocity:=5
$tuning:=15
$volume:=10
$timbre:=0
$tune:=0
case 2
$timing:=0
$velocity:=15
$tuning:=15
$volume:=20
$timbre:=0
$tune:=0
case 3
$timing:=9
$velocity:=25
$tuning:=65
$volume:=40
$timbre:=0
$tune:=0
case 4
$timing:=70
$velocity:=20
$tuning:=80
$volume:=50
$timbre:=0
$tune:=0
case 5
$timing:=100
$velocity:=100
$tuning:=100
$volume:=100
$timbre:=0
$tune:=0
case 6
$timing:=5
$velocity:=5
$tuning:=0
$volume:=5
$timbre:=5
$tune:=5
case 7
$timing:=10
$velocity:=5
$tuning:=0
$volume:=5
$timbre:=15
$tune:=10
case 8
$timing:=10
$velocity:=10
$tuning:=0
$volume:=10
$timbre:=10
$tune:=0
case 9
$timing:=5
$velocity:=5
$tuning:=0
$volume:=10
$timbre:=10
$tune:=10
end select
{force a first time init again}
$first:=1
end on

{handle the update of script knobs when external CC events are received}
on controller
if (%CC_TOUCHED[1]=1)
$mod:=%CC[1]
end if

if (%CC_TOUCHED[20]=1)
$porta:=%CC[20]
end if

if (%CC_TOUCHED[21]=1)
$length:=%CC[21]
end if

if (%CC_TOUCHED[22]=1)
$tune:=%CC[22]
end if

if (%CC_TOUCHED[23]=1)
$timbre:=%CC[23]
end if

if (%CC_TOUCHED[64]=1)
if (%CC[64]>1)
$legato:=1
else
$legato:=0
end if
end if

if (%CC_TOUCHED[25]=1)
$timing:=%CC[25] * 100 / 127
end if

if (%CC_TOUCHED[26]=1)
$tuning:=%CC[26] * 100 / 127
end if

if (%CC_TOUCHED[27]=1)
$velocity:=%CC[27] * 100 / 127
end if

if (%CC_TOUCHED[28]=1)
$volume:=%CC[28] * 100 / 127
end if

if (%CC_TOUCHED[7]=1 and $vol>0)
$mod:=%CC[7] * $vol/100
if ($mod>127)
$mod:=127
else
if ($mod<1)
$mod:=1
end if
end if
set_controller (1,$mod)
end if

if (%CC_TOUCHED[11]=1 and $expr>0)
$mod:=%CC[11] * $expr/100
if ($mod>127)
$mod:=127
else
if ($mod<1)
$mod:=1
end if
end if
set_controller (1,$mod)
end if

if (%CC_TOUCHED[75]=1)
$vol:=%CC[75] * 100 / 127
end if

if (%CC_TOUCHED[76]=1)
$expr:=%CC[76] * 100 / 127
end if

if (%CC_TOUCHED[77]=1)
$vel:=%CC[77] * 100 / 127
end if

if (%CC_TOUCHED[78]=1)
$velmod:=%CC[78] * 100 / 127
end if

{cc121 or cc123 are resets, set cc 1 back to default, also do first time init again}
if (%CC_TOUCHED[121]=1 or %CC_TOUCHED[123]=1)
$mod:=64
$first:=1
end if
end on

Theodor
04-16-2006, 10:42 PM
What does this do? I am collecting these scripts for my little K2 page and a short description would be great ;)

br1252
04-17-2006, 09:38 AM
I sent you an email on 3/27 with this script and I am glad that you interested in it.

Here is a further break down of the controls.

-- Bob


This script can make it easier for GPO users to "bridge the gap" between standard midi methods of volume control vs GPO mod method as well as doing some on-the-fly midi translations, velocity scaling and humanization.

mod current mod wheel setting (resets to 64 on all notes off) [cc 1]

- This allows an initial setting for the mod (volume) level instead of zero (no sound).

porta current portamento setting [cc 20]

- Standard porta control used by GPO.

length current length setting [cc 21]

- Standard length control used by GPO.

tune current tune setting [cc 22]

- Standard tune control used by GPO.

timbre current timbre setting [cc 23]

- Standard timbre control used by GPO.

vol percentage of received midi 7 cc (volume) to apply to mod setting [cc 75]
(Remember to check Vol/Pan in Instrument Options and Auto

- Translates midi volume messages to mod messages and is controllable with midi cc 75.

expr percentage of received midi 11 cc (expression) to apply to mod setting [cc 76]

- Translates midi expression messages to mod messages and is controllable with midi cc 76.

vel percentage of received note velocity to apply [cc 77]

- Scales note velocity and is controllable with midi cc 77.

velmod percentage of received velocity to apply as mod wheel [cc 78]

- Translates and scales note velocity to mod messages and is controllable with midi cc 78.

timing percentage of timing delay to use for humanization [cc 25]

- Amount of timing humanization to apply and is controllable with midi cc 25.

tuning percentage of tuning change to use for humanization [cc 26]

- Amount of tuning humanization to apply and is controllable with midi cc 26.

velocity percentage of velocity change to use for humanization [cc 27]

- Amount of velocity humanization to apply and is controllable with midi cc 27.

volume percentage of volume change to use for humanization [cc 28]

- Amount of volume humanization to apply and is controllable with midi cc 28.

legato current legato status [cc 64]
(Remember to set the CC64 as CC only in Instrument Options)

- Standard legato control used by GPO.

defaults set controls to defaults

- Sets all controls to the default settings.

Humanize quick setting menu for different humanization settings

- A quick menu for setting humanization.



{GPO Kontrol - Kontakt 2 script Bob Richards bob@ndpcci.com

A handy little script for GPO orchestra (www.garritan.com)

mod current mod wheel setting (resets to 64 on all notes off) [cc 1]
porta current portamento setting [cc 20]
length current length setting [cc 21]
tune current tune setting [cc 22]
timbre current timbre setting [cc 23]

vol percentage of received midi 7 cc (volume) to apply to mod setting [cc 75]
(Remember to check Vol/Pan in Instrument Options and Auto
expr percentage of received midi 11 cc (expression) to apply to mod setting [cc 76]
vel percentage of received note velocity to apply [cc 77]
velmod percentage of received velocity to apply as mod wheel [cc 78]

timing percentage of timing delay to use for humanization [cc 25]
tuning percentage of tuning change to use for humanization [cc 26]
velocity percentage of velocity change to use for humanization [cc 27]
volume percentage of volume change to use for humanization [cc 28]

legato current legato status [cc 64]
(Remember to set the CC64 as CC only in Instrument Options)
defaults set controls to defaults
Humanize quick setting menu for different huminzation settings

}

on init
declare ui_label $info1 (1,2)
set_text ($info1, "GPO: 1,20,21,22,23")
declare ui_label $info2 (1,2)
set_text ($info2, "MIDI (%): 75,76,77,78")
declare ui_label $info3 (1,2)
set_text ($info3, "Humanize (%): 25,26,27,28")
declare ui_button $legato
declare ui_knob $vol (0,100,1)
declare ui_knob $expr (0,100,1)
declare ui_knob $vel (0,100,1)
declare ui_knob $velmod (0,100,1)
declare ui_knob $mod (0,127,1)
declare ui_knob $porta (0,127,1)
declare ui_knob $length (0,127,1)
declare ui_knob $tune (0,127,1)
declare ui_knob $timbre (0,127,1)

declare ui_knob $timing (0,100,1)
declare ui_knob $tuning (0,100,1)
declare ui_knob $velocity (0,100,1)
declare ui_knob $volume (0,100,1)
declare ui_button $defaults

declare ui_menu $preset
add_menu_item ($preset,"On the spot",0)
add_menu_item ($preset,"Human touch",1)
add_menu_item ($preset,"Slight but tight",2)
add_menu_item ($preset,"Old rusty tunes",3)
add_menu_item ($preset,"Drunk driver",4)
add_menu_item ($preset,"Total desaster",5)
add_menu_item ($preset,"GPO Winds",6)
add_menu_item ($preset,"GPO Brass",7)
add_menu_item ($preset,"GPO Percussion",8)
add_menu_item ($preset,"GPO Strings",9)

move_control ($info1,1,1)
move_control ($info2,1,3)
move_control ($info3,1,5)
move_control ($vol,2,3)
move_control ($expr,3,3)
move_control ($vel,4,3)
move_control ($velmod,5,3)
move_control ($timing,2,7)
move_control ($tuning,3,7)
move_control ($velocity,4,7)
move_control ($volume,5,7)
move_control ($legato,6,3)
move_control ($defaults,6,5)
move_control ($preset,6,6)

declare $first
declare $new_time
declare $new_vel
declare $new_vol
declare $new_tune
declare $new_event

$mod:=64
$porta:= 0
$length:= 50
$tune:= 0
$timbre:= 0
$legato:=0
$vol:=0
$expr:=0
$vel:=0
$velmod:=0
$timing:=0
$velocity:=0
$tuning:=0
$volume:=0
$first:=1

make_persistent ($mod)
make_persistent ($porta)
make_persistent ($length)
make_persistent ($tune)
make_persistent ($timbre)
make_persistent ($legato)
make_persistent ($vol)
make_persistent ($expr)
make_persistent ($vel)
make_persistent ($velmod)
make_persistent ($timing)
make_persistent ($velocity)
make_persistent ($tuning)
make_persistent ($volume)
make_persistent ($preset)

message("")
end on

on note
{handle setting values after reloading instrument, but do this just once on first note recieved}
if ($first=1)
set_controller (1,$mod)
set_controller (20,$porta)
set_controller (21,$length)
set_controller (22,$tune)
set_controller (23,$timbre)
if ($legato>1)
set_controller (64,127)
else
set_controller (64,0)
end if
$first:=0
end if

{now handle note changes}
ignore_event ($EVENT_ID)

$new_time:=random (0,$timing * 1000)
$new_vel:=$EVENT_VELOCITY + (random (-127,127) * $Velocity / 200)
$new_tune := random (-1000,1000) * $tuning
$new_vol:=random (-60,60) * $volume

{set velocity and make sure it is in range}
if ($vel>1)
$new_vel:=$new_vel * $vel/100
end if
if ($new_vel>127)
$new_vel:=127
else
if ($new_vel<1)
$new_vel:=1
end if
end if

{handle mod wheel following velocity}
if ($velmod>1)
$mod:=$EVENT_VELOCITY * $velmod/100
if ($mod>127)
$mod:=127
else
if ($mod<1)
$mod:=1
end if
end if
set_controller (1,$mod)
end if

{now play the new note event}
wait($new_time+1)
$new_event:=play_note ($EVENT_NOTE,$new_vel,0,-1)
change_tune ($new_event,$new_tune,1)
change_vol ($new_event,$new_vol,1)
end on

{handle when the user interface controls are touched}
on ui_control ($mod)
set_controller (1,$mod)
end on

on ui_control ($porta)
set_controller (20,$porta)
end on

on ui_control ($length)
set_controller (21,$length)
end on

on ui_control ($tune)
set_controller (22,$tune)
end on

on ui_control ($timbre)
set_controller (23,$timbre)
end on

on ui_control ($legato)
if ($legato>1)
set_controller (64,127)
else
set_controller (64,0)
end if
end on

on ui_control ($defaults)
$mod:=64
$porta:= 0
$length:= 50
$tune:= 0
$timbre:= 0
$legato:=0
$vol:=0
$expr:=0
$vel:=0
$velmod:=0
$timing:=0
$velocity:=0
$tuning:=0
$volume:=0
$first:=1
$preset:=0
$defaults:=0
message("")
end on

on ui_control ($preset)
select ($preset)
case 0
$timing:=0
$velocity:=0
$tuning:=0
$volume:=0
$timbre:=0
$tune:=0
case 1
$timing:=10
$velocity:=5
$tuning:=15
$volume:=10
$timbre:=0
$tune:=0
case 2
$timing:=0
$velocity:=15
$tuning:=15
$volume:=20
$timbre:=0
$tune:=0
case 3
$timing:=9
$velocity:=25
$tuning:=65
$volume:=40
$timbre:=0
$tune:=0
case 4
$timing:=70
$velocity:=20
$tuning:=80
$volume:=50
$timbre:=0
$tune:=0
case 5
$timing:=100
$velocity:=100
$tuning:=100
$volume:=100
$timbre:=0
$tune:=0
case 6
$timing:=5
$velocity:=5
$tuning:=0
$volume:=5
$timbre:=5
$tune:=5
case 7
$timing:=10
$velocity:=5
$tuning:=0
$volume:=5
$timbre:=15
$tune:=10
case 8
$timing:=10
$velocity:=10
$tuning:=0
$volume:=10
$timbre:=10
$tune:=0
case 9
$timing:=5
$velocity:=5
$tuning:=0
$volume:=10
$timbre:=10
$tune:=10
end select
{force a first time init again}
$first:=1
end on

{handle the update of script knobs when external CC events are received}
on controller
if (%CC_TOUCHED[1]=1)
$mod:=%CC[1]
end if

if (%CC_TOUCHED[20]=1)
$porta:=%CC[20]
end if

if (%CC_TOUCHED[21]=1)
$length:=%CC[21]
end if

if (%CC_TOUCHED[22]=1)
$tune:=%CC[22]
end if

if (%CC_TOUCHED[23]=1)
$timbre:=%CC[23]
end if

if (%CC_TOUCHED[64]=1)
if (%CC[64]>1)
$legato:=1
else
$legato:=0
end if
end if

if (%CC_TOUCHED[25]=1)
$timing:=%CC[25] * 100 / 127
end if

if (%CC_TOUCHED[26]=1)
$tuning:=%CC[26] * 100 / 127
end if

if (%CC_TOUCHED[27]=1)
$velocity:=%CC[27] * 100 / 127
end if

if (%CC_TOUCHED[28]=1)
$volume:=%CC[28] * 100 / 127
end if

if (%CC_TOUCHED[7]=1 and $vol>0)
$mod:=%CC[7] * $vol/100
if ($mod>127)
$mod:=127
else
if ($mod<1)
$mod:=1
end if
end if
set_controller (1,$mod)
end if

if (%CC_TOUCHED[11]=1 and $expr>0)
$mod:=%CC[11] * $expr/100
if ($mod>127)
$mod:=127
else
if ($mod<1)
$mod:=1
end if
end if
set_controller (1,$mod)
end if

if (%CC_TOUCHED[75]=1)
$vol:=%CC[75] * 100 / 127
end if

if (%CC_TOUCHED[76]=1)
$expr:=%CC[76] * 100 / 127
end if

if (%CC_TOUCHED[77]=1)
$vel:=%CC[77] * 100 / 127
end if

if (%CC_TOUCHED[78]=1)
$velmod:=%CC[78] * 100 / 127
end if

{cc121 or cc123 are resets, set cc 1 back to default, also do first time init again}
if (%CC_TOUCHED[121]=1 or %CC_TOUCHED[123]=1)
$mod:=64
$first:=1
end if
end on

br1252
04-17-2006, 09:49 AM
Btw I also did this for GPO.

This script will take any left hand note and alternate
with the right hand as well as adjust the delay,
velocity and sample offset by the user selected amounts.

It helps to remove the machine gun effect from timpani rolls.

-- Bob


{************************************************* *****
"Timpani Left Right" script for GPO "Timpani KS.nki"
Bob Richards bob@ndpcci.com

This script will take any left hand note and alternate
with the right hand as well as adjust the delay,
velocity and sample offset by the user selected amounts.

Note: offset (sample_offset) only works when instrument
source is "sampler", not DFD!
************************************************** *****}

on init
{Variable to keep track if the next note is played with the left or right hand}
declare $left:=1

{Define knob so that we can set random delay offset}
declare ui_knob $delay(0,100000,1000000)

{Define knob so that we can set the random velocity offset}
declare ui_knob $velocity(0,32,1)

{Define knob so that we can set the play_note sample offset}
declare ui_knob $offset(0,1000000,1000000)

{Label text}
declare ui_label $label(2,2)
set_text($label,"'offset' requires sampler, not DFD")
add_text_line($label,"also try adjusting ADSR release")
move_control ($label,4,1)

{Other variable(s)}
declare $new_delay
declare $new_velocity

{Make knob values persistent}
make_persistent($delay)
make_persistent($offset)

{Clear error message}
message("")
end on

on note
{Only process for notes that are in the left hand}
if ($EVENT_NOTE>=36 and $EVENT_NOTE<=58)
{Ignore the original note event}
ignore_event($EVENT_ID)

{Add initial randomn delay}
$new_delay:=random(0,$delay)
if ($new_delay>0)
wait(random(0,$delay))
end if

{Start with the current event velocity}
$new_velocity:=$EVENT_VELOCITY
{Get a valid random velocity value if user selected a non-zero velocity}
if ($velocity>0)
$new_velocity:=$EVENT_VELOCITY+random(-1*$velocity,$velocity)
if ($new_velocity<0)
$new_velocity:=0
end if
if ($new_velocity>127)
$new_velocity:=127
end if
end if

{Do we play the left or right hand?}
if ($left=1)
{Left hand, play note as-is}
play_note($EVENT_NOTE,$new_velocity,random(-1*$offset,$offset),-1)
{Set flag so that next note plays with right hand}
$left:=0
else
{Right hand, play note two octaves higher}
play_note($EVENT_NOTE+24,$new_velocity,random(-1*$offset,$offset),-1)
{Set flag so that next note plays with left hand}
$left:=1
end if
end if
end on

Garritan
04-17-2006, 10:23 AM
Bob,

What a nice Easter surprise. We're going to check this out today. This looks like it would be a great benefit to GPO users who use Kontakt 2. Thanks for doing these scripts and sharing them with us.

Gary Garritan

Nick Batzdorf
04-17-2006, 12:29 PM
Bob, how did you learn to write those scripts? Is there somewhere you can learn the language?

br1252
04-17-2006, 12:42 PM
K2 comes with a scipting reference manual in pdf format. It is very limited and just gives basic syntax. I am a software engineer and programming in k2 script is just another language for me. The tricky part is trying to figure out what it is that the scripting can and cannot do.

The best way to learn is to look at other scripts that have been written to see what and how things can be done.

You can look at most of the scripts that came with k2 using the "edit" button (and also user scripts).

Check out these links for user scripts:

http://www.theokrueger.com/kontakt2.htm
http://nilsliberg.se/ksp/scripts/scripts.html#partmaker

Also check out the new k2 script forum at http://vi[hyphen]control.net/forum/

(replace [hyphen] with a hypen, I can't seem to get this editor to take it).

-- Bob

Hardy Heern
04-17-2006, 12:44 PM
Bob, how did you learn to write those scripts? Is there somewhere you can learn the language?

I believe that there's a magazine called VI magazine which will be running a series in the near future......:)

Seriously though, I recently followed the kotori thread http://www.northernsounds.com/forum/showthread.php?t=44299 and also Big Bob. Quite a lot of useful stuff on kotori's site.

I'm always impressed and very grateful for the generosity of these guys who produce scripts and samples which they share for nothing. It's almost all in the scripts these days as long as the samples are half decent.

I would also like to do some script writing, but there are some other things I need to do first!:confused:

Thanks again

Frank

Nick Batzdorf
04-17-2006, 02:37 PM
Thanks Bob. And of course I know about The Scripts.

Hardy, that's too nerdy even for us. :) We'd lose readers all over the place.

But we do have an article coming up on scripting.

Cantabile
04-18-2006, 06:19 AM
I have never been able to get GPO into K2 without cracks and pops and I have no clue why. Velocity based instruments however seem to work fine on the other hand.
Anyone have a clue as to why this happens or a possible solution?

br1252
04-18-2006, 09:31 AM
Try this:

1) Turn off multiprocessor support in K2 options.

2) After loading a GPO patch go to the patches' effects and remove the eq.

Let us know what happens please.

-- Bob

br1252
04-18-2006, 10:08 AM
If you give me a specification of what you want I will look at it. You will need to help me test it too.

-- Bob

Cantabile
04-18-2006, 05:49 PM
Try this:

1) Turn off multiprocessor support in K2 options.

2) After loading a GPO patch go to the patches' effects and remove the eq.

Let us know what happens please.

-- Bob
Thanks a ton, that did it.

Curious, will this have a performance effect at all? More cpu or?

br1252
04-18-2006, 09:30 PM
Which did you do (or both)?

If you have a hyper-threading cpu than turning off multi-processor support will increase performance. If you have dual CPU's this will descrease performance.

-- Bob

Cantabile
04-18-2006, 10:56 PM
Which did you do (or both)?

If you have a hyper-threading cpu than turning off multi-processor support will increase performance. If you have dual CPU's this will descrease performance.

-- Bob
Turned off multi processor support. I have an older HT processor so I guess that means better performance;) Thanks.

I did not try turning off EQ yet as I was happy enough with just being able to load without the pops on mod wheel.

I'll try that.

Thanks again

br1252
04-18-2006, 11:03 PM
I would keep the EQ on, it does make the patch sound better. It's just that in some circumstances you may have to turn it off to clear up pops and crackles.

The reason that turning off multi-processor support on HT CPUs makes a difference is that HT is running as two CPUs but with only ONE math processor. This causes a bottom neck when processing a lot of math in HT mode. Turning it off will get you the full math processor speed. As you can hear this does work.

-- Bob

p.s. You do not need to reconfigure the OS for non HT.

Jibrish
04-19-2006, 02:38 PM
Thanks for these scripts, and all of the good information.

Should I turn off dual processing on my HP 64 AMD 3200+? I don't think it's dual processor, but I guess I don't really know.

br1252
04-19-2006, 03:45 PM
I wouldn't change anything if you don't have a problem. Not being familiar with the AMD CPU I cannot make a recommendation.

Are you having a problem with sound generation?

-- Bob

Jibrish
04-19-2006, 03:58 PM
Thanks for getting back Bob.

Not having a problem really, just looking for ways to get all I can out of it. It's nice to be able to 'play in' a piano part out amongst the trees. I have noticed though that K2 seems to run up the CPU and stall more than the RAM numbers would lead me to think. Wonder if the upcoming 2.1 update might improve that though.

musicpete
12-08-2006, 02:45 AM
Thank you for this script! I will try it out soon!