Skip to content

Releases: robbielyman/seamstress-v1

1.0.5

01 Nov 03:29

Choose a tag to compare

What's Changed

  • feat: add screen.level + screen.update by @dndrks in #87
  • feat: add screen.set_position

Full Changelog: v1.0.4...v1.0.5

1.0.4

28 Oct 15:02

Choose a tag to compare

  • fix: prompt correctly
  • fix: set_size and set_fullscreen interact properly with screen_set
  • feat: params window is smaller by default

Full Changelog: v1.0.3...v1.0.4

1.0.3

28 Oct 02:32

Choose a tag to compare

What's Changed

  • feat: move small allocations to FixedBufferAllocators by @ryleelyman in #86
  • fix: set_fullscreen no longer crashes

Full Changelog: v1.0.2...v1.0.3

1.0.2

25 Oct 02:59

Choose a tag to compare

What's Changed

  • feat: clean up 'number' params instantiation by @dndrks in #85
  • fix: run params:clear() and pmap.clear() before dofile

Full Changelog: v1.0.1...v1.0.2

1.0.1

23 Oct 18:42

Choose a tag to compare

What's Changed

  • feat: add tab.save and tab.read by @dndrks in #83
  • fix: screen.set_size executes on the main thread.

Full Changelog: v1.0.0...v1.0.1

1.0.0

19 Oct 22:01

Choose a tag to compare

seamstress

seamstress is a Lua scripting environment
for communicating with music, visuals and data.

seamstress is inspired by and partially API-compatible with
matron, a component of monome's norns.

usage: seamstress is run from the command line.
invoke it with seamstress or seamstress <filename>
(seamstress -h lists optional command-line arguments).
on startup, seamstress will search for a user-provided script file
named <filename>.lua (defaulting to script.lua) to run.
this file may either be found in the current directory of your command-line prompt
or in ~/seamstress (that is, a folder named seamstress under your $HOME directory,
which is typically /Users/<username> on macOS and /home/<username> on Linux).

on startup, seamstress creates two OS windows
and commandeers the command-line prompt as a Lua
REPL (short for read evaluate print loop).
one of these windows is reserved for seamstress's params system,
while the other (the main window)
is available for scripts to draw to using seamstress's screen module.
to exit seamstress, close the main window or enter quit in to the REPL.

scripting: seamstress scripts are written in Lua,
an embeddable, extensible scripting language.
as of 1.0.0, seamstress supports Lua version 5.4.x.
Lua.org has resources for programming in Lua.
additionally, monome has studies for scripting in Lua for
norns and seamstress to get you off the ground.

here is a brief description of the Lua modules available for scripting with as of 1.0.0.
the seamstress Lua API is documented here.

  • arc: script interactions with monome's arc device. requires serialosc.
  • clock: Lua coroutines with musical intent.
    coroutines can sleep for timing in seconds
    or sync for timing in beats.
    seamstress has an internal clock,
    but may listen for MIDI clock or Ableton Link clock instead.
  • grid: script interactions with monome's grid device. requires serialosc.
  • metro: execute a function repeatedly at a time specified in seconds.
    another approach to "multi-threading", which does not use coroutines.
  • midi: receive and send MIDI messages to virtual and hardware devices.
  • osc: receive and send OSC messages.
    while MIDI messages have prespecified semantic meaning,
    OSC is more freeform.
  • params: store state and data in MIDI-mappable, presettable configurations.
    params are displayed to the secondary window.
    as of 1.0.0 this window can be navigated with the keyboard
  • screen: draw to and interact with the main window using keyboard and mouse.

additonally seamstress brings with it many Lua libraries
that may be optionally included in scripts.
these are mostly drawn from the norns library
and include lattice, lfo, musicutil, pattern_time,
reflection, sequins, tabutil and ui.

example scripts: seamstress ships with example scripts.
list them with seamstress -e;
copy one into ~/seamstress for further exploration with
seamstress -e <filename>.

sockets: seamstress listens for plaintext Lua messages on a UDP socket,
by default port 8888.
it executes any Lua received as if it were typed into the REPL,
which allows for live-coding seamstress scripts.

hot reload: seamstress reloads when it executes the function _seamstress.reset_lvm().
when loaded with the command-line argument -w,
seamstress will automatically execute this command
when the script file it finds is changed on disk.

create: seamstress can be launched with
create-script, create-project or create-norns-project
to interactively create a new script (in ~/seamstress),
a new project (intended for sharing; includes a git repository),
or a new norns project (includes a git repository).

seamstress development continues!
contributions, suggestions and bug reports are very welcome.

acknowledgements: matron was written by @catfact.
the seamstress studies were written for monome by @dndrks.
norns was initiated by @tehn.

What's Changed

  • feat: add beat info to clock params UI by @dndrks in #82
  • feat: run with -q to silence greeting
  • fix: prefer getEnvVarOwned to getenv
  • feat: add reflection.lua

Full Changelog: v0.25.7...v1.0.0

0.25.7

18 Oct 23:26

Choose a tag to compare

  • fix: synced start, immediate stop
  • feat: expose quantum to lua

Full Changelog: v0.25.6...v0.25.7

0.25.6

18 Oct 14:05

Choose a tag to compare

What's Changed

  • FIX: add params menu UI flags to 'binary' params:set by @dndrks in #80

Full Changelog: v0.25.5...v0.25.6

0.25.5

15 Oct 15:44

Choose a tag to compare

fix: sharp edges around sending OSC
fix: build liblo in ReleaseFast mode to avoid trace trap
fix: clocks would sometimes get stuck with a sync beat in the past

Full Changelog: v0.25.4...v0.25.5

0.25.4

15 Oct 03:17

Choose a tag to compare

fix: add formatter to number params
fix: edge case crashes

Full Changelog: v0.25.3...v0.25.4