Distal Interphalangeal Joint

From Esolang
Jump to navigation Jump to search
This is still a work in progress. It may be changed in the future.

Please note: this language is not meant to offend or mock people with disabilities and was inspired by the author's long struggle with tendon and nerve damage

Distal Interphalangeal Joint, (also know as Distal Interphalangeal Joint 10 2), is a language designed by User:NoWhy. Distal Interphalangeal Joint is a subset and superset of the languages Distal Interphalangeal Joint F H, where F corresponds to the number of fingers possessed by the programmer and H corresponds to the number of hands possessed by the programmer.

The language does not require a licensed Distal Interphalangeal Joint input device, but it is strongly recommended for ergonomic reasons.

Instructions

The language uses two counters refered to as LC and RC.

Finger Instruction
Leftmost ulnar Set LC to duration of press.
The Fourth Digit (Of The Left Side) Set LC to (LC - RC)
The Cathartic Finger (Left) Set LC to (LC + RC)
Digitus II (L) Set LC to (LC * RC)
Pollex Pointing To The Right Output LC for duration of press.
Pollex Pointing To The Left Output RC for duration of press.
Digitus II (R) Set LC to (LC / RC)
The Cathartic Finger (Right) Swap LC and RC
The Fourth Digit (Of The Right Side) Set RC to (RC - LC)
Rightmost ulnar Set RC to duration of press.

Chording

Chord keys to enter different modes. L1 is the left little finger, R1 is the right little finger etc.

Finger Mode
L3 + R3 Tapping Mode
L3 + L4 Programming Mode
L4 + R4 Performance Mode

Programming Mode

In Programming Mode the programmer will have to answer a series of questions before returning to default mode. The answers will be used to fill in the following if-unless statement:

if (a1 a2 a3)
{
 a4
} unless a5

q1

tbd

q2

tbd

q3

tbd

q4

tbd

q5

Finger a5
L1 LC > totalNumberOfPresses
L3 millis() > totalNumberOfPresses
L5

Output Modes

In audio mode Distal Interphalangeal Joint can output MIDI notes (1-127) or pitches in the range of 250hz-8000hz (audiologists have determined pitches outside that range are useless to human beings and not worth considering.)

Symmetry

Regrettably Distal Interphalangeal Joint cannot be considered symmetric, but that does not mean no symmetric versions of Distal Interphalangeal Joint exist. The most common feature rich symmetrical Distal Interphalangeal Joint is an implementation of Distal Interphalangeal Joint 3 2 defined as follows.

Finger Instruction
Leftmost finger 1 Set LC to duration of press.
The Second Finger (Of The Left Side) Set LC to (LC - RC)
Pollex Pointing To The Right Output LC for duration of press.
Pollex Pointing To The Left Output RC for duration of press.
The Second Finger (Of The Right Side) Set RC to (RC - LC)
Rightmost finger 1 Set RC to duration of press.

Distal Interphalangeal Joint 12 2 is the most desired form of Distal Interphalangeal Joint, omitting only the Swap command while mirroring each instruction for LC and RC.

Accessibility

Some programmers will only be able to harness Distal Interphalangeal Joint 1 1. For them we can define the following specifications.

Finger Instruction
The Sole Finger If Mode is set to Input: Set LC to duration of press. Set mode to Output

If Mode is set to Output: Output LC for duration of press. Set mode to Input

Implementations