Programs

In XJ music, a Program is a collection of musical instructions. While all programs are stored according to the Program Model, different Types of programs have unique purposes and behaviors.

Each program contains a configuration, which may affect the music when that program is chosen.

The program menu contains a list of all programs.

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

Programs Programs

To compose the content of any given program, click its name in the list to open the Program Editor.

Program Model

XJ music Program Entity Model XJ music Program Entity Model

Program Details

Events

Sequence pattern events are used as a basis for selecting and assembling instrument audio

Configuration of Programs

Type Purpose barBeats Sets the length of a bar, as measured in total number of beats.

Types of Programs

Type Purpose Macro Programs Like a playlist, this describes an order in which to play songs a.

Subsections of Programs

Events

Automatic fabrication performs a search for matching Instrument Audio for the chosen Sequence Pattern Voice-Events. That is how an Audio is chosen inside of an Instrument, based on its Audio-Events.

We use a score-based stochastic model for event audio picking, as opposed to the marble bag model we use for choice.

Drum Beat Events

The beat program is the center of the groove during any given main program. XJ chooses a single beat and keeps that beat for the duration of the main program.

It is important for percussive-type instruments to use the following standardized set of Event Names, which have far more influence on the outcome of percussive instrument-audio choice (than, for example, Event Notes).

Currently, we are using a very narrow set of events for in Beat-type programs.

We currently use these codes, for beat program events, and drum instrument audio events:

CODEName
HIHATCLHigh Hat Closed
HIHATOPHigh Hat Open
KICKKick
SNARESnare

Drum Detail Events

In the future, XJ will also choose Detail programs having additional drum events to decorate the groove. These drum detail programs serve a similar function as percussion loop and transition instruments.

We expect that these events may include various types of drums or other percussion instruments.

We plan to use these codes for drum detail program events, and drum instrument audio events:

CODEName
BONGOHIBongo High
BONGOLOBongo Low
BLOCKWDLOBlock Wood Low
CABASACabasa
CLAPClap
CLAVESClaves
CONGALOConga Low
CONGAHIOPConga High Open
CONGAHIMUConga High Mute
COWBELLCowbell
CRASHCymbal Crash
CUICAOPCuica Open
CUICAMUCuica Mute
GONGGong
GUIROSHGuiro Short
GUIROLNGuiro Long
HIHATCLHigh Hat Closed
HIHATOPHigh Hat Open
KICKKick
MARACASMaracas
RIDECymbal Ride
SHAKERShaker
SLAPSlap
SPLASHCymbal Splash
STICKSIDEStick Side
TAMBOURTambourine
TIMBALEHITimbale High
TIMBALELOTimbale Low
TOMFLRHITom Floor High
TOMFLRLOTom Floor Low
TOMHITom High
TOMHIMIDTom High Mid
TOMLOTom Low
TOMLOMIDTom Low Mid
TRIANGMUTriangle Mute
TRIANGOPTriangle Open
VIBRASLAPVibraslap

Percussion Loops

Percussion Loops have an Instrument Type of Percussion, and an Instrument Mode of Loop.

They are assigned for each fabricated segment during percussion loop craft. It’s going to be used to determine a target # of perc loops.

Assumed that one or more loops will be chosen for any segment— minimum and maximum are configured via template config. For each MP, setup delta arcs for N number of percussive loops.

Perc loop instrument behavior selects one audio per section. Consolidating audio with the same sound set under one instrument. Then setting the default length an audio stays in the stream to a full section rather than switching every 4 beats.

Percussive Loops can specify # beats in the instrument or audio editor.

Loop Priority

Some Perc Loops are killer by themselves. In the case of house music, this might be a fully fleshed out 16x 16th notes of house locomotion, requiring only an added kick and snare to be complete. Let’s call these PRIMARY perc loops.

Other Perc Loops are intended to be added on top of a stable base of Primary perc loops.

Other Perc. Loops are intended to support the known structure of the rhythm.

Based on the intensity value of any given perc loop and the current mix intensity, XJ will fade each perc loop into the mix.

Configuration of Programs

Configuration of Programs Configuration of Programs

TypePurpose
barBeatsSets the length of a bar, as measured in total number of beats.
cutoffMinimumBarsSets the minimum length of bars that a sequence can transition into another in.
doPatternRestartOnChordDetermines whether patterns restart on chord changes.

Types of Programs

TypePurpose
Macro ProgramsLike a playlist, this describes an order in which to play songs a.k.a. main programs.
Main ProgramsLike a song, this musical notation describes chord progressions, as well as voicings of those chords for various types of instruments.
Beat ProgramsThis describes a beat, as in the foundation of a groove. XJ chooses one beat for an entire song (Main Program). This musical notation is used directly for a Drum Instrument to play.
Detail ProgramsThis involves transcribing the rhythmic pattern for a specific instrument, allowing XJ to interpret and apply it to any song based on its chord voicings.