Skip to content
Feb 3, 2021
Merge branch 'main' of https://github.com/monome/crow into main

@trentgill trentgill released this Feb 1, 2021 · 4 commits to main since this release

NB: hot-fix for modules that wouldn't enumerate after the 2.1.0 update


This update primarily adds support for new ii devices: W/2 (wtape, wdel, wsyn), Disting EX (disting), and multiple crows (crow). Full docs are forthcoming, but for now you can inquire on-device by sending ii.<device>.help() (eg. ii.wtape.help() to see the full supported API for that device.

crow to crow communication

Communication from crow to crow enables:

  • expanded I/O capabilities: ii.crow.volts(...), ii.crow.slew(...) and ii.crow.input(...)
  • high-level I/O helpers: ii.crow.pulse(...), ii.crow.ar(...), ii.crow.lfo(...)
  • generic commands: ii.crow.call1(...), ii.crow.call2(...), ii.crow.call3(...), ii.crow.call4(...)
  • generic requests: ii.crow.query0(), ii.crow.query1(...), ii.crow.query2(...), ii.crow.query3(...)

The I/O commands above are handled automatically, so the second crow doesn't need a script running at all. You can also send ii.crow.reset() to make sure the second crow isn't running First or some other uploaded script.

Using the ii.crow.input(ch) query, will respond with the event ii.crow.event( event ) as is customary for ii devices.

When the above I/O behaviours aren't sufficient for your uses, you can use the generic commands & requests. These require you to upload a script onto the second crow that handles the generic events. Do so by re-defining the functions:

ii.self.call(...) -- where ... are the received arguments (not a table)
ii.self.query(...) -- this function should return the value to be sent back over ii

This feature is marked as 'Early Access' as the command list may change somewhat after we receive more feedback of it in use. Everything works as described, but we welcome your feedback if you can improve things.

For those using crow with norns, you'll need the (TBD) release or later to take advantage of the new ii features.

Log

  • NEW ii support for W/2.0 firmware
  • NEW [Early Access] ii support for Disting EX
  • NEW [Early Access] ii support for crow to crow communication
  • FIX ii transmission speed increased to 400kHz (was ~90kHz)
  • FIX setting metro time to zero no longer causes crash (clamps to 500uS)
  • FIX crow.reset() now resets output[n].scale to 'none'
Assets 3
Pre-release
  • v2.1.0
  • e5c9366
  • Compare
    Choose a tag to compare
    Search for a tag
Pre-release
  • v2.1.0
  • e5c9366
  • Compare
    Choose a tag to compare
    Search for a tag

@trentgill trentgill released this Jan 31, 2021 · 5 commits to main since this release

This update primarily adds support for new ii devices: W/2 (wtape, wdel, wsyn), Disting EX (disting), and multiple crows (crow). Full docs are forthcoming, but for now you can inquire on-device by sending ii.<device>.help() (eg. ii.wtape.help() to see the full supported API for that device.

crow to crow communication

Communication from crow to crow enables:

  • expanded I/O capabilities: ii.crow.volts(...), ii.crow.slew(...) and ii.crow.input(...)
  • high-level I/O helpers: ii.crow.pulse(...), ii.crow.ar(...), ii.crow.lfo(...)
  • generic commands: ii.crow.call1(...), ii.crow.call2(...), ii.crow.call3(...), ii.crow.call4(...)
  • generic requests: ii.crow.query0(), ii.crow.query1(...), ii.crow.query2(...), ii.crow.query3(...)

The I/O commands above are handled automatically, so the second crow doesn't need a script running at all. You can also send ii.crow.reset() to make sure the second crow isn't running First or some other uploaded script.

Using the ii.crow.input(ch) query, will respond with the event ii.crow.event( event ) as is customary for ii devices.

When the above I/O behaviours aren't sufficient for your uses, you can use the generic commands & requests. These require you to upload a script onto the second crow that handles the generic events. Do so by re-defining the functions:

ii.self.call(...) -- where ... are the received arguments (not a table)
ii.self.query(...) -- this function should return the value to be sent back over ii

This feature is marked as 'Early Access' as the command list may change somewhat after we receive more feedback of it in use. Everything works as described, but we welcome your feedback if you can improve things.

For those using crow with norns, you'll need the (TBD) release or later to take advantage of the new ii features.

Log

  • NEW ii support for W/2.0 firmware
  • NEW [Early Access] ii support for Disting EX
  • NEW [Early Access] ii support for crow to crow communication
  • FIX ii transmission speed increased to 400kHz (was ~90kHz)
  • FIX setting metro time to zero no longer causes crash (clamps to 500uS)
  • FIX crow.reset() now resets output[n].scale to 'none'
Assets 3
  • v2.0.0
  • 030b36e
  • Compare
    Choose a tag to compare
    Search for a tag
  • v2.0.0
  • 030b36e
  • Compare
    Choose a tag to compare
    Search for a tag

@trentgill trentgill released this Jul 13, 2020 · 13 commits to main since this release

This update adds a host of new input modes, output quantization and improved/extended ii support.

Input 'window' is great for parameter selectors. Input 'scale' turns crow into a highly reconfigurable quantizer. Input 'volume' and 'peak' allow patching audio signals to the inputs, and analyzing their RMS level ('volume' is analogous to 'stream', and 'peak' to 'change', but operating in the RMS time domain).

Output 'scale' squeezes the output through a highly configurable voltage quantizer. The quantization comes after the slew engine (ASL), so LFOs can easily be converted into arpeggios by simply applying the scale feature. Along with the 'shapes' of the v1.0.3 update, ASL is now useful for describing complex melodies in terms of contours rather than just notes.

ii support continues to improve. The bus is now more resilient to error conditions, and when things go wrong, it can recover more gracefully. New device support has been added for telex-O, W/2.0 and support for Just Friends 3.2 is included. The event handler for ii.<module>.get() requests has been updated to provide the full context of the request -- if you asked for 2 channels of data, each event includes which channel it's reporting from.

For those using crow with norns, you'll need the 200712 release or later to take advantage of these improvements.

Log:

NB: The default git branch from which releases are built is now known as main.

  • BREAKING metro no longer runs immediately after activation or modification

  • BREAKING ii getters that take params, return them (ii..event functions have changed)

  • NEW output 'scale' settings for quantizing CV outputs

  • NEW input mode: 'window'

  • NEW input mode: 'scale'

  • NEW input mode: 'volume'

  • NEW input mode: 'peak'

  • NEW ii support for Mannequins W/2.0 beta (likely to change)

  • NEW ii support for BPC Telex-O module @nordseele

  • NEW ii support for 16n faderbank (all 16 faders are now supported) @discohead

  • NEW ii support for monome ansible (up to 4 simultaneous devices)

  • NEW ii support for Mannequins Just Friends v3.2 features (multiple addresses & getters)

  • FIX after a bad ii get request, the ii bus now recovers

  • FIX after failed ii messages, crow reports debugging suggestions

  • FIX errors in init() correctly reported

  • FIX frozen scripts now timeout @csboling

  • FIX when running out of memory, Lua errors rather than crow crashing @csboling

  • FIX crow.reset() now sets input & ii-follower callbacks to default valules (fixes norns-clock bug)

  • FIX input/output calibration allows more dramatic offset correction

  • NEW errors now provide a traceback @csboling

  • NEW basic reporting of CPU utilization cputime()

  • CHANGE two additional metros / delays available (8 total)

Assets 3
Pre-release
  • v2.0.0RC
  • 1e622da
  • Compare
    Choose a tag to compare
    Search for a tag
  • v2.0.0RC
  • 1e622da
  • Compare
    Choose a tag to compare
    Search for a tag

@trentgill trentgill released this Jun 22, 2020 · 18 commits to main since this release

This update adds a host of new input modes, output quantization and improved/extended ii support.

Input 'window' is great for parameter selectors. Input 'scale' turns crow into a highly reconfigurable quantizer. Input 'volume' and 'peak' allow patching audio signals to the inputs, and analyzing their RMS level ('volume' is analogous to 'stream', and 'peak' to 'change', but operating in the RMS time domain).

Output 'scale' squeezes the output through a highly configurable voltage quantizer. The quantization comes after the slew engine (ASL), so LFOs can easily be converted into arpeggios by simply applying the scale feature. Along with the 'shapes' of the v1.0.3 update, ASL is now useful for describing complex melodies in terms of contours rather than just notes.

ii support continues to improve. The bus is now more resilient to error conditions, and when things go wrong, it can recover more gracefully. New device support has been added for telex-O, and support for Just Friends 3.2 is included. The event handler for ii.<module>.get() requests has been updated to provide the full context of the request -- if you asked for 2 channels of data, each event will tell you which channel it's reporting from.

The above features will be available to norns users in the next update (after June 22 2020).

Log:

NB: The default git branch from which releases are built is now known as main.

  • BREAKING metro no longer runs immediately after activation or modification

  • BREAKING ii getters that take params, return them

  • NEW output 'scale' settings for quantizing CV outputs

  • NEW input mode: 'window'

  • NEW input mode: 'scale'

  • NEW input mode: 'volume'

  • NEW input mode: 'peak'

  • NEW ii support for BPC Telex-O module @nordseele

  • NEW ii support for 16n faderbank (all 16 faders are now supported) @discohead

  • NEW ii support for monome ansible (up to 4 simultaneous devices)

  • NEW ii support for Mannequins Just Friends v3.2 features

  • FIX after a bad ii get request, the ii bus now recovers

  • FIX after failed ii messages, crow reports debugging suggestions

  • FIX errors in init() correctly reported

  • FIX frozen scripts now timeout @csboling

  • FIX when running out of memory, Lua errors rather than crow crashing @csboling

  • NEW errors now provide a traceback @csboling

  • NEW basic reporting of CPU utilization cputime()

  • CHANGE one additional metro / delay available (8 total)

Assets 3
  • v1.0.3
  • a3a902a
  • Compare
    Choose a tag to compare
    Search for a tag
  • v1.0.3
  • a3a902a
  • Compare
    Choose a tag to compare
    Search for a tag

@trentgill trentgill released this Jan 21, 2020

This update brings non-linear slopes to the ASL / output libraries. This enables snappier envelopes, sinewave LFOs, classic-portamento and much more. A number of ii updates are included, notably the ability to use multiples of devices that have assignable addresses (eg. an array of telex-I input devices). CPU usage has been dramatically reduced (~40%) at the expense of one user-assignable timer, resulting in an overall more responsive system (especially with very fast ASL outputs).

Log:

  • NEW 'shape' parameter for outputs (eg: output[n].shape = 'log')
  • NEW Kria ii commands extended (@csboling)
  • NEW multiples of the same ii device are addressable (eg. ii.txi[1] and ii.txi[2])
  • FIX CPU usage dramatically reduced (improves overall responsiveness)
  • FIX sending ii messages are now clamped to available range
  • CHANGE 6 timers are user accessible (for metro() and delay()). was 7.
Assets 3

@trentgill trentgill released this Nov 25, 2019

Main focus is on extending the ii system:

  • NEW devices supported: ER-301(ii.er301), TelexI(ii.txi), Ansible: Levels (ii.levels)
  • NEW i2c pullup resistors are enabled by default.
  • NEW if pullups deactivated, and crow detects insufficient pullup current, prints a user warning suggesting ii.pullup(1)
  • FIX Just Friends retune command now works correctly.
  • FIX Ansible channel indices are now 1-based
  • FIX ii commands are buffered to allow sending up to 16 messages at once

Other:

  • NEW delay(action, time, repeats) function which allows a provided function to be executed in the future, with an optional number of repeats (default 1).
Assets 3
Pre-release
  • v1.0.2b0
  • e6d9213
  • Compare
    Choose a tag to compare
    Search for a tag
Pre-release
  • v1.0.2b0
  • e6d9213
  • Compare
    Choose a tag to compare
    Search for a tag

@trentgill trentgill released this Nov 19, 2019

Preliminary v1.0.2 release

Main focus is on extending the ii system:

  • NEW devices supported: ER-301(er301), TelexI(txi), Ansible: Levels (levels)
  • NEW user warning if crow detects no-pullups
  • FIX Just Friends retune command now works correctly.
  • FIX Ansible channel indices are now 1-based
  • FIX ii commands are buffered to allow sending up to 16 messages at once

Other:

  • NEW delay(time, action) function which allows a provided function to be executed in the future.
Assets 3

@trentgill trentgill released this Oct 24, 2019

  • NEW crow announces what script it's running on boot
  • NEW clearer confirmations when using ^^clearscript, or ^^First
  • NEW .command and .bat files to run firmware-update from Finder / Windows Explorer
  • NEW output has a new event when a slope completes, redefine output[n].done() to use it
  • NEW output has a new state variable to query if it's running: output[n].running
  • NEW code is now licensed with GPL3 @tehn
  • NEW asllib slopes accept generator-functions as arguments, see: asl.runtime() @whimsical-sam
  • FIX asllib functions could crash if time was set to 0 @whimsical-sam
  • FIX default input.change threshold increased to 1V to support Make Noise gates by default
  • FIX uploads with a running input.stream could crash @csboling
  • FIX boot messages from crow would never appear

Plus numerous stability improvements with thanks to @csboling, and @simonvanderveldt.

Grab the newest druid to get the most out of the stability improvements: pip3 install --upgrade monome-druid

Assets 3
Pre-release
  • v1.0.1b0
  • f98b555
  • Compare
    Choose a tag to compare
    Search for a tag
Pre-release
  • v1.0.1b0
  • f98b555
  • Compare
    Choose a tag to compare
    Search for a tag

@trentgill trentgill released this Oct 21, 2019

Interim build for improved reliability when uploading scripts (particularly from druid).

Startup prints are much clearer and informative, and you'll now be alerted to what script is running on startup.

Assets 4