Skip to content

fshstk/arpeggiata

Repository files navigation

Arpeggiata (arpeggiata)

Arpeggiata is a modular arpeggio engine based on the Quasar framework.

You can install it for yourself or check out a live demo at arpeggiata.tk!

Usage

Arpeggiata consists of four independent synth modules, each with the following features:

  • power button: toggle mute
  • A/D knobs: attack and decay for the amplitude envelope,
  • F knob: cutoff frequency for the lowpass filter,
  • buttons for choosing the note value of the arpeggio,
  • buttons for choosing one of three user-defined scales and sequences,
  • buttons for modifying the octave (+/0/-).

synth

All four synth components are tied to a global clock with start/stop buttons and changeable tempo.

Scales and Sequences

Arpeggiata's defining feature is its ability to independently specify scales and sequences: while a scale is a list of notes and/or frequencies, a sequence denotes the order in which the notes of a scale are triggered:

let majorScale = ["C4", "D4", "E4", "F4", "G4", 440.0, "B4", "C5"];
let sequence = [1, 3, 5, 3]; // C4, E4, G4, E4

Here, the C major scale is paired with a sequence that would result in an up/down arpeggio of a C major chord. Note that both note/octave string notation and integers/floats can be used to define a scale.

If we were to change the scale, for example to C minor, the same sequence would result in a C minor chord.

let minorScale = ["C4", "D4", "Eb4", "F4", "G4", 440.0, "B4", "C5"];
let sequence = [1, 3, 5, 3]; // C4, Eb4, G4, E4

If a sequence element exceeds the scale's array size, it gets wrapped back to the start of the scale. Note also that scale indices begin at one, not at zero:

let sequence = [1, 10]; // C4, D4

Installing

Navigate to the base project directory:

cd arpeggiata

Install the dependencies:

npm install

Start the app in development mode (hot-code reloading, error reporting, etc.):

quasar dev

Build the app for production:

quasar build

License

Arpeggiata was developed as part of a student project at the Institute of Electronic Music and Acoustics in Graz, Austria.

It is distributed under the GNU General Public License v3.0.

About

Vue.js based modular arpeggio engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published