In Theory is an interval based MIDI keyboard app with more than 110 scales. It has a keypad at the bottom with the interval buttons like +2, +1, 0, -1, -2 which would change the current note. Zero means the current note, +1 means the note after the current note, +2 means two notes after the current note, -2 means two notes before the current note in the scale and so on.
Above the keypad, you can toggle additional intervals in the scale for creating chord voices. You can also select the notes from an octave above and an octave below for creating rich, extended chords.
You can use your MIDI keyboard to play In Theory as well. The middle C4 key on your MIDI keyboard triggers the 0 (zero) button on the app's keypad. The white notes after the C4 note would trigger the positive buttons, the white notes before the C4 note would trigger the negative notes on the keypad.
You can also toggle the chord intervals with MIDI CC messages. You can set a MIDI CC number and a MIDI Channel for toggling the chord intervals from the settings menu. If you send a MIDI CC value between 0-62, you can toggle the chord intervals respectively.
With the MIDI capabilities, you can also sequence the app with a MIDI sequencer app like PolyBud, ShiftBud, MelodyBud etc.
In Theory has more than 110 scales built-in. You can also use the custom scales you made in ScaleBud 2 app as well. The key and scale could be changed externally from a MIDI controller in AUv3 plugin with the AU parameters.
The circular display on the UI will show you where you are in the scale. Also, when you play a note, you will see the every playing note on the screen with the root note and the chord intervals.
Please note that In Theory is a MIDI app and does not produce any kind of sound on its own. You need to connect the MIDI output of the app to an audio app's MIDI input. For the AUv3 plugin you'll need an AUv3 host app such as AUM, Cubase, Nanostudio, apeMatrix etc.