Nothing
test_that("frequency conversions return as expected", {
x <- "a e4 a4 e5 a5"
y <- pitch_freq(x)
expect_true(all(y - c(220, 329.6276, 440, 659.2551, 880) < 1e-4))
expect_identical(as_noteworthy(x), freq_pitch(y, collapse = TRUE) |>
as_integer_octaves())
expect_identical(pitch_semitones(x), as.integer(c(57, 64, 69, 76, 81)))
expect_true(all(abs(freq_semitones(y) - c(57, 64, 69, 76, 81)) < 0.0001))
x <- c("a,, c, e, c,e_,g, ce_gb_ a'")
expect_error(pitch_freq(x), "Invalid note found.")
y <- chord_freq(x)
expect_is(y, "list")
expect_equal(as.numeric(sapply(y, length)), c(1, 1, 1, 3, 4, 1))
expect_equal(names(y), strsplit(x, " ")[[1]])
y <- chord_semitones(x)
expect_is(y, "list")
expect_equal(length(y), 6)
expect_equal(as.numeric(sapply(y, length)), c(1, 1, 1, 3, 4, 1))
expect_error(semitone_pitch(-1), "Semitones must range from 0 to 131.")
})
test_that("frequency ratios compile correctly", {
x <- c(0.5, 1, 1.5, 2)
y <- c(-1200, 0, 701.955, 1200)
expect_equal(ratio_to_cents(x), y)
expect_equal(ratio_to_cents(x),
ratio_to_cents(rep(220, 4), c(110, 220, 330, 440)))
expect_equal(x, cents_to_ratio(y))
x <- as_music("c4 e_g c'e_'g'")
fr <- freq_ratio(x)
x <- music_notes(x)
expect_identical(fr, freq_ratio(x))
x <- chord_freq(x)
fr1 <- freq_ratio(x)
expect_identical(fr, fr1)
fr2 <- freq_ratio(x, octaves = "integer", accidentals = "sharp")
expect_identical(fr1[, -2], fr2[, -2])
expect_equal(octave_type(fr2$notes), "integer")
expect_equal(accidental_type(fr2$notes), "sharp")
expect_identical(fr1$notes, as_noteworthy(fr2$notes, "tick", "flat"))
y <- freq_ratio(x, ratios = "root")
expect_identical(y$notes,
as_noteworthy("c e_g c'e_' c'g'", format = "vector"))
y <- freq_ratio(x, ratios = "range")
expect_identical(y$notes, as_noteworthy("c e_g c'g'", format = "vector"))
x <- "c e_g c'e_'g'"
fr3 <- freq_ratio(x)
expect_identical(fr, fr3)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.