Soulver X Series (X1, X2…)
The quest for a more perfect Soulver
Last updated
The quest for a more perfect Soulver
Last updated
We're considering embarking on a multi-year R&D project whose mission is to:
Explore cool new ideas for Soulver
Seek out new forms & new workflows
Boldly go where no notepad calculator has gone before 🖖
Soulver X1
We've already published a new document-based Mac app called Soulver X1 on GitHub.
X1 includes some very cool implementations of our top #3 feature requests, including:
Custom function support (including natural language functions)
Sharing variables across sheets (via the new "header" sheet)
Connecting to Web APIs (with just a paste and a couple of clicks)
Documents in Soulver X1 start with a single tab, and you can add more by clicking the + button in the right of the tab bar.
Renaming tabs
Double click on the title of a tab to give it an alternative name. Alternatively, control-click on the tab and choose "Rename".
Deleting tabs
When you hover over a tab, click the x button to delete. Alternatively, control-click on the tab and choose "Delete"
Tabs are a work in progress feature.
You cannot rearrange tabs (yet), and adding too many tabs in a single document does not work correctly.
The header is a dedicated sheet for defining variables, units, functions, and web values that can be used across all tabs in your document.
Declare variables for your document in the header the same way you would declare local variables.
For example:
my variable
will be available across all your sheets
Your tabs can only reference variables, but cannot modify their definition such that it will apply to other sheets in the document.
An equivalence unit is defined in terms of an existing unit.
Define a new equivalence unit in the header using (for example):
The watermelon
can now be used as a unit of mass across your tabs.
Soulver X1 automaticaly pluralises your new unit for you (in English).
So in this example, both "watermelons" will be recognized as a valid unit name, even though the definition was "watermelon".
An equivalence unit is an entirely new unit type, not defined in terms of an existing unit.
Define a new generic unit in the header using (for example):
The operation
unit can now be used across your tabs (including in rates):
Introduction
A function is a handy phrase that takes an input and returns an output. In Soulver X1, you can use (almost) any syntax for a function, including:
C-style: doSomething(123)
Swift-style: doSomething(with: 123)
Natural language: do something with 123
To create a new custom function (in the header)
Click Define New
> Function
Choosing a function name:
Define your function using an example of how you might use the function in practice.
Choose any parameters (so long as they match the "type" of parameter that you expect for your implementation, like money, time, plain decimal numbers, etc).
Implementing your function:
Implement the function in a dedicated Soulver sheet. Any parameters will be injected as yellow tokens.
Hover over a parameter token to see what parameter it refers to in the declaration.
The last line of the implementation sheet will be returned as the function's final value.
Using your function
Use your function with other input values across all of your sheets
Click Define New
> Web Value
Paste in a URL to a JSON data feed, and then simply click on the data point you wish to connect to
Your web value will be assigned a variable name (by default, matching its description in the JSON feed)
You're welcome to change the variable name to something else
Your web value will be automatically updated in the background with the frequency that you specified during setup
Double-click the yellow web value token in the header to specify a different data point, or change the update frequency
Soulver X series apps use a different document type (.slvrx) from Soulver.
This is to support the new features we're building and experimenting with.
Soulvex X (.slvx) files cannot be edited by Soulver 3 for Mac, iOS & iPad.
If you're a long time user (or Soulver mega-fan), and are excited by this work, you might consider sponsoring our mission on GitHub.
Also, as a sponsor, you'll get access to the latest X series prototype (X2, X3, etc) with more never-before-seen features in the notepad calculator domain.
Our (very) small team would appreciate the support, and we'll be able to dedicate more resources to this kind of advanced notepad calculator R&D.