The PTCell class is the smallest possible element of a PTPattern
table. It holds all information on which note to play, at which frequency,
with which effect and what kind of triggers or jumps should be applied.
Details
The PTCell class consists of a vector of four raw values,
as specified in the 'Slots' section. A cell will tell which PTSample
is to be played at which frequency (corresponding to a note and octave). If
no octave or note is specified, nothing will be played, or if a sample was
started to play on the same PTTrack, this sample will continue
playing. The PTCell can also hold effect() codes which
can be used to add audio effects to the sample being played, change the
speed/tempo at which patterns are played, or trigger jumps to other positions
within a PTPattern or to other positions in the
patternOrder table.
Slots
dataA
vectorof classrawof length 4. Therawdata is stored identical to the way it is stored in a ProTracker module file. Thecharacterrepresentation is easier to understand, and with the ProTrackR package it shouldn't be necessary to manipulate therawdata directly.The structure is illustrated with an example. Let's start with a
characterrepresentation of aPTCellas an example:"C-3 1B A08". The left-hand part of this string shows that this cell will play note "C" in octave 3. The middle part shows thatPTSamplenumber0x1B = 27will be played. The right-hand part of the string shows that effect "A08" will be applied (which is a volume slide down).The
rawrepresentation of this example would be"10 d6 ba 08", or when I replace the actual values with symbols:"sp pp se ee". Where"ss"represents the sample number,"eee"represents theeffect()code and"ppp"represents the period value. The correct note and octave can be derived by looking up the period value in theperiod_table(which is also implemented in the following methods:note(),octave()andperiodToChar()). The period value0x0d6 = 214corresponds with note "C" in octave 3.
See also
Other cell.operations:
PTCell-method,
effect(),
note(),
sampleNumber()
Examples
data("mod.intro")
## get the PTCell from mod.intro at
## PTPattern #1, PTTrack #1 and row #1:
cell <- PTCell(mod.intro, 1, 1, 1)
## get the note of this cell:
note(cell)
#> [1] "C-"
## get the octave of this cell:
octave(cell)
#> [1] 3
## get the sampleNumber of this cell:
sampleNumber(cell)
#> [1] 1
## get the effect code of this cell:
effect(cell)
#> [1] "A08"
## get the raw data of this cell:
as.raw(cell)
#> [1] 00 d6 1a 08
## get the character representation of this cell:
as.character(cell)
#> [1] "C-3 01 A08"