Skip to content
This repository has been archived by the owner on May 20, 2021. It is now read-only.
/ supercut Public archive

voice management library for monome norns softcut

License

Notifications You must be signed in to change notification settings

andr-ew/supercut

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

guide

supercut is a wrapper utility for softcut which is particularly useful for managing common inter-voice relationships and statuses. commands are issued to supercut much the same as with softcut:

supercut.play(1, 1)

the difference here is that voices are abstracted into 3-6 supervoices which include:

  • mono or stereo i/o
  • state recall
  • buffer region management

to start using a supervoice, run

supercut.init(1, "mono")

or, for stereo, run

supercut.init(1, "stereo")

init() takes care of initializing most of the values needed to start things moving, though you can roll without it. just check the source if yr curious about what's going on

for voice count, note that the norns limitations still apply, so a max of 6 mono voices or 3 stereo voices. any combo of those is also fine (2 stereo + 2 mono)

in supercut, every setter is also a getter:

print(supercut.play(1))

this makes some actions super simple while keeping data centrilized

to transpose by an octave: supercut.rate(1, supercut.rate(1) * 2)

to toggle recording: supercut.rec(1, (supercut.rec(1) == 1) and 0 or 1)

in the REPL at the bottom, calling supercut.status(1) will yield immediate insight into the full status of a supervoice. some of these will look familiar from softcut docs but a few are new. the biggest additions afford some handy buffer management options.

there are 3 levels of specificity: loop, region, and home_region. within each supervoice, loop_start and loop_end begin at 0 and are bound to region. regions default to a ~116 second sections of softcut's 2 buffers. by default these regions inhabit seperate territories, but an interesting way to interrupt this is stealing the region of another supervoice:

supercut.region_start(1, supercut.region_start(2)) supercut.region_end(1, supercut.region_end(2)) supercut.buffer(1, supercut.buffer(2))

there's even a helper funtion for this:

supercut.steal_voice_region(1, 2)

now you can, for example, record to a region at rate = 1 and play back at rate = 2 for a live pitch shift effect

but how do we go back ? that's what home_region is for. just run this:

supercut.steal_home_region(1, 1)

in addition to position, supercut also adds loop_position, region_position, and home_region_position to track tapeheads in each relative sector. they're also updated automatically at the phase_quant time.

for a complete, interactive example, check out demo/linked from the video above !

About

voice management library for monome norns softcut

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages