Axentax Documentation
website·Indexed 30 days ago
https://axentax.github.ioA guitar-specific music description language designed for guitarists to realize advanced playing techniques and musical expressions through intuitive syntax. Features include support for string noise, slides, choking, vibrato, degree specification, and map functions for loop processing.
What's inside Axentax
- Axentax provides an intuitive notation system designed to implement advanced playing techniques and musical expressions simply. It allows developers and musicians to define complex structures concisely, offering high-flexibility mapping and step-based playing methods for precise control over performance expression. The system is optimized for rapid prototyping of musical ideas, such as the instant deployment of scales and arpeggios.
Introduction to Axentax music description language
Axentax is a music description language specialized for guitar. It allows guitarists to create sophisticated solo performances with minimal notation by combining scale expansions and loop playing. The tool functions as a creative instrument beyond a standard MIDI editor, enabling users to experiment with scale developments and download the resulting phrases as MIDI files.Use the Guitar Fretboard displays
The Playground provides two types of fretboard visualizations:
- Large Fretboard: Toggled via the bottom button group. It displays fret information for nodes assigned in the editor and highlights keys belonging to the identified scale.
- Play Monitor (Right Sidebar): Contains three guitar fretboards that move positions in sync with the phrase during playback. It also displays the step and map status of the currently playing note.
Combine multiple bends and vibratos on a single note
Multiple ornamental effects (choking/bends and vibrato) can be applied to a single note by separating them with commas inside the
:bdmarker.Note: The division notation (e.g.,
/8) is only required for the first entry; subsequent entries within the same:bdblock inherit this division. You cannot change the division notation within a single:bdblock.@@ { ||7:1/1:bd( 0..2/8 1 // Bend 1 semitone from 0 to 2/8 2..6 2 vib // Vibrato 2 semitones from 2/8 to 6/8 6.. -2 // Bend down 2 semitones from 6/8 to end ) }Change instrument sounds or add distortion
The tool currently only provides default sounds. To use distorted sounds (distortion/overdrive) or different instruments, import the created MIDI file into a DAW and change the instrument there. Developers can achieve this by modifying the SoundFont in the source code available in the GitHub playground repository.Implement slide-in effects in tab notation
A slide-in is created by separating two tab notations with the>>operator. To control the slide speed, add!valueimmediately after the first tab, where the value ranges from 1 to 500. Smaller values result in faster slides, and larger values result in slower slides.@@ { ||2|2||>>|||5|5| // Basic slide from fret 2 to 5 r ||2|2||!200>>|||10|10| // Slow slide r ||2|2||!20>>|||10|10| // Fast slide }Manage click tracks with @click
Use@click(interval)to start a metronome click, where the interval is specified as a note value (e.g.,1/4for quarter notes). To stop the click track, use the@/clickcommand.@@ 1/4 { @click(1/8) C7 Dm7 Em7 C7 @click(1/4) // Change click interval to quarter notes Fmaj7#5~~~ } @@ { @/click // Stop the click track Badd13 @click(1/6) Badd9 Baug7 @click(1/8) Edim7 }Implement legato (hammer-ons and pull-offs) with :leg
The
:legmarker simulates legato (hammer-ons/pull-offs). It can only be applied to notes on the same string within a 4-fret range. The:legmarker must be placed on the target (subsequent) note.Constraints:
- Cannot be used simultaneously with bends or vibrato.
- If a sequence of legato notes contains a jump of 5 frets or more, the system may disable the legato processing for the entire group and only simulate the volume change. To avoid this, terminate the legato group before the large jump by omitting
:legon the note preceding the jump.
// Basic legato sequence @@ 1/4 160 { |||||2 |||||4:leg } // Complex sequence with a jump @@ 1/4 160 { |||||2 |||||4:leg |||||2:leg |||||5:leg |||||0 // No :leg here to break the group and avoid disabling the effect |||||3:leg }Implement the continue function to sustain notes
To let a previous note ring while playing the next note, start the line with... This is useful for arpeggios or extending a note's duration. It can be used with Tab notation or after a Chord.@@ { 0|2|2 ..||3 ..||5 ..||7 } // Using with chords @@ { Em7 ..||3 }Apply a standard configuration for style and click settings
Use the following settings for a 'Normal' configuration. This setup defines the scale as C major, sets the click velocity to 18, and configures the timing for style and click events. For chord progression creation, useset.style.until: 4/4for minimal ornamentation, orset.style.until: 1/4when more ornamentation is desired for better usability.set.style.until: 1/4 set.style.scale: C major set.click.velocity: 18 set.click.accent: 1 set.click.until: 1/3 @@ { C }Configure pitch shift intervals with :map()
You can skip specific intervals within a scale using thestepkeyword. The syntax is:map(start point step interval * repeat count).@@ 1/4 120 { |||5:map(0 step 2 * 4) |||5:map(0 step -2 * 4) }Get started with Axentax composition
To begin composing in Axentax, use the Axentax Playground. The basic structure of a composition consists of a 'region' (@@) and a 'block' ({}). Ensure your editor contains at least@@ { }to start. Note that configuration settings (starting withset.*) are preserved even when the main syntax is cleared.@@ { }