Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Carl Corcoran edited this page Sep 11, 2024 · 26 revisions

Welcome to the digifujam wiki!

This is not even a work in progress, it's barely started. If you have a specific question, please contact me in one of these ways:

intro

  • dance
  • cheer
  • graffiti

tour

  • rooms
  • identity / name / color

sampled instruments

Sequencer Mapping / Arpeggiator Modes

A step sequencer is not an arpeggiator, but 7jam's sequencer is flexible enough that it can be transformed to do an arpeggiator's job, and a lot of things in between. The green area of the sequencer toolbar is where this is configured.

The main parameter here is MODE

image

Sequencer mode

This is the basic sequencer mode, it's a looping step sequencer. It plays the notes in the pattern as they were written. Notes you play on your keyboard will play like normal, independent of the sequencer.

Transposing Sequencer Mode

This plays the sequence as it's written, except the whole sequence gets transposed to the key you are playing on your keyboard. You can specify a base note (if the pattern is in C, then base note would be C).

image

For example if you write a bassline in C, set the base note to C4. When you play C4 on your keyboard, the sequence plays as it's written. If you play D4, the sequence gets transposed up 1 whole tone so it's now in D.

If you're playing multiple notes on your keyboard, the lowest note will be used in this calculation.

This would be useful if you really want to specify transposition by playing a single note. If you want the sequence to follow a whole harmonic scale, then you can choose either Chord Scale, Transposing Chord Scale, Spread, Fill Up, or Fill Down modes.

Chord Scale Mode

The chord you play on your keyboard determines the allowed notes in the "scale", and individual sequencer notes are adjusted to conform to that scale. It does not therefore matter which octave you play your chord in; sequenced notes will never move more than 6 semitones away from their original location. That's why the "octave restrict" button is not available in this mode.

Examples:

  • A sequence like C4 D4 E4. You hold on your keyboard C4 D4 Eb4. The resulting sequence will output C4 D4 Eb4. The E got adjusted to Eb.
  • A sequence like C4 D4. You hold on your keyboard D5 F#5. The resulting sequence will output D5 F#5. Both notes got adjusted. Octave did not change despite playing higher on your keyboard.
  • A sequence like C4 D4. You hold on your keyboard C4. The resulting sequence will output C4. Both notes' nearest "chord tone" is C4.

This is geared towards accompaniment or melody parts, where you just want to be able to conform to a scale, and want to keep the original sequencer note as closely as possible.

Transposing Chord Scale Mode

This combines Chord Scale and Transposing Sequencer modes together. The sequence is transposed based on your lowest playing note, and then each individual note is adjusted to conform to one of the notes you're playing on your keyboard.

This would be good for bass lines, where the base note is very important to changing harmony.

Fill Upwards Mode

This is getting closer to arpeggiator territory. Notes that you hold on your keyboard are mapped to notes in the sequencer, from bottom to top, one by one. And when the sequence runs out of held notes, it repeats your chord up an octave. Because sequences tend to have more notes than you're playing live, this tends to spread your notes over a wide range. When that happens, things shift octaves to center over the original notes.

Examples:

  • Sequence: C4 D4 E4, You play on your keyboard F4 G4 A4. Output: F4 G4 A4. All 3 notes got mapped in sequence to your playing notes, from lowest to highest.
  • Sequence: C4 D4 E4. You play on your keyboard F4 G4. Output: F4 G4 F5. The first 2 notes got mapped as above. But E4 wraps back around to the first note you're playing (F4), and it gets placed up an octave. Thus F5.
  • Sequence: C4 D4 E4 F4 G4 A4. You play on your keyboard F4 G4. Output: F3 G3 F4 G4 F5 G5. Your mapped notes start to extend pretty high, so 7jam shifts the output down an octave to center over the original notes.

This would be fine for bass lines, almost acting like the Transposing modes without having to specify a base note. But it breaks down if the base note is somewhere in the middle of the pattern. Therefore I don't recommend it for bass lines. There, better to use Transposing Chord Scale or just Transposing Sequence.

This is more suited as an arpeggiator mode, which follows the sequenced shape closely, and allows octave repetition.

Arpeggiator modes

All of the Arpeggiator: modes completely ignore the notes in the sequencer. They just use the shape and rhythm of the sequenced pattern to play the notes you're holding, in a predetermined order.

It's far from static though, because polyphony and note length in the sequence can produce pretty rich stuff you'll never get out of a real arpeggiator.

And with the octave restrict mode, it becomes even more dynamic, sticking to the range of the original sequence. If you're sidechaining to multiple sequencers this way, things get dynamic & wild.

An interesting behavior of this is that notes are played in sequence, without any concept of where it is in the sequencer pattern. So if the sequencer has 4 notes, and you're holding 3 notes on your keyboard, then things are different every other loop of the sequence. Example: Sequence is C4 D4 E4 F4. You are holding F#5 G#5 A#5. The output will be like, F#5 G#5 A#5 F#5 | G#5 A#5 F#5 G#5 etc.

As Played Mode

Outputs the exact chord you're playing on your keyboard, for every note of the sequenced pattern. Basically you get what you're playing, but snapped to the rhythm of the sequencer. It's effectively a quantizer.

Sequencer Mapping Sidechaining

When the sequencer is in an arpeggiator mode, or otherwise wants MIDI input to perform mapping (i.e. anything that's not normal Sequencer mode), you have the option of side-chaining that MIDI input to a different instrument. In other words, you can make a sequence in 1 instrument, and have it be controlled by another.

A specific practical example: Someone is playing big piano chords but you can't keep up. You take the bass instrument, make a simple sequence and set it up as Transp Chord Scale, and then sidechain it to the piano. Now your bassline is playing in perfect harmony with the piano.

There are a couple ways to do this.

First, the least obvious but most useful

SHIFT+Click the little blue sequencer indicator to set the seq sidechain to the instrument you're holding. It will switch from blue to red, and you now feed MIDI input to that sequencer. This only is available when all of the following conditions pass:

  1. You're controlling an instrument
  2. The other instrument is not being controlled by anyone
  3. The other instrument's sequencer is ready to play and configured with a mode which accepts MIDI input (its indicator will be blue in this case).

image

See above:

  • Acoustic pianos has a dotted border: This means it's a sidechain input source.
  • Electric Pianos is in sequencer mode (green indicator); cannot be sidechained.
  • Acoustic guitars has a gray indicator meaning the sequencer is turned off
  • Electric Guitars has a blue indicator so it can be sidechained by SHIFT+Click
  • Brass Solo has a red indicator; its input is sidechained (in this example, from Acoustic pianos)

Note: CTRL+Click the indicator to reset it and stop sidechaining for that instrument.

From the sequencer editor

image

Here, sidechain is enabled, indicated by the red SC button. Click to set the MIDI input to some other instrument. CTRL+Click to reset it and stop listening to other instruments for MIDI input.

Sequencer Latching Modes

All the arpeggiation / mapping modes except Sequencer mode depend on you playing your keyboard for MIDI input, in order to perform a mapping. There are various ways of "holding" or "latching" the notes you're playing, so you can take your hand off the keyboard and keep your mapping going. Access these modes from the "Settings" menu at the top of your screen. This parameter applies to the performer. So for a sidechained sequencer, it applies to the sidechained player, not the sequencer player.

Off

Notes do not latch. You can use the sustain pedal of course, but you'll also be sustaining the instrument's playing notes.

Sustain pedal latch

The problem with using a sustain pedal to latch notes is that the synthesizer will also sustain its notes, which is unlikely what you want. This mode disables the sustain pedal in your instrument, so you're free to use it for latching notes.

Auto

Sustain pedal is not used for latching. Instead, keys you play are "sticky". You can just press a chord, let it go, and it keeps playing. There is more magic to it than that but it should be intuitive.

To release all notes, double-tap any key.

sequencer

quantization

room patches

synthesizer usage

radio

Radio

persistent identity

user roles, performances, moderation

moderation features

admin features

admin features

discord integration

hotkeys

error reporting features

?log=1
ALT+1

graffiti

extra CSS styles, and control registers

moderators can set extra CSS classes on graffiti items. Below is a full list of options. Not all classes are available in every room. Not all classes play nicely when combined with other classes. Behaviors are not guaranteed to work in the future as i make tweaks to the graffiti system.

The 8 "registers" (RX, RY, RZ, RW, RS, RT, RU, RV) are meant to be usable by CSS classes to make continual changes to things. So CSS classes can use them as they wish, which is why they're not named something more meaningful. They're truly generic variables for mods to set.

RX RY RZ RW RS RT RU RV
upFacingRotateAnim
frontFacingRotateAnim
rightFacingRotateAnim
leftFacingRotateAnim
nofilter
hueRotateAnim
jacuzziFloating speed Y movement rotation
floatingSign3D_LeftFacing speed perspective rotation
floatingSign3D_RightFacing speed perspective rotation
floatingSign3D_FrontFacing speed perspective rotation
solidColor hue saturation brightness
solidColorHueAnim hue speed saturation brightness
softLight
overlay
hidden
straight
monofont
sansfont
dynamicFontSize
vanillaInfoBox
performersOnly
opacityRX opacity
opacityRY opacity
opacityRZ opacity
opacityRW opacity
opacityRV opacity
spotlightAnim_UpFacing_360 X movement Y movement speed
spotlightAnim_LeftFacing_360 X movement Y movement speed
spotlightAnim_RightFacing_360 X movement Y movement speed
spotlightAnim_FrontFacing_360 X movement Y movement speed
spotlightAnim_UpFacing_rot X movement Y movement speed
spotlightAnim_LeftFacing_rot X movement Y movement speed rot extent
spotlightAnim_RightFacing_rot X movement Y movement speed rot extent
spotlightAnim_FrontFacing_rot X movement Y movement speed rot extent
radioPeakScaleRW scale
radioPeakScaleRV scale
overAvatars

NOTE: by default, graffiti tend to have some default styling like a dropshadow. So if you're adding decoration to a room that shouldn't have this, use nofilter.

latency

monitoring

Windows 10

go to control panel sound settings, select device, "configure", and make sure you're on Stereo (not surround).

why not do feature X/Y/Z

  • tempo-synced delay time. web audio's delay does not transition delay time smoothly. so as bpm changes you would hear glitches and crackles. Still a possibility, but that's the rationale for not being done yet.