Skip to content

Commit

Permalink
Initial 4.8.0 add (sorry, history is lost)
Browse files Browse the repository at this point in the history
  • Loading branch information
jkotlinski committed Apr 10, 2016
1 parent 2cdec1e commit 5ea5cf7
Show file tree
Hide file tree
Showing 74 changed files with 1,611 additions and 0 deletions.
145 changes: 145 additions & 0 deletions advanced.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
\chapter{Advanced Techniques}

\section{Copy and Paste} \label{copy-paste}

Little Sound Dj has a clipboard for temporary data storage. Pressing \textsc{b+a} will cut the value
under the cursor and store it on the clipboard. The value can then be pasted by pressing
\textsc{select+a}.

In most screens, it is possible to mark up blocks by pressing \textsc{select+b} and moving around
the cursor. When having marked up a block, it can be copied to the clipboard by pressing \textsc{b},
or cut to the clipboard by pressing \textsc{select+a}. The clipboard contents can then be pasted by
pressing \textsc{select+a}.

Some quick-mark button presses are implemented:
\begin{itemize}
\item \textsc{select+(b, b)} = quick-mark a column or row.
\item \textsc{select+(b, b, b)} = quick-mark an entire screen.
\end{itemize}

When having marked a block, you can change all data inside that block by pressing \textsc{a+cursor}. This can be used, for example, to transpose several notes quickly.

\section{Cloning}

Cloning is a shortcut that can save you much unnecessary copy and paste action. It allows you to create copies of chains, phrases, instruments and tables directly from the song, chain, phrase and instrument screens.

Let's say you have a melody in chain 00, and you want to continue the song with the same melody, but a little changed. Then you copy 00 \textsc{(select+b, b)} and paste one row down \textsc{(select+a)}, so you get:

\begin{verbatim}
00
00
\end{verbatim}

Now, place the cursor on the second 00, and press \textsc{select+(b, a)}.
You will now get a new chain (probably called 01) which is a copy of 00. Since it's a copy, you can play around with it as much as you want without touching 00.

\subsection{Deep vs. Slim-Cloning}

There are two different modes for cloning: slim-cloning and deep-cloning. You can select mode in the project screen.

If you slim-clone 00, Little Sound Dj makes a new chain 01 that
contains the same phrases as 00.

If you deep-clone 00, Little Sound Dj makes a new chain 00, and
also clones the phrases within 00 into 01. That way,
you can change 01's phrases without affecting 00.

The advantage of deep-cloning is that you have no risk of modifying old phrases by accident. The drawback is that it uses more phrases, so that you may run out of phrases faster. Also, your songs may take up more blocks when being saved using the file screen.

If you find yourself running out of phrases, try using \textsc{clean song data} in project screen. (Section \ref{clean-song-data}.)

\section{The Importance of Backups}

Some wise words from many peoples hard-earned experience: If you use Little Sound Dj on a Game Boy cartridge, it might be a good idea to examine backup options like the Transferer or the MegaMemory Card. Game Boy cartridges are often rather unstable, as they are depending on an internal battery that is likely to run out sooner or later. If you are serious about your music, you should do regular backups, or at least try to record your songs once in a while.

\section{Muting, Soloing and Panning on the Fly}

It is always possible to mute a channel temporarily by pressing \textsc{b+select}. If the \textsc{b} button is released before \textsc{select}, the channel will stay muted until \textsc{b} is pressed again.

Correspondingly, a channel can be played solo by pressing \textsc{b+start}. If the \textsc{b} button is released before \textsc{start}, the other channels will stay muted. If the \textsc{start} button is released first, all channels will be turned on again.

It is also possible to pan channels left or right, by pressing \textsc{b+left/right} in the song screen.

\section{Live Mode}

The live mode is a special flavor of the song screen. It can be reached by pressing \textsc{select+left} while in the song screen. In the live mode, it is possible to start and stop playing chains one by one. In contrast to the usual song screen, the different channels can be started and stopped independently. It is also possible to jump between different song positions while playing, without causing audio glitches or lost synchronization.

To play a chain, move the cursor to the chain and press \textsc{start}. To stop playing a chain, go to that channel and press \textsc{select+start}. If another chain is already playing, the starts and stops will be queued until that chain has been played through. If you want to queue until the next phrase end instead, tap \textsc{start} twice to speed up the switch.

To switch back to song mode from live mode, just press \textsc{select+left} while in the song screen.

\includegraphics[width=1cm]{tip}TIP!
\begin{itemize}
\item \textit{To start or stop several chains at once, mark them before pressing \textsc{start} or \textsc{select+start}. (Marking is described in section \ref{copy-paste}.)}
\end{itemize}

\subsection{Chain Loops}

Using chain loops is a useful live mode technique. This technique is based on the fact that the song sequencer (when being in the live mode) won't rewind the song position all the way up to the first song sequencer step when encountering end of track; instead, it stops rewinding as soon as it encounters an empty step.

\begin{figure}[htpb]
\begin{center}
\fbox{\includegraphics{chainloop}}
\end{center}
\caption{Chain Loop Example}
\label{fig:chainloop}
\end{figure}

Example: We have a setup that looks like figure~\ref{fig:chainloop}.

Assume that we start playing pulse channel 1 at song position 4. The player will now loop chains 2 and 3. Defining a number of such chain loops to alternate between would provide a good starting point for a live performance.

\section{Creating Synthetic Drum Instruments}

Creating good-sounding drum instruments without using the sampled drum kits might be a bit tricky, if you've had no prior experience with drum synthesis. Nevertheless, it's a very useful technique once you know it. Here are some starting-out ideas.

\begin{figure}[hbtp]
\centering
\subfloat[Bass Drum]{
\fbox{\includegraphics{instr-kick}}
}
\qquad
\subfloat[Snare Drum]{
\fbox{\includegraphics{instr-snare}}
}

\subfloat[Closed Hi-Hat]{
\fbox{\includegraphics{instr-chh}}
}
\qquad
\subfloat[Open Hi-Hat]{
\fbox{\includegraphics{instr-ohh}}
}

\subfloat[Cymbal]{
\fbox{\includegraphics{instr-cym}}
}
\qquad
\subfloat[Snare Drum Table]{
\fbox{\includegraphics{table-snare}} \label{fig:table-snare}
}

\caption{Synthetic Drum Instruments}
\label{fig:instr-examples}
\end{figure}

\subsection{Bass Drum}

Use pulse channel 1 for creating bass drum sounds. The amplitude envelope should have a strong attack and fast decay - try setting it to \$C1. Wave should be 50-50 high/low, even though other waves can be used for making the instrument sound more distorted. The sweep value is maybe the most important part in creating a successful kick instrument. It should have a high initial frequency and decay. Try setting it to a value of \$E3, and playing the instrument at note C-6. For a more snappy sounding kick, try experimenting with the envelope and length parameters.

It is also possible to use the noise channel for creating bass drums. Feel free to experiment around.

\subsection{Snare Drum}

Use the noise channel for creating snare drum sounds. The amplitude envelope should have a strong attack and fast decay - try setting it to \$C1. Use the length parameter to create more snappy sounding snares. The shape parameter can be used for adjusting the timbre - shape values close to \$EC might prove useful.

\subsection{Hi-Hats and Cymbals}

Hi-hats are created using the noise channel. Use a shape value of \$FF for selecting a timbre with high frequency content. Change the envelope and length parameters for creating the desired amplitude envelope. For emulating cymbals, use a shape value near \$EE to create a somewhat rougher timbre.

\subsection{Taking Advantage of Tables}

For adding that extra punch to snares, you can use a table that uses the transpose column to change the noise shape rapidly. (See figure~\ref{fig:table-snare}.)



229 changes: 229 additions & 0 deletions commands.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,229 @@
\chapter{Commands}

Commands can be used in phrases and tables for altering the sound. There is a lot of power hidden in the commands, so it is suggested that you skim through this chapter at least once to get an idea of what they can do for you.

\includegraphics[width=1cm]{tip}TIP!
\begin{itemize}
\item \textit{Tapping \textsc{a} on a command letter will display a scrolling help text in the top of the screen. \textsc{a+cursor} can then be used to browse through the existing commands. The text can be paused by holding \textsc{select}.}
%\marginpar{\includegraphics[width=1cm]{tip}TIP!}
\end{itemize}

\section{A: Run tAble}

Run a table. This command can be used in phrases, or inside a table, for jumping to another table.

\begin{description}
\item[A03] run table 3
\end{description}

\section{C: Chord}
\label{command-chord}
Produce chords by doing a simple arpeggio that extends the base note with the given semitones.

\begin{description}
\item[C37] plays a minor chord: 0, 3, 7, 0, 3, 7, 0, 3, 7, \ldots
\item[C47] plays a major chord: 0, 4, 7, 0, 4, 7, 0, 4, 7, \ldots
\item[C0C] plays 0, 0, C, 0, 0, C, 0, 0, C, \ldots
\item[CC0] plays 0, C, 0, C, 0, C, \ldots
\item[CCC] plays 0, C, C, 0, C, C, 0, C, C, \ldots
\end{description}

\section{D: Delay}

Delay the triggering of a note with the given number of ticks.

\section{E: Amplitude Envelope}

This command functions in two different ways, depending on which instrument type it is used on.

\subsection{For Pulse and Noise Instruments}
The first value digit sets the initial amplitude (0=min, \$F=max); the second digit sets the release (0,8: no change, 1-7: decrease, 9-\$F: increase).

\subsection{For Wave Instruments}
\begin{description}
\item[E00] volume 0\%
\item[E01] volume 25\%
\item[E02] volume 50\%
\item[E03] volume 100\%
\end{description}

\section{F: Wave Frame}

This command can be used on wave and kit instruments only.

\subsection{For Kit Instruments:}
Modify the start offset of the sample.

\subsection{For Wave Instruments:}
Change the wave frame that's being played on the wave channel. This command is relative, meaning that the command value will be added to the current frame number. This can be used for playing through synth sounds manually.

\includegraphics[width=1cm]{tip}TIP!
\begin{itemize}
\item \textit{Since a synth sound contains 16 (\$10) waves, issuing the command \textsc{F10} will in effect jump to the next synth sound.}
%\marginpar{\includegraphics[width=1cm]{tip}TIP!}
\end{itemize}

\begin{description}
\item Example:
\item[F01] If wave frame 3 is being played, advance 1 frame and start playing frame number 4.
\end{description}

\section{G: Groove Select}

Select the groove to use when playing phrases or tables.

\begin{description}
\item Example:
\item[G04] select groove 4
\end{description}

\section{H: Hop (or Stop)}

The H command is used to hop to a new play position. It can also be used to stop playing (\texttt{HFF}).

H works a little differently, depending on whether it is used in the phrase or the table screen.

\subsection{Phrase Screen}

In the phrase screen, H is used for jumping to the next phrase, without playing the current phrase to its end.
\begin{description}
\item Example:
\item[H00] hop to next phrase
\item[H03] hop to next phrase and start play at phrase row 3
\item[HFF] stop playing song (or channel, if in live mode)
\end{description}
\includegraphics[width=1cm]{tip}TIP!
\nolinebreak
\begin{itemize}
\item \textit{If you want to compose in waltz time (3/4), put \textsc{H00} commands on step \textsc{C} in every phrase.}
\end{itemize}


\subsection{Table Screen}

In the table screen, H is used for creating table loops. The first digit sets how many times the hop should be done before moving on; 0 means ``forever.'' The second digit sets the table step to jump to. Loops can be nested; that is, you can have smaller loops inside bigger ones.

\begin{description}
\item Example:
\item[H21] hop twice to table position 1.
\item[H04] hop to table position 4 forever.
\end{description}

\section{K: Kill Note}

\begin{description}
\item Example:
\item[K00] kill note instantly
\item[K03] kill note after 3 ticks
\end{description}

\section{L: Slide}

The L command works on pulse and wave instruments only. It performs a pitch bend that stops when it reaches a given note.

Example:

\begin{verbatim}
C-4 ---
F-4 L04
--- ---
C-4 L03
\end{verbatim}

This will result in a pitch bend that starts with C-4, bends to F-4 with the speed 4, and then bends back to C-4 with speed 3.

Warning: If using the L command next to an empty note value ("---"), results will be undefined.

\section{M: Master Volume}

This command changes the master output volume. The first digit modifies the left output, the second digit the right. The volume can either be set with an absolute value, or changed by a relative value.

Values 0-7 are used to specify absolute volumes. Values 8-\$F give the volume a relative change; 8 is no change, 9-\$B increase, \$D-\$F decrease.

\begin{description}
\item Examples:
\item[M77] maximize volume
\item[M08] turn off left output channel, leave right output channel as is
\item[M99] increase master volume with 1 step
\item[MFE] decrease left volume with 1 step, right volume with 2 steps
\end{description}

\section{O: Set Output}

Pan channel to left, right, none or both outputs.

\section{P: Pitch Bend/Pitch Shift}

The Pitch Bend command works on pulse and wave channels only. When it is used on \texttt{KIT} instruments, it sounds more like a pitch shifter.

\begin{description}
\item Example:
\item[P02] bend up pitch with speed 2
\item[PFE] bend down pitch with speed 2 (\$FE=-2)
\end{description}

\section{R: Retrig the Latest Played Note}

Play the latest played note again. The first digit modulates the volume (0=no change, 1-7=increase, 8-\$F=decrease). The second digit sets a period for the retriggering, zero being the fastest.

\begin{description}
\item Example:
\item[R00] very fast retriggering
\item[RF3] medium speed retriggering, decreasing amplitude (echo effect)
\end{description}

\section{S: Sweep/Shape}

This command has different effects for different instrument types.

\subsection{Pulse Instruments}

S modulates pitch, using the Game Boy hardware. It is useful for creating bass drums and percussion. The first digit affects pitch, the second changes pitch bend velocity.

Note: S has no effect when being used in pulse channel 2!

\subsection{Kit Instruments}

S changes the loop points. The first digit modulates the offset value; the second digit modulates the loop length. (1-7=increase, 9-\$F=decrease.) Used creatively, this command can be very useful for creating a wide range of percussive and timbral effects.

\subsection{Noise Instruments}
\label{command-shape-noise}

On the noise channel, S works like a noise shape filter.
The first digit alters pitch, the second digit alters the randomness.
The command is relative, meaning that the pitch/randomness values
will be added to the currently used values.

In some cases, this command can randomly mute the sound. If that becomes a problem, set
\textsc{s cmd} to \textsc{stable} in instrument screen.

\section{T: Tempo}

Change the tick frequency so that the given \textsc{bpm} will be produced. The \textsc{bpm} setting will be accurate only if the active groove has 6 ticks per note step. If the groove has some other number of ticks per note step, the \textsc{bpm} value should be adjusted according to the formula
\begin{math}
lsdj\_bpm = (desired\_bpm \times ticks\_per\_step)/{6}
\end{math}.

\begin{description}
\item Example:
\item[T80] set tempo to 128 (\$80) \textsc{bpm}
\end{description}

\section{V: Vibrato}

Vibrate pitch. This command has no effect on noise instruments.

\begin{description}
\item Example:
\item[V42] period=4, depth=2
\end{description}

\section{W: Wave}

The W command is used to select one of the four preset pulse waveforms. It can only be used with pulse instruments.

\section{Z: RandomiZe}

The Z command can be used in the phrase and table screens. It repeats the last non-Z command issued in a phrase in the current channel, using the then used command value added with a random number between 0 and the given Z command value.

Note: Randomize does not work with Hop, Groove and Delay commands at the moment.
Binary file added images/Light-Bulb.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/_border.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/analogcable.dia
Binary file not shown.
Binary file added images/analogcable.pdf
Binary file not shown.
Binary file added images/booty.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/border.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/border.psd
Binary file not shown.
Binary file added images/chain.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/chainexample.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/chainloop.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/cr78.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/cr8000.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/dr110.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/dr55.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/drumulator.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/file.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/groove-swing.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/groove.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/icon_idea.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/instr-chh.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/instr-cym.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/instr-kick.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/instr-kit.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/instr-noise.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/instr-ohh.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/instr-pulse.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/instr-snare.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/instr-wave.png
Binary file added images/instr.png
Binary file added images/keybd-map.png
Binary file added images/kit-farm.png
Binary file added images/linndrum.png
Binary file added images/lsdj_black_rgb.pdf
Binary file not shown.
Binary file added images/lsdj_color_rgb.png
Binary file added images/lsdj_logo_hires.png
Binary file added images/map.png
Binary file added images/phase-normal.png
Binary file added images/phase-original.png
Binary file added images/phase-resyn2.png
Binary file added images/phase-resync.png
Binary file added images/phrase.png
Binary file added images/project.png
1 change: 1 addition & 0 deletions images/readme.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Screenshots made using VisualBoy Advance
Binary file added images/rhyace.png
Binary file added images/smiley_gray.png
Binary file added images/song.png
Binary file added images/sp0256al2.png
Binary file added images/speech.png
Binary file added images/synth.png
Binary file added images/table-amp.png
Binary file added images/table-arp.png
Binary file added images/table-snare.png
Binary file added images/tip.png
Binary file added images/tom.png
Binary file added images/tr606.png
Binary file added images/tr707.png
Binary file added images/tr727.png
Binary file added images/tr808.png
Binary file added images/tr909.png
Binary file added images/vshift-40.png
Binary file added images/vshift-80.png
Binary file added images/vshift-original.png
Binary file added images/wave.png
Binary file added images/word.png
Loading

0 comments on commit 5ea5cf7

Please sign in to comment.