Granchild

love this script! even without the grid it’s immediately accessible, so many fun parameters to tweak.

2 Likes

I’ve had a great time with this script and a 128 grid. Agreed on power being important for the norns shield if you don’t want “underclocked” sounding glitches. One thing I don’t know about the grain engine is does it have an attack/release option or are they always hard stop and start. I ended up recording some short cello notes and getting a lot of ticks that sound like grains starting/stopping “discontinuously” instead of zero. I know the morphogene has a setting to smooth the grains out. Is there a way to do that using the engine under granchild?

For fun I recorded 4 of the same note and then just used pitch down / up to change tonality. With low density and rather small size it created a really nice rhythm. Can’t wait to keep exploring. Thanks.

2 Likes

It employs the GrainBuf ugen with its default grain envelope, which is a Hann window. Look elsewhere for cause of clicks…

The recording system seems like a good suspect, it is a little convoluted and funky. (captures to softcut buffer, writes buffer, reads buffer back in SC. All async operations with I think little protection against grain pos overlapping with regions of active buffer replacement.).

I might recommend implementing the recording path directly in the SC engine instead.

3 Likes

just a PSA that the filter resonance parameter is rq or the reciprocal of Q.

in other words, it is the bandwidth of the filter as a ratio of the cutoff frequency.

(this is true for most filter specs in supecollider, and also for the filters in softcut.)

so yea, rq==0 is rarely advisable since it’s requesting infinitely small bandwidth and will blow up or at least be very loud. i’d clamp the param at 0.001 or something. (softcut does this internally for its filters, at the level of the command handler, not the DSP.)

3 Likes

Now you tell me! :sweat_smile:

More seriously once I realised this was inverted ( and my hearing had recovered ) I worked up in it slowly there was a value resulted in slow decaying self oscillation and yes clamping somewhere after this value would be a good idea.

2 Likes

awesome script, kudos!
im trying to get it to work with Midigrid, but i have no succes in integrating it in the .lua script. itried in line 215 just before:

granchild_grid=granchild:new({grid_on=true,toggleable=true})

but i guess thats the wrong spot.
any help along the way would be greatly appreciated, thanks for this awesome script again!

1 Like

Put it in /granchild/lib/granchild.lua at line 18 as shown here:

-- initiate the grid
  local grid = include("midigrid/lib/mg_128")
  m.g=grid.connect()

(Edited to remove erroneous code for single alternative grids)

4 Likes

@thmshckr Launchpad users should use mg_128 for this script even if they only have a single launchpad. The two top left most buttons will let you swap between tracks 1-2 & tracks 3&4.

4 Likes

thx for quick reply, but grids wont light up. i put

local grid = include("midigrid/lib/mg_128")

in line 18 of the .lua, but no activity. maybe im doing smth wrong?

1 Like

Did you make the change to the grandchild.lua script in the lib directory? Took me a while to figure this out but got this working on a launchpad mini mk1.

1 Like

exactly THAT was the problem, works just fine now.

thx!

2 Likes

@infinitedigits
one bug went away with the norns OS update. :slight_smile:

noticing a strange other :bug: .
in voice one:
the last button (6th row third column) of the Active Area does not light up without several pushes.

and…it looks l spoke too soon…

the grid lockup happens again when trying to adjust the pitch on voice 1.

i captured the crash with maiden:

Summary

script load: /home/we/dust/code/granchild/granchild.lua

cleanup

script clear

including /home/we/dust/code/granchild/lib/granchild.lua

including /home/we/dust/code/granchild/lib/json.lua

script run

loading engine: ZGlut

reading PMAP /home/we/dust/data/granchild/granchild.pmap

m.read: /home/we/dust/data/granchild/granchild.pmap not read.

Engine.register_commands; count: 25

___ engine commands ___

cutoff if

delay_damp f

delay_diff f

delay_fdbk f

delay_mod_depth f

delay_mod_freq f

delay_size f

delay_time f

delay_volume f

density if

envscale if

gain if

gate ii

jitter if

overtones if

pitch if

q if

read is

seek if

send if

size if

speed if

spread if

subharmonics if

volume if

___ polls ___

amp_in_l

amp_in_r

amp_out_l

amp_out_r

cpu_avg

cpu_peak

phase_1

phase_2

phase_3

phase_4

pitch_in_l

pitch_in_r

script init

sample -

sample -

sample -

sample -

grid columns: 16

change_volume 1 1 0.3

change_volume 1 1 0.35

change_volume 1 1 0.4

change_volume 1 1 0.45

4

change_pitch_mod 1 -1 -3

3

change_pitch_mod 1 -1 -5

2

change_pitch_mod 1 -1 -7

1

change_pitch_mod 1 -1 -12

1

change_pitch_mod 1 -1 -12

switching!

i loaded the script.
no recorded sequence or audio.
tried changing volume and then adjusted the pitch and BAM…freeze.

just for good measure…i tested again on voice 1.
same scenario everything will make adjustments until i mess with the pitch…

Summary

?

pitch if

q if

read is

seek if

send if

size if

speed if

spread if

subharmonics if

volume if

___ polls ___

amp_in_l

amp_in_r

amp_out_l

amp_out_r

cpu_avg

cpu_peak

phase_1

phase_2

phase_3

phase_4

pitch_in_l

pitch_in_r

script init

sample -

sample -

sample -

sample -

grid columns: 16

change_volume 1 1 0.3

change_volume 1 1 0.35

change_volume 1 1 0.4

change_volume 1 1 0.45

change_volume 1 1 0.5

change_volume 1 1 0.55

change_volume 1 1 0.6

change_volume 1 1 0.65

change_speed 1 -1 -0.1

change_speed 1 -1 -0.2

change_speed 1 -1 -0.3

change_speed 1 -1 -0.4

change_speed 1 -1 -0.5

change_speed 1 -1 -0.6

change_speed 1 -1 -0.7

change_size 1 -1 4

change_size 1 -1 3

change_speed 1 -1 -0.8

change_speed 1 -1 -0.9

change_speed 1 1 -0.8

change_speed 1 1 -0.7

change_speed 1 1 -0.6

change_speed 1 1 -0.5

change_speed 1 -1 -0.6

change_speed 1 -1 -0.7

change_speed 1 -1 -0.8

change_speed 1 -1 -0.9

change_speed 1 -1 -1.0

change_speed 1 -1 -1.1

change_speed 1 -1 -1.2

change_speed 1 -1 -1.3

change_speed 1 1 -1.2

change_speed 1 1 -1.1

change_speed 1 1 -1.0

change_speed 1 1 -0.9

change_speed 1 1 -0.8

change_speed 1 1 -0.7

change_speed 1 1 -0.6

change_speed 1 1 -0.5

change_speed 1 1 -0.4

change_speed 1 1 -0.3

change_speed 1 1 -0.2

change_speed 1 1 -0.1

change_speed 1 1 0.0

change_speed 1 1 0.1

change_density_mod 1 1 13

change_density_mod 1 1 14

change_density_mod 1 1 15

change_density_mod 1 1 16

change_density_mod 1 1 17

change_size 1 1 4

change_size 1 1 5

change_size 1 1 6

change_size 1 1 7

4

change_pitch_mod 1 -1 -3

change_volume 1 1 0.7

change_volume 1 1 0.75

change_volume 1 1 0.8

change_volume 1 -1 0.75

change_volume 1 -1 0.7

change_volume 1 -1 0.65

change_volume 1 -1 0.6

change_volume 1 -1 0.55

change_volume 1 -1 0.5

change_volume 1 -1 0.45

change_volume 1 1 0.5

change_volume 1 1 0.55

change_volume 1 1 0.6

change_volume 1 1 0.65

change_volume 1 1 0.7

change_volume 1 1 0.75

change_volume 1 1 0.8

3

change_pitch_mod 1 -1 -5

2

change_pitch_mod 1 -1 -7

switching!

and ONE more test for good measure… :stuck_out_tongue:

  • reloaded the script.
  • no recordings.
  • made adjustments on all four voices
    CRASH as soon as i messed with pitch on voice 1.
Summary

?

change_volume 4 -1 0.2

change_volume 4 -1 0.15

change_volume 4 -1 0.1

change_volume 4 1 0.15

change_volume 4 1 0.2

change_volume 4 1 0.25

change_volume 4 1 0.3

change_volume 4 1 0.35

change_volume 3 -1 0.2

change_volume 3 -1 0.15

change_volume 3 -1 0.1

change_volume 3 -1 0.05

change_volume 3 1 0.1

change_volume 3 1 0.15

change_volume 3 1 0.2

change_volume 3 1 0.25

change_volume 2 -1 0.2

change_volume 2 -1 0.15

change_volume 2 -1 0.1

change_volume 2 -1 0.05

change_volume 2 -1 0.0

change_volume 2 1 0.05

change_volume 2 1 0.1

change_volume 2 1 0.15

change_volume 1 -1 0.2

change_volume 1 -1 0.15

change_volume 1 1 0.2

change_volume 1 1 0.25

change_volume 1 1 0.3

change_volume 1 1 0.35

3

change_pitch_mod 4 -1 -5

2

change_pitch_mod 4 -1 -7

1

change_pitch_mod 4 -1 -12

2

change_pitch_mod 4 1 -7

3

change_pitch_mod 4 1 -5

1

change_pitch_mod 3 -1 -12

1

change_pitch_mod 3 -1 -12

1

change_pitch_mod 3 -1 -12

2

change_pitch_mod 3 1 -7

3

change_pitch_mod 3 1 -5

4

change_pitch_mod 2 -1 -3

3

change_pitch_mod 2 -1 -5

2

change_pitch_mod 2 -1 -7

3

change_pitch_mod 2 1 -5

4

change_pitch_mod 2 1 -3

5

change_pitch_mod 2 1 0

4

change_pitch_mod 1 -1 -3

3

change_pitch_mod 1 -1 -5

2

change_pitch_mod 1 -1 -7

1

change_pitch_mod 1 -1 -12

2

change_pitch_mod 1 1 -7

3

change_pitch_mod 1 1 -5

4

change_pitch_mod 1 1 -3

5

change_pitch_mod 1 1 0

6

change_pitch_mod 1 1 3

7

change_pitch_mod 1 1 5

6

change_pitch_mod 1 -1 3

5

change_pitch_mod 1 -1 0

4

change_pitch_mod 1 -1 -3

switching!

1 Like

https://www.instagram.com/p/CMOvcmTBlZW/?utm_source=ig_web_copy_link

First go here.

Just got a 64 grid, fired it up and it’s working on Granchild first go, so looking forward to going deeper! Amazing work.

4 Likes

@SPIKE found the :bug: it was a total error on my part. i left in some code that would switch between granchild and kolor. you found the button that switched it…but instead of switching it it just disables granchild lol. i took that out completely in the new updated version (available now).

@danbond sounds so good! i love the granulated drums you got going :slight_smile:

1 Like

Spent a good amount of time with this wonderful app yesterday and it was smooth as silk the whole time!
I’ve got 1 feature request which after I dig through may be able to adjust myself. The other just throwing it out there.

  1. Would it be possible to set the the min/max to go beyond 1 octave? I see you can do it on the norns but it appears it’s scaled back when using the grid.

2.(just throwing this out there to chew on.)

I know I originally requested a possible separate page for a midi keyboard. I did some searching and there really wasn’t a lot of options that struck me.
(But Then you killed it with plonky btw!)

now I’m wondering if midi input would be a great addition. I see using a keyboard with grandchild and being able to transpose the sample “bee’ing” the bee’s knees.

To Have your sample being granulated and using a midi keybord to change the sampled pitch via midi seems very playable and rewarding.

Anyhow hope you are well and loving grandchild amigo!

3 Likes

yes! its a code change you need to make at the moment to do this. but its easy. change this one line to include all numbers for all pitches you want.

midi input would be cool! do you envision using the midi keyboard to simply re-pitch the sample? re-positioning/seeking could be cool too but intuitive to me how that would work. pitching is easy enough though and gives me some interesting ideas… :slight_smile:

2 Likes

Thanks so much!

on the most basic level yes.
And I’ll take ideas that @infinitedigits has for $1000 Alex.

1 Like

hey! wondering if there is a way to change the range of the random values of the lfo, like in the script Twine? I found myself wanting the volume level to go higher than its set to with the lfo on.

thanks!

1 Like

i might have missed this answer somewhere, but is there a way to clear the live recording buffer without restarting the script?

I really love this by the way, now that i am finally diving in. such a beautiful script. now anytime i start lusting after a chase bliss mood, microcosm, or beads, i can remind myself that i have Granchild. thank you so much

3 Likes

20 characters of +1!

2 Likes