schoenberg: Generate a 12-tone matrix using Arnold Schoenberg's serialism...

Description Usage Arguments Value References Examples

Description

Generate a 12-tone matrix using Arnold Schoenberg's serialism technique.

Usage

1
schoenberg(prime0 = NULL, tone0 = NULL, accidentals = NULL, seed = NULL)

Arguments

prime0

Optional: Vector of notes or numeric note indices to use in forming the matrix. If the vector is numeric, the values must span from 0 - 11, where 0 is the lead tone (unless tone0 is specified, note 0 will be treated as "C"). If supplying note names, use capital letters for the note names, use "#" to indicate sharps, and use "b" to indicate flats.

tone0

Optional: Name of the note to use as the lead tone of the matrix.

accidentals

Optional: Character scalar that determines whether accidentals should be represented as sharps (accidentals = "sharps") or flats (accidentals = "flats"); default value is NULL. accidentals can also be set to "integers" when one wishes to obtain a 12-tone matrix of numeric indices rather than notes. When accidentals is NULL, matrices created from pre-specified vectors of notes will use the original set of accidentals, whereas random matrices and matrices created from vectors of numeric indices will default to sharp notation.

seed

Optional: Seed value to use in generating random matrices. Set this to a numeric value when matrices need to be reproducible.

Value

A 12-tone matrix of the "schoenberg" class with prime series on the rows and inverted series on the columns.

References

Schoenberg, A. (1923). Fünf klavierstücke [Five piano pieces], Op. 23, Movement 5: Walzer. Copenhagen, Denmark: Wilhelm Hansen.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#### Generating Random 12-Tone Matrices ####
# The schoenberg() function can generate completely random 12-tone matrices:
schoenberg()

# Or you can specify a seed value so that your matrices are reproducible:
schoenberg(seed = 42)


#### Generating 12-Tone Matrices From a Specified Vector of Notes ####
# For illustration, let's create two equivalent vectors of note information
# for Schoenberg's first 12-tone serialist work: Walzer from Opus 23.

# First, let's create one vector with note labels:
prime01 <- c("C#", "A", "B", "G", "Ab", "F#", "A#", "D", "E", "Eb", "C", "F")

# Next, let's create an equivalent vector using numeric indices instead of notes:
prime02 <- c(1, 9, 11, 7, 8, 6, 10, 2, 4, 3, 0, 5)


# Now, let's generate a 12-tone matrix from our note-based vector:
schoenberg(prime0 = prime01)

# And let's generate a matrix from our number-based vector:
schoenberg(prime0 = prime02)

# Schoenberg used a mix of sharps and flats in his notation, wich lost in translation with the
# numeric-index approach. Let's re-create our note-based matrix using only sharps:
schoenberg(prime0 = prime01, accidentals = "sharps")

# These two approaches produce identical outputs:
all(schoenberg(prime0 = prime01, accidentals = "sharps") == schoenberg(prime0 = prime02))


# Matrices can also be generated with flat notation by setting accidentals to "flats":
schoenberg(prime0 = prime01, accidentals = "flats")
schoenberg(prime0 = prime02, accidentals = "flats")

# As before, these two approaches produce identical outputs:
all(schoenberg(prime0 = prime01, accidentals = "flats") ==
         schoenberg(prime0 = prime02, accidentals = "flats"))


# We can also manipulate the output of the schoenberg() function
# so that the lead tone of the matrix is a particular note.
# This works with either note-based or number-based input vectors:
schoenberg(prime0 = prime01, tone0 = "C", accidentals = "sharps")
schoenberg(prime0 = prime02, tone0 = "C")

# And, as before, these two approaches produce identical outputs:
all(schoenberg(prime0 = prime01, tone0 = "C", accidentals = "sharps") ==
         schoenberg(prime0 = prime02, tone0 = "C"))

Example output

-----------------------------------------------------  schoenberg version 2.0.2  --
Please report any bugs or feature requests to github.com/jadahlke/schoenberg/issues

     I0  I10  I7  I2  I4  I9  I5  I6  I8  I3  I1  I11    
P0    G    F   D   A   B   E   C  C#  D#  A#  G#   F#  R0
P2    A    G   E   B  C#  F#   D  D#   F   C  A#   G#  R2
P5    C   A#   G   D   E   A   F  F#  G#  D#  C#    B  R5
P10   F   D#   C   G   A   D  A#   B  C#  G#  F#    E R10
P8   D#   C#  A#   F   G   C  G#   A   B  F#   E    D  R8
P3   A#   G#   F   C   D   G  D#   E  F#  C#   B    A  R3
P7    D    C   A   E  F#   B   G  G#  A#   F  D#   C#  R7
P6   C#    B  G#  D#   F  A#  F#   G   A   E   D    C  R6
P4    B    A  F#  C#  D#  G#   E   F   G   D   C   A#  R4
P9    E    D   B  F#  G#  C#   A  A#   C   G   F   D#  R9
P11  F#    E  C#  G#  A#  D#   B   C   D   A   G    F R11
P1   G#   F#  D#  A#   C   F  C#   D   E   B   A    G  R1
    RI0 RI10 RI7 RI2 RI4 RI9 RI5 RI6 RI8 RI3 RI1 RI11    
     I0  I4  I11  I8  I1  I3  I7  I5  I9  I2  I10  I6    
P0    C   E    B  G#  C#  D#   G   F   A   D   A#  F#  R0
P8   G#   C    G   E   A   B  D#  C#   F  A#   F#   D  R8
P1   C#   F    C   A   D   E  G#  F#  A#  D#    B   G  R1
P4    E  G#   D#   C   F   G   B   A  C#  F#    D  A#  R4
P11   B  D#   A#   G   C   D  F#   E  G#  C#    A   F R11
P9    A  C#   G#   F  A#   C   E   D  F#   B    G  D#  R9
P5    F   A    E  C#  F#  G#   C  A#   D   G   D#   B  R5
P7    G   B   F#  D#  G#  A#   D   C   E   A    F  C#  R7
P3   D#   G    D   B   E  F#  A#  G#   C   F   C#   A  R3
P10  A#   D    A  F#   B  C#   F  D#   G   C   G#   E R10
P2    D  F#   C#  A#  D#   F   A   G   B   E    C  G#  R2
P6   F#  A#    F   D   G   A  C#   B  D#  G#    E   C  R6
    RI0 RI4 RI11 RI8 RI1 RI3 RI7 RI5 RI9 RI2 RI10 RI6    
     I0  I8  I10  I6  I7  I5  I9  I1  I3  I2  I11  I4    
P0   C#   A    B   G  Ab  F#  A#   D   E  Eb    C   F  R0
P4    F  C#   Eb   B   C  A#   D  F#  Ab   G    E   A  R4
P2   Eb   B   C#   A  A#  Ab   C   E  F#   F    D   G  R2
P6    G  Eb    F  C#   D   C   E  Ab  A#   A   F#   B  R6
P5   F#   D    E   C  C#   B  Eb   G   A  Ab    F  A#  R5
P7   Ab   E   F#   D  Eb  C#   F   A   B  A#    G   C  R7
P3    E   C    D  A#   B   A  C#   F   G  F#   Eb  Ab  R3
P11   C  Ab   A#  F#   G   F   A  C#  Eb   D    B   E R11
P9   A#  F#   Ab   E   F  Eb   G   B  C#   C    A   D  R9
P10   B   G    A   F  F#   E  Ab   C   D  C#   A#  Eb R10
P1    D  A#    C  Ab   A   G   B  Eb   F   E   C#  F#  R1
P8    A   F    G  Eb   E   D  F#  A#   C   B   Ab  C#  R8
    RI0 RI8 RI10 RI6 RI7 RI5 RI9 RI1 RI3 RI2 RI11 RI4    
     I0  I8  I10  I6  I7  I5  I9  I1  I3  I2  I11  I4    
P0   C#   A    B   G  G#  F#  A#   D   E  D#    C   F  R0
P4    F  C#   D#   B   C  A#   D  F#  G#   G    E   A  R4
P2   D#   B   C#   A  A#  G#   C   E  F#   F    D   G  R2
P6    G  D#    F  C#   D   C   E  G#  A#   A   F#   B  R6
P5   F#   D    E   C  C#   B  D#   G   A  G#    F  A#  R5
P7   G#   E   F#   D  D#  C#   F   A   B  A#    G   C  R7
P3    E   C    D  A#   B   A  C#   F   G  F#   D#  G#  R3
P11   C  G#   A#  F#   G   F   A  C#  D#   D    B   E R11
P9   A#  F#   G#   E   F  D#   G   B  C#   C    A   D  R9
P10   B   G    A   F  F#   E  G#   C   D  C#   A#  D# R10
P1    D  A#    C  G#   A   G   B  D#   F   E   C#  F#  R1
P8    A   F    G  D#   E   D  F#  A#   C   B   G#  C#  R8
    RI0 RI8 RI10 RI6 RI7 RI5 RI9 RI1 RI3 RI2 RI11 RI4    
     I0  I8  I10  I6  I7  I5  I9  I1  I3  I2  I11  I4    
P0   C#   A    B   G  G#  F#  A#   D   E  D#    C   F  R0
P4    F  C#   D#   B   C  A#   D  F#  G#   G    E   A  R4
P2   D#   B   C#   A  A#  G#   C   E  F#   F    D   G  R2
P6    G  D#    F  C#   D   C   E  G#  A#   A   F#   B  R6
P5   F#   D    E   C  C#   B  D#   G   A  G#    F  A#  R5
P7   G#   E   F#   D  D#  C#   F   A   B  A#    G   C  R7
P3    E   C    D  A#   B   A  C#   F   G  F#   D#  G#  R3
P11   C  G#   A#  F#   G   F   A  C#  D#   D    B   E R11
P9   A#  F#   G#   E   F  D#   G   B  C#   C    A   D  R9
P10   B   G    A   F  F#   E  G#   C   D  C#   A#  D# R10
P1    D  A#    C  G#   A   G   B  D#   F   E   C#  F#  R1
P8    A   F    G  D#   E   D  F#  A#   C   B   G#  C#  R8
    RI0 RI8 RI10 RI6 RI7 RI5 RI9 RI1 RI3 RI2 RI11 RI4    
[1] TRUE
     I0  I8  I10  I6  I7  I5  I9  I1  I3  I2  I11  I4    
P0   Db   A    B   G  Ab  Gb  Bb   D   E  Eb    C   F  R0
P4    F  Db   Eb   B   C  Bb   D  Gb  Ab   G    E   A  R4
P2   Eb   B   Db   A  Bb  Ab   C   E  Gb   F    D   G  R2
P6    G  Eb    F  Db   D   C   E  Ab  Bb   A   Gb   B  R6
P5   Gb   D    E   C  Db   B  Eb   G   A  Ab    F  Bb  R5
P7   Ab   E   Gb   D  Eb  Db   F   A   B  Bb    G   C  R7
P3    E   C    D  Bb   B   A  Db   F   G  Gb   Eb  Ab  R3
P11   C  Ab   Bb  Gb   G   F   A  Db  Eb   D    B   E R11
P9   Bb  Gb   Ab   E   F  Eb   G   B  Db   C    A   D  R9
P10   B   G    A   F  Gb   E  Ab   C   D  Db   Bb  Eb R10
P1    D  Bb    C  Ab   A   G   B  Eb   F   E   Db  Gb  R1
P8    A   F    G  Eb   E   D  Gb  Bb   C   B   Ab  Db  R8
    RI0 RI8 RI10 RI6 RI7 RI5 RI9 RI1 RI3 RI2 RI11 RI4    
     I0  I8  I10  I6  I7  I5  I9  I1  I3  I2  I11  I4    
P0   Db   A    B   G  Ab  Gb  Bb   D   E  Eb    C   F  R0
P4    F  Db   Eb   B   C  Bb   D  Gb  Ab   G    E   A  R4
P2   Eb   B   Db   A  Bb  Ab   C   E  Gb   F    D   G  R2
P6    G  Eb    F  Db   D   C   E  Ab  Bb   A   Gb   B  R6
P5   Gb   D    E   C  Db   B  Eb   G   A  Ab    F  Bb  R5
P7   Ab   E   Gb   D  Eb  Db   F   A   B  Bb    G   C  R7
P3    E   C    D  Bb   B   A  Db   F   G  Gb   Eb  Ab  R3
P11   C  Ab   Bb  Gb   G   F   A  Db  Eb   D    B   E R11
P9   Bb  Gb   Ab   E   F  Eb   G   B  Db   C    A   D  R9
P10   B   G    A   F  Gb   E  Ab   C   D  Db   Bb  Eb R10
P1    D  Bb    C  Ab   A   G   B  Eb   F   E   Db  Gb  R1
P8    A   F    G  Eb   E   D  Gb  Bb   C   B   Ab  Db  R8
    RI0 RI8 RI10 RI6 RI7 RI5 RI9 RI1 RI3 RI2 RI11 RI4    
[1] TRUE
     I0  I8  I10  I6  I7  I5  I9  I1  I3  I2  I11  I4    
P0    C  G#   A#  F#   G   F   A  C#  D#   D    B   E  R0
P4    E   C    D  A#   B   A  C#   F   G  F#   D#  G#  R4
P2    D  A#    C  G#   A   G   B  D#   F   E   C#  F#  R2
P6   F#   D    E   C  C#   B  D#   G   A  G#    F  A#  R6
P5    F  C#   D#   B   C  A#   D  F#  G#   G    E   A  R5
P7    G  D#    F  C#   D   C   E  G#  A#   A   F#   B  R7
P3   D#   B   C#   A  A#  G#   C   E  F#   F    D   G  R3
P11   B   G    A   F  F#   E  G#   C   D  C#   A#  D# R11
P9    A   F    G  D#   E   D  F#  A#   C   B   G#  C#  R9
P10  A#  F#   G#   E   F  D#   G   B  C#   C    A   D R10
P1   C#   A    B   G  G#  F#  A#   D   E  D#    C   F  R1
P8   G#   E   F#   D  D#  C#   F   A   B  A#    G   C  R8
    RI0 RI8 RI10 RI6 RI7 RI5 RI9 RI1 RI3 RI2 RI11 RI4    
     I0  I8  I10  I6  I7  I5  I9  I1  I3  I2  I11  I4    
P0    C  G#   A#  F#   G   F   A  C#  D#   D    B   E  R0
P4    E   C    D  A#   B   A  C#   F   G  F#   D#  G#  R4
P2    D  A#    C  G#   A   G   B  D#   F   E   C#  F#  R2
P6   F#   D    E   C  C#   B  D#   G   A  G#    F  A#  R6
P5    F  C#   D#   B   C  A#   D  F#  G#   G    E   A  R5
P7    G  D#    F  C#   D   C   E  G#  A#   A   F#   B  R7
P3   D#   B   C#   A  A#  G#   C   E  F#   F    D   G  R3
P11   B   G    A   F  F#   E  G#   C   D  C#   A#  D# R11
P9    A   F    G  D#   E   D  F#  A#   C   B   G#  C#  R9
P10  A#  F#   G#   E   F  D#   G   B  C#   C    A   D R10
P1   C#   A    B   G  G#  F#  A#   D   E  D#    C   F  R1
P8   G#   E   F#   D  D#  C#   F   A   B  A#    G   C  R8
    RI0 RI8 RI10 RI6 RI7 RI5 RI9 RI1 RI3 RI2 RI11 RI4    
[1] TRUE

schoenberg documentation built on May 2, 2019, 4:04 p.m.