Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New calibrate.lua & underlying engine #397

Merged
merged 8 commits into from
Apr 23, 2021
Merged

New calibrate.lua & underlying engine #397

merged 8 commits into from
Apr 23, 2021

Conversation

trentgill
Copy link
Collaborator

Fixes #39 (finally!)

The C interface for the calibration engine is greatly simplified, and a very simple lua wrapper is provided in calibrate.lua. Exposed as cal in the global env.

There is a new script util/recalibrate.lua which uses this interface to iteratively solve for exact calibration. The script prints instructions on load, and utilities are provided for viewing values pprint() and a flag VERBOSE can be set to true to watch the values converge (or fail to) when debugging. Calculated values are validated to be within normal ranges, and written to flash if successful.

Currently I've only tested on a single hardware unit, but I will test a few more shortly. The recalibrate script could likely be refactored somewhat, but it's functional and working well for now. Curious to see how it performs on other hardware.

@trentgill trentgill requested a review from tehn April 23, 2021 17:49
Copy link
Member

@tehn tehn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dang that new recalibrate script is nice.

this is going to un-zombie a huge heap of crows!!

@trentgill trentgill merged commit 7f4fc77 into THREE Apr 23, 2021
@trentgill trentgill mentioned this pull request Jun 15, 2021
7 tasks
trentgill added a commit that referenced this pull request Jun 30, 2021
* can now update output[n].scale(_) with .scale = {note list}, so it can be dynamically set like a regular table (#373)

* fix bug where aliasing an ii address before use could stack overflow (#374)

* querying output voltage now returns the shaped & scaled voltage (real voltage at jack)

* add just intonation helpers: justvolts(), just12()
* support input scales: input[n].mode( 'scale', {...}, 'ji')
* support output scales: output[n].scale({...}, 'ji')

* Python based bootloader support and dfureset (#377)
* `make pydfu` to use python3 dfu bootloader
* `make dfureset` jumps to bootloader from make
* `make zip` now builds dfu file as well as binary
* add instructions for using pydfu instead of dfu-util

* Frequency detect mode for input[1] (#382)
* `input[1].mode('freq', interval)` reports frequency of a signal connected to input 1 (no support for input 2)
* `hztovolts(hz, <ref>)` helper fn converts an input hz equivalent voltage (uses default reference to match Just-Friends & W/Syn)

* print an error to usb host if event queue overflows (#391)

* clock.lua module added (#393)

* New calibrate.lua & underlying engine (#397)
Breaking:
* `cal` lua module refactored with new API
* calibration no longer auto-runs if no vals saved (ie new factory modules)
* `util/recalibrate.lua` demonstrates usage, and can be used for factory calibration (or at home)

* double userscript storage size to 16kB (#396)

* add jacktest.lua

* strip debug info from crow lua libs for dramatic ram reduction (#395)

* Sequins.lua library (#387)
* add sequins library

* ASL2 (#399) ASL2 library. Runtime operates in C for greatly optimized performance & sample accuracy

* introduce Caw_printf

* Public.lua library for sharing parameters (#394)
* after calling init() crow sends '^^ready()'
* add 'public.view' for enabling live monitoring of in & out voltages

* Oscillate asllib fn (#407)
* add 'oscillate' asllib fn

* add note about not using `note` in asllib. kept only to avoid the breaking change

* add quote library & remove quotes global (#412)

* support ii getters from teletype (#403)

Co-authored-by: brian crabtree <tehn@monome.org>
@trentgill trentgill deleted the calibrate2 branch July 3, 2021 17:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants