Skip to content
This repository was archived by the owner on Sep 7, 2023. It is now read-only.

Smart Mode

Liam Riddell edited this page Oct 6, 2020 · 5 revisions

NoteMaster Language

The latest release of NoteMaster releases one of the most prominenent features, NML evaluates natural language text and automatically tries to resolve it to an result.

An example of NML:

100 + 10
// Output: 110

Unit Conversion

With in (into, as, to) you can convert one unit into another. NML will automatically convert units to perform operations if it's needed during conversion.

100cm in meters
10m - 100cm

Time Zone Conversion - Coming Soon

Use time or now function to get time in your time zone. You can prefix this functions with time zone location (or use in with time zone suffix) to get current time for specified location. Results are always in sync with global time, so, at any point of time you will get the right time.

It's also possible to convert specific time or date from one time zone into another. Or calculate difference between time in different time zones:

PST time
New York time
Time in Madrid
2:30 pm HKT in Berlin

Operations

You can use sign and word operators. Several expressions might be stacked together.

8 times 9
100 + 100
100 + 10 / 2
Operation Sample
Addition +, plus, add, and
Subtraction -, minus, remove, subtract
Multiplication *, times
Division /, divide
Exponent ^
Left Shift <<
Right Shift >>
Modulo % - Coming Soon

Numbers

Besides decimal numeral system, it is possible to use numbers in binary, octal (coming soon) or hexadecimal form using appropriate prefix: 0b, 0o and 0x.

100
104.5
0x104

Currency

You can use ISO 4217 codes for currency (like USD, RUB, CAD etc). You can also use common currency names and signs, like $ for the US dollars, or for Euro.

NML updates currency rates several times a day using exchange rates api service.

[Coming Soon] - NML also supports a huge list of cryptocurrencies with hourly rates updates.

Percentage

In addition to general percentage operations like adding or subtracting percent of value ($10 - 40%), you also can use additional operations:

Operation Example
Percentage value 20% of $10
Adding percentage 5% on $30
Subtracting percentage 6% off 40 EUR
Percentage value of one value relative to another $50 as a % of $100 (Coming Soon)
Percentage addition of one value relative to another $70 as a % on $20 (Coming Soon)
Percentage subtraction of one value relative to another $20 as a % off $70 (Coming Soon)
Value by percent part 5% of what is 6 EUR (Coming Soon)
Value by percent addition 5% on what is 6 EUR (Coming Soon)
Value by percent subtraction 5% off what is 6 EUR (Coming Soon)

Scales - Coming Soon

Scales used for shorter form of writing big numbers. Please note that one-letter scales are case-sensitive, since m used for meters, and K used for Kelvins. Supported scales: thousands (k, thousand), millions (M, million), billions (billion).

$2k
2M eur

Variables

You can declare variables and reuse them using the = operator. Please note some characters and keywords cannot be used as a variable. For example, K might be used as a temperature unit in Kelvin. Variable names should not contain whitespaces or special characters, and should not start with number:

$v = $20
$v2 = 5%
$v times 7 - $v2

Labels - Coming Soon

You can declare labels by adding an : at the end of the text. This will be ignored and only execute the context to the right of the the : character. Labels do not store values unlike variables.

Result: 100 + 100

Constants

Description Value
Pi 3.1415926536
E 2.7182818285

Functions - Partial Support

By default trigonometrical functions uses parameters in radians.

Description Function Example
N-th root root root 2 (8)
Square root sqrt sqrt 16
Cubed root cbrt cbrt 8
Absolute value abs abs(-4)
Logarithm log log 2 (10)
Natural logarithm ln ln 3
Factorial fact fact 5
Rounding round round 3.45
Ceiling ceil ceil 3.76
Flooring floor floor 2.56
Sine sin sin 45°
Cosine cos cos 3.45
Tangent tan tan 8
Arcsine arcsin arsin 30
Arccosine arccos arccos 85
Arctangent arctan arctan 9
Hyperbolic sine sinh sinh 3
Hyperbolic cosine cosh cosh 9
Hyperbolic tangent tanh tanh 11

NML supports several CSS units: pixels (px), points (pt), em. Em is set to 16 px by default, but you can assign different value to it. Conversion from screen units to other length units performed using pixel per inch value (ppi). By default ppi is set to 96 pixels, which mean in every inch there're 96 pixels. You can set custom value for ppi.

12 pt in px
em = 20px
1.2 em in px
1 inch in px = 96 px
ppi = 326
1 cm in px = 128,35 px

Previous Result - Coming Soon

Use prev token to use result from previous line:

Cost: $20 + 56 EUR
Discounted: prev - 5% discount

Sum - Coming Soon

You can calculate sum of all lines above (until empty line) using sum ( total ) operator.

Result: sum $10 $15

Average - Soon

You can calculate an average of all lines above (until empty line) using average ( avg ) operator.

Result: average

Units of Measurement prefixes

NML supports all the followings UoM's. Please note, that all UoM's prefixes are case sensitive.

Length

  • mm
  • cm
  • m
  • in
  • ft-us
  • ft
  • fathom
  • mi
  • nMi

Area

  • mm2
  • cm2
  • m2
  • ha
  • km2
  • in2
  • ft2
  • ac
  • mi2

Mass

  • mcg
  • mg
  • g
  • kg
  • oz
  • lb
  • mt
  • t

Volume

  • mm3
  • cm3
  • ml
  • l
  • kl
  • m3
  • km3
  • tsp
  • Tbs
  • in3
  • fl-oz
  • cup
  • pnt
  • qt
  • gal
  • ft3
  • yd3

Volume Flow Rate

  • mm3/s
  • cm3/s
  • ml/s
  • cl/s
  • dl/s
  • l/s
  • l/min
  • l/h
  • kl/s
  • kl/min
  • kl/h
  • m3/s
  • m3/min
  • m3/h
  • km3/s
  • tsp/s
  • Tbs/s
  • in3/s
  • in3/min
  • in3/h
  • fl-oz/s
  • fl-oz/min
  • fl-oz/h
  • cup/s
  • pnt/s
  • pnt/min
  • pnt/h
  • qt/s
  • gal/s
  • gal/min
  • gal/h
  • ft3/s
  • ft3/min
  • ft3/h
  • yd3/s
  • yd3/min
  • yd3/h'

Temperature

  • C
  • F
  • K
  • R

Time

  • ns
  • mu
  • ms
  • s
  • min
  • h
  • d
  • week
  • month
  • year

Frequency

  • Hz
  • mHz
  • kHz
  • MHz
  • GHz
  • THz
  • rpm
  • deg/s
  • rad/s

Speed

  • m/s
  • km/h
  • m/h
  • knot
  • ft/s

Pace

  • s/m
  • min/km
  • s/ft
  • min/km

Pressure

  • Pa
  • hPa
  • kPa
  • MPa
  • bar
  • torr
  • psi
  • ksi

Digital

  • b
  • Kb
  • Mb
  • Gb
  • Tb
  • B
  • KB
  • MB
  • GB
  • TB

Illuminance

  • lx
  • ft-cd

Parts-Per

  • ppm
  • ppb
  • ppt
  • ppq

Voltage

  • V
  • mV
  • kV

Current

  • A
  • mA
  • kA

Power

  • W
  • mW
  • kW
  • MW
  • GW

Apparent Power

  • VA
  • mVA
  • kVA
  • MVA
  • GVA

Reactive Power

  • VAR
  • mVAR
  • kVAR
  • MVAR
  • GVAR

Energy

  • Wh
  • mWh
  • kWh
  • MWh
  • GWh
  • J
  • kJ

Reactive Energy

  • VARh
  • mVARh
  • kVARh
  • MVARh
  • GVARh

Angle

  • deg
  • rad
  • grad
  • arcmin
  • arcsec

Charge

  • c
  • mC
  • μC
  • nC
  • pC

Force

  • N
  • kN
  • lbf

Acceleration

  • g (g-force)
  • m/s2

Date & Time - Coming Soon

To make time calculations more straightforward, 1 year is equal to 365 days, and 1 month equal to 1/12 of the year. In cases where results give non-integer value, round functions might be used to make an integer. Supported units: Second, minute, hour, day, week, month, year. Use fromunix function to convert timestamp into dates.

round(1 month in days)
fromunix(1446587186)

Temperature

Supported units: kelvin, celsius, fahrenheit

Length

Supported units: meter, mil, points, lines, inch, hand, foot, yard, rod, chain, furlong, mile, cable, nautical mile, league. Note, since in used as a conversion operator, you cannot use it for inches.

Area

Supported units: hectare, are, acre and all "squared" length units.

20 cm2
30 in2

Volume

Supported units: Pint, quart, gallon, tea spoon, table spoon, cup.

20 cm3
30 in3

Weight

Supported units: gram, tonne, pound, stone, ounce.

Angular

Supported units: radians, degree. You can use both as text form of unit (radians, degrees) as sign. For example, 45 °.

Data

Supports all digital units.

Format

Use hash symbol at the beginning of the line to make a header. If you want to comment part of the line, use double quotes. To comment all line, use double slash.

# This is header
$275 for the "Model 227"

// This is comment
Price: $11 + $34.45

Shortcuts - Partial Support

Surround with parentheses ⇧⌘0
Copy result on current line ⇧⌘C
Select all ⌘A
Delete all ⎇⌘⌫
Copy all ⎇⌘C
Import ⌘O
Export ⌘S
Print ⌘P

Clone this wiki locally