Skip to content

Commit

Permalink
docs 2nd pass
Browse files Browse the repository at this point in the history
  • Loading branch information
JamalWhitaker committed May 18, 2024
1 parent 9ca0814 commit ce78843
Show file tree
Hide file tree
Showing 18 changed files with 68 additions and 67 deletions.
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# XJ music documentation

Documentation for [XJ music](https://github.com/xjmusic/xjmusic)
**Documentation for [XJ music](https://github.com/xjmusic/xjmusic)**

Published to [docs.xjmusic.com](https://docs.xjmusic.com/)

Built with [Hugo](https://gohugo.io)
**Published to [docs.xjmusic.com](https://docs.xjmusic.com/)**
18 changes: 9 additions & 9 deletions content/getting-started/_index.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,29 +11,29 @@ When you first open the XJ music workstation, you'll see this empty space, becau

## Project Menu

The [Project menu](/getting-started/menu-bar/index.md) provides a comprehensive set of options for managing project files efficiently. Creating new Projects, opening previously created Projects, saving your work, changing directory settings, and quitting the workstation is done here.
The [**Project menu**](/getting-started/menu-bar/index.md) provides a comprehensive set of options for managing project files efficiently. Creating new Projects, opening previously created Projects, saving your work, changing directory settings, and quitting the workstation is done here.

## Fabrication Menu

The [Fabrication menu](/making-xj-music/fabrication/fabrication-settings) displays two commands for the fabrication of musical segments, Start (CTRL+Space) and Follow (CTRL+ALT+Space).
The [**Fabrication menu**](/making-xj-music/fabrication/fabrication-settings) displays two commands for the fabrication of musical segments, Start (CTRL+Space) and Follow (CTRL+ALT+Space).


## View Menu

The [View menu](/getting-started/menu-bar/) contains navigational shortcuts between the Content, Templates, and Fabrication tabs, Log controls, and backward/forward buttons to visit their previously viewed locations.
The [**View menu**](/getting-started/menu-bar/) contains navigational shortcuts between the Content, Templates, and Fabrication tabs, Log controls, and backward/forward buttons to visit their previously viewed locations.

## Content Tab

In the Content section of the workstation, you will see the [Content Browser](/getting-started/content-browser/) which lists
all the the [Libraries](/making-xj-music/libraries/) in the current project. Inside of each Library
is a list of [Programs](/making-xj-music/programs/) and [Instruments](/making-xj-music/instruments/).
In the Content section of the workstation, you will see the [**Content Browser**](/getting-started/content-browser/) which lists
all the the [**Libraries**](/making-xj-music/libraries/) in the current project. Inside of each Library
is a list of [**Programs**](/making-xj-music/programs/) and [**Instruments**](/making-xj-music/instruments/).

Open a program to edit it in the [Program Editor](/getting-started/program-editor/)
or open an instrument to edit it in the [Instrument Editor](/getting-started/instrument-editor/)
Open a program to edit it in the [**Program Editor**](/getting-started/program-editor/)
or open an instrument to edit it in the [**Instrument Editor**](/getting-started/instrument-editor/)

## Templates Tab

In the Templates section of the workstation, you will see a list of available [Templates](/making-xj-music/templates/) in the current project. Templates contain bound [Libraries](/making-xj-music/libraries/)- your [Programs](/making-xj-music/programs/), and [Instruments](/making-xj-music/instruments/).
In the Templates section of the workstation, you will see a list of available [**Templates**](/making-xj-music/templates/) in the current project. Templates contain bound [**Libraries**](/making-xj-music/libraries/)- your [**Programs**](/making-xj-music/programs/), and [**Instruments**](/making-xj-music/instruments/).

## Fabrication Tab

Expand Down
4 changes: 3 additions & 1 deletion content/getting-started/content-browser/index.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
+++
categories = ["Getting-Started"]
title = "Content Browser"
weight = 20

+++

The **Content Browser** is the central hub for navigating and managing various types of content within the XJ music workstation. Accessible via the **Content tab** at the top right-hand corner, this main window offers an organized and intuitive view of the available resources, including [Libraries](/making-xj-music/libraries/index.md), [Programs](/making-xj-music/programs/_index.md), [Instruments](/making-xj-music/instruments/_index.md), and [Audios](/getting-started/instrument-editor/index.md).
The **Content Browser** is the central hub for navigating and managing various types of content within the XJ music workstation. Accessible via the **Content tab** at the top right-hand corner, this main window offers an organized and intuitive view of the available resources, including [**Libraries**](/making-xj-music/libraries/index.md), [**Programs**](/making-xj-music/programs/_index.md), [**Instruments**](/making-xj-music/instruments/_index.md), and [**Audios**](/getting-started/instrument-editor/index.md).

![Content Browser](content-browser.png?width=600px)
2 changes: 1 addition & 1 deletion content/getting-started/fabrication-tab/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ In the Fabrication tab is where you can control the playback of your music. The

![Fabrication Timeline](fabrication-timeline.jpg)

There are a number of [Fabrication Settings](/making-xj-music/fabrication/fabrication-settings) that can be modified to change the timeline behavior and audio output.
There are a number of [**Fabrication Settings**](/making-xj-music/fabrication/fabrication-settings) that can be modified to change the timeline behavior and audio output.
2 changes: 1 addition & 1 deletion content/getting-started/instrument-editor/index.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ The two icons in the bottom left of the Waveform Viewer will open the selected a

### Setting a Transient Offset

A Transient Offset is a floating integer that determines in measurements of seconds where the chosen audio will be starting from when its event is slated to trigger. The default transient offset is 0.0, indicating that the audio will start playing at the beginning of its file when triggered. A transient offset of 0.5 will include a pre-roll of 0.5 seconds and begin playing there. To set a transient offset, click the + symbol and place the new offset on the waveform in its window. You can also manuially enter the exact time in the Transient text field.
A transient offset is a floating integer that determines in measurements of seconds where the chosen audio will be starting from when its event is slated to trigger. The default transient offset is 0.0, indicating that the audio will start playing at the beginning of its file when triggered. A transient offset of 0.5 will include a pre-roll of 0.5 seconds and begin playing there. To set a transient offset, click the + symbol and place the new offset on the waveform in its window. You can also manuially enter the exact time in the Transient text field.

### Waveform Viewer

Expand Down
8 changes: 4 additions & 4 deletions content/getting-started/menu-bar/index.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ weight = 10
tags = ["menu", "logs", "error logs", "navigate", "navigation", "help", "about", "version", "guide", "Discord", "support"]
+++

When you first open the XJ music workstation, no project is open. From the **Project** menu you can create a New Project, Open a Project, or clone one of the [Demo Projects](#demo-projects) to get started right away.
When you first open the XJ music workstation, no project is open. From the **Project** menu you can create a New Project, Open a Project, or clone one of the [**Demo Projects**](#demo-projects) to get started right away.


## Demo Projects
Expand All @@ -15,7 +15,7 @@ When first opening the XJ music workstation, the user will have the option of de

To open a demo project, access the Project dropdown menu in the top left-hand side of the workstation, and choose Demos. Here you will find a list of four projects created by our team that will help you get acquainted with what the workstation can do. Select one and click OK to begin loading the project’s data, this could take a few minutes as you will be downloading the included audio files.

[Click here](https://youtu.be/z5i8ZD8AyWE) for a video walkthrough!
[**Click here**](https://youtu.be/z5i8ZD8AyWE) for a video walkthrough!


## View Menu
Expand All @@ -37,7 +37,7 @@ To open a demo project, access the Project dropdown menu in the top left-hand si
|--------------------|------------------------------------------------------------------------------------------|
| **About** | Displays the current version of the XJ music workstation. |
| **Tutorial Video** | Open a walkthrough video to help you get started with a demo project. |
| **User Guide** | Open the [User Guide](). |
| **Discord** | Contains an invite link to the [XJ music Discord server](https://discord.gg/nbjHgD8xrn). |
| **User Guide** | Open the User Guide. |
| **Discord** | Contains an invite link to the [**XJ music Discord server**](https://discord.gg/nbjHgD8xrn). |

![About](about.png?width=400px)
11 changes: 6 additions & 5 deletions content/getting-started/program-editor/index.en.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
+++
title = "Program Editor"
weight = 30
tags = ["Program", "program editor", "segment", "macro", "main", "beat", "detail"]
+++

The Program Editor allows you to edit music notation by placing Events within Patterns.

There are different modes of editing available. The editor will automatically show the panels corresponding to the type of program you are currently editing: Macro Program, Main Program, Beat Program, or Detail Program.

[Editing a Macro Program](#editing-a-macro-program)
[**Editing a Macro Program**](#editing-a-macro-program)

[Editing a Main Program](#editing-a-main-program)
[**Editing a Main Program**](#editing-a-main-program)

[Editing a Beat Program](#editing-a-beat-program)
[**Editing a Beat Program**](#editing-a-beat-program)

[Editing a Detail Program](#editing-a-detail-program)
[**Editing a Detail Program**](#editing-a-detail-program)


## Editing a Macro Program
Expand All @@ -28,7 +29,7 @@ First, you’ll create some number of sequences containing attribute values for

![Sequence Bar](editing-macro-2-sequence-bar.png)

Next, you’ll make sure to be in BIND mode (see the upper left corner) and then bind your sequences into some order. The bindings can have unique memes.
Next, you’ll make sure to be in **BIND** mode (see the upper left corner) and then bind your sequences into some order. The bindings can have unique memes.

![Bind Mode](editing-macro-3-bind-mode.png)

Expand Down
8 changes: 4 additions & 4 deletions content/how-it-works/_index.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ title = "How it Works"
weight = 2
+++

XJ utilizes a versatile template system that accepts various inputs, such as content, programs, and instruments from many libraries.
XJ utilizes a versatile template system that accepts various inputs, such as audio stems, programs, and instruments from many libraries.

XJ's 'play' functionality is more complex than it seems, as it is powered by a feature termed the 'Nexus.' The Nexus meticulously reads the content and constructs an ongoing sequence of segments. Each segment, unique in its timeline placement, consists of all the content employed to forge it.

Creating a segment requires several elements. Initially, you will need 'Macro Programs,' which are comparable to the sequence of songs a DJ would pick to play one after another. Following this, you will need 'Main Programs' - these are analogous to the individual pieces in a DJ's set, complete with chord progressions and specific voicings for each instrument in the song.
Creating a segment requires several elements. Initially, you will need [**'Macro Programs,'**](/making-xj-music/programs/types-of-programs/) which are comparable to the sequence of songs a DJ would pick to play one after another. Following this, you will need [**'Main Programs'**](/making-xj-music/programs/types-of-programs/) - these are analogous to the individual pieces in a DJ's set, complete with chord progressions and specific voicings for each instrument in the song.

As the XJ moves through the creation process, it seeks out 'Beat Programs.' These programs house a collection of drum events that construct the underlying rhythm of the piece. XJ further scours for 'Detail Programs' that execute the voicings derived from the Main Programs, such as a bassline or stab pattern.
As the XJ moves through the creation process, it seeks out [**'Beat Programs.'**](/making-xj-music/programs/types-of-programs/) These programs house a collection of drum events that construct the underlying rhythm of the piece. XJ further scours for [**'Detail Programs'**](/making-xj-music/programs/types-of-programs/) that execute the voicings derived from the Main Programs, such as a bassline or stab pattern.

To fully realize the sonic details in the programs, XJ will search for the appropriate instruments, each packed with audio content. For instance, a bass detail pattern from the Detail Program merges with bass voicings from the Main Program. This combination then aligns with a polyphonic bass-type instrument selected to curate and choose the final bass audio for the segment.
To fully realize the sonic details in the programs, XJ will search for the appropriate [**instruments**](/making-xj-music/instruments/_index.md), each packed with audio content. For instance, a bass detail pattern from the Detail Program merges with bass voicings from the Main Program. This combination then aligns with a polyphonic bass-type instrument selected to curate and choose the final bass audio for the segment.

Some types of instrument audio are utilized formulaically within XJ, such as transition audio, percussion audio, and ambient audio. This creates a cohesive, dynamic, and robust sonic experience. Hence, XJ combines all these elements to generate a beautifully organized and harmonious audio segment, providing a user-friendly, intricate, and comprehensive approach to music creation.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description = "Different Types and Modes of instruments have unique purposes and
tags = ["instruments", "types", "modes", "behaviors"]
+++

Different Types and Modes of instruments have unique purposes and behaviors.
Different **Types** and **Modes** of instruments have unique purposes and behaviors.

Option A, is to tag audios with a single chord symbol (ie Cmaj7, Emin7b5) which is itself a shorthand for a list of notes (C, E, G, B and E, G, Bb, D for these examples)

Expand All @@ -20,7 +20,7 @@ Theoretically, option B is closer to what exists today, but that's not an obstac
I believe that there is a simple formula to tell us whether Option A or Option B yields more freedom a.k.a. modularity a.k.a. less work for more payoff.

Starting with Template Analysis (soon to be built) we can see how many different chords are present in all the main programs of the given template
(For each type of instrument independently?) Calculate the relative complexity of using Chord-based (option A) or Note-based (option B) audio
(For each type of instrument independently?) Calculate the relative complexity of using Chord-based (option A) or Note-based (option B) audio
Chord-based complexity = How many different audios would be required to cover all the chords present in all main programs
Note-based complexity = How many different audios would be required to cover all the voicing lists present in all main programs
I suspect the answer (A vs B) varies between templates and instrument types
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ tags = ["instrument", "menu", "configuration", "settings", "parameters"]

The instrument menu contains a list of all instruments. Each instrument contains a configuration, which may affect the music when that instrument is chosen.

Here you can see the attributes of each Instrument, as well as the memes assigned to it.
Here you can see the attributes of each instrument, as well as the memes assigned to it.

![Instruments](instruments.png)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ tags = ["instrument", "modes", "types", "polyphonic", "chord", "loop", "drum"]

A chord-mode instrument such as a Pad-type instrument will provide a single audio per chord. In that case each row (audio) in the instrument will use the tones column to store the chord. The event column is ignored.

When choosing instrument audio (from a chord-mode instrument) for the chords of a main program, XJ will prioritize (see: marble bag) any available exact match. In lieu of an exact match, XJ will allow an acceptable substitute of the pre-slash description of a chord to a non-slash chord (e.g. “Eb/G” is an acceptable substitute for “Eb” and vice versa).
When choosing instrument audio (from a chord-mode instrument) for the chords of a main program, XJ will prioritize (see: [**marble bag**](/making-xj-music/memes/index.en.md)) any available exact match. In lieu of an exact match, XJ will allow an acceptable substitute of the pre-slash description of a chord to a non-slash chord (e.g. “Eb/G” is an acceptable substitute for “Eb” and vice versa).

While the presence of voicings is used to make the decision "I'm going to look for a ___-type instrument" once XJ has arrived at the decision "I'm going to craft this ___-type chord-mode instrument now for this segment" there are zero references to voicing content. The content of the chord voicings is ignored. E.g. It’s possible to tell XJ to seek Pad instruments for a given main program even if the content of those voicings are all just “X” but it’s critical to understand the whole template you are composing. If the design of the template calls for both Note- and Chord-type instruments for a given instrument type, then it’s necessary to write whole voicings (comma-separated lists of notes voicing each chord) for interoperability.

For a table of XJ’s chord comprehension, see Appendix A. Chord Interpretation
For a table of XJ’s chord comprehension, see [**Chord Interpretation**](/making-xj-music/chords/index.en.md)

## Event-mode Instruments

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ tags = ["program", "configuration", "settings", "parameters"]

| Type | Purpose |
|----------------------|-------------------------------------------------------------------------------------------------------|
| barBeats | Sets the length of a bar, as measured in total number of beats. |
| cutoffMinimumBars | Sets the minimum length of bars that a sequence can transition into another in. |
| doPatternRestartOnChord | Determines whether patterns restart on chord changes. |
| **barBeats** | Sets the length of a bar, as measured in total number of beats. |
| **cutoffMinimumBars** | Sets the minimum length of bars that a sequence can transition into another in. |
| **doPatternRestartOnChord** | Determines whether patterns restart on chord changes. |
Loading

0 comments on commit ce78843

Please sign in to comment.