Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Package: ProTrackR
Type: Package
Title: Manipulate and Play 'ProTracker' Modules
Version: 0.4.3.0001
Version: 0.4.4
Authors@R: c(person("Pepijn", "de Vries", role = c("aut", "cre", "dtc"),
email = "pepijn.devries@outlook.com",
comment = c(ORCID = "0000-0002-7961-6646")))
Expand All @@ -27,3 +27,4 @@ Roxygen: list(markdown = TRUE)
NeedsCompilation: no
URL: https://pepijn-devries.github.io/ProTrackR/, https://github.com/pepijn-devries/ProTrackR/
BugReports: https://github.com/pepijn-devries/ProTrackR/issues
Language: en-US
6 changes: 3 additions & 3 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
ProTrackR v0.4.3.0001
ProTrackR v0.4.4
=============

* Fixed CRAN note
* Updated documentation
* Updated and corrected documentation
* Migrated ModArchive and modLand functions to the `openmpt` package

ProTrackR v0.4.3
Expand Down Expand Up @@ -56,7 +56,7 @@ ProTrackR v0.3.5

* Added functions to exchange pattern data with
MODPlug tracker.
* Endianness is explicitely set to "little" when reading
* Endianness is explicitly set to "little" when reading
and writing samples and modules. As all data is read and
written as raw, this should not affect the package
functioning.
Expand Down
2 changes: 1 addition & 1 deletion R/01supporting_functions.r
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ periodToSampleRate <-
#' @param raw_dat A vector of class `raw` from which the high or low nybble value
#' needs to be extracted.
#' @param which A character string indicating whether the high or low nybble should
#' be returnd. It should either be `"low"` (default) or `"high"`.
#' be returned. It should either be `"low"` (default) or `"high"`.
#' @returns A vector of the same length as `raw_dat` holding integer values.
#' @examples
#' ## this will return 0x0f:
Expand Down
2 changes: 1 addition & 1 deletion R/02PTCell.r
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,7 @@ setGeneric("note<-", function(x, value = c("C-", "C#", "D-",
#' @param x Either a (`vector` of) numeric value(s), representing a period
#' value. It can also be a [`PTCell`] object.
#' @param value A `character` string representing the chromatic scale note
#' with wich the current note needs to be replaced. Should have any of the folling values:
#' with which the current note needs to be replaced. Should have any of the following values:
#' `"C-"`, `"C#"`, `"D-"`, `"D#"`, `"E-"`, `"F-"`,
#' `"F#"`, `"G-"`, `"G#"`, `"A-"`, `"A#"`, `"B-"`,
#' or `"--"`.
Expand Down
6 changes: 3 additions & 3 deletions R/03PTTrack.r
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ validity.PTTrack <- function(object)
#' channels. Two channels (2 and 3) were hardware-mixed fully to the right stereo
#' outputs and the other two (1 and 4) fully to the left stereo outputs.
#'
#' This class represents such a single channel, reffered to as a track. A [`PTPattern`] is
#' This class represents such a single channel, referred to as a track. A [`PTPattern`] is
#' composed of four such channels. As a ProTracker pattern consists of 64 rows,
#' a `PTTrack` object is also (implicitly) composed of 64
#' [`PTCell`] objects.
Expand All @@ -43,10 +43,10 @@ validity.PTTrack <- function(object)
#' `PTTrack-class` object, or to replace such an object.
#'
#' @slot data A `matrix` (64 rows, 4 columns) of class `raw`.
#' Each row implicetely represents a [`PTCell`] object, where
#' Each row implicitly represents a [`PTCell`] object, where
#' the raw data is formatted as specified at the [`PTCell-class`]
#' documentation. Use the [`PTCell-method`] to make an element of
#' a `PTTrack` object explictly of class [`PTCell`].
#' a `PTTrack` object explicitly of class [`PTCell`].
#' Row numbers correspond with the row numbers of [`PTPattern`]
#' objects.
#' @name PTTrack-class
Expand Down
10 changes: 5 additions & 5 deletions R/06PTModule.r
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ validity.PTModule <- function(object)
#' `raw` values represent the indices of `PTPattern` tables and indicate
#' in which order these patterns need to be played. Note that the `raw` values
#' are conform the indices used in ProTracker, starting at zero. In R, indices of
#' objects start at one. Users need to compensate for this discrepancy theirselves.
#' objects start at one. Users need to compensate for this discrepancy themselves.
#'
#' The pattern order table can be extracted or replaced with the
#' [`patternOrder`] method.
Expand Down Expand Up @@ -601,7 +601,7 @@ setGeneric("patternOrder", function(x, full = FALSE) standardGeneric("patternOrd
#' When `full = TRUE`, the `vector` will be padded with zeros to a
#' length of 128, and the [`patternOrderLength`] will be set to the
#' length of `value`. When `full = FALSE`, `value` will only
#' repplace the part of the order table up to the length of `value`. The
#' replace the part of the order table up to the length of `value`. The
#' remainder of the table is not changed. The [`patternOrderLength`]
#' is also not modified in this case.
#' @returns For `patternOrder`, a `vector` of `numeric`
Expand Down Expand Up @@ -1151,7 +1151,7 @@ setGeneric("fix.PTModule", function(mod, verbose) standardGeneric("fix.PTModule"
#'
#' Almost any file can be read as a [`PTModule`] object (using
#' [`read.module`]) when validity is ignored and no unexpected end
#' of file is reached. This package's object validity are very strickly testing
#' of file is reached. This package's object validity are very strictly testing
#' for compliance with ProTracker specifications. As many modules could have
#' been created with other trackers (which often will play just as well in
#' ProTracker) it is desirable to convert such object to ProTracker specs.
Expand All @@ -1166,11 +1166,11 @@ setGeneric("fix.PTModule", function(mod, verbose) standardGeneric("fix.PTModule"
#' @param verbose With the default value of `TRUE`, the method
#' prints a progress report to the [`sink`]. When set
#' to `FALSE`, the progress report is suppressed.
#' @returns Returns a copy of object `mod` in which all non-conformaties are
#' @returns Returns a copy of object `mod` in which all non-conformities are
#' attempted to be fixed. (Attempted) fixes are listed printed
#' in the progress report.
#' @note In the current version, pattern data itself is not checked for
#' non-conformaties nor is it fixed.
#' non-conformities nor is it fixed.
#' @examples
#' data("mod.intro")
#'
Expand Down
2 changes: 1 addition & 1 deletion R/08coercion.r
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,7 @@ setGeneric("PTSample<-", function(x, index, value) standardGeneric("PTSample<-")
#' Method to coerce `x` to class [`PTSample`].
#'
#' When `x` is a [`tuneR::Wave`] object, this method will not
#' resample it. However, the sample rate will be adjusted and samples exeeding
#' resample it. However, the sample rate will be adjusted and samples exceeding
#' the maximum length of `2*0xffff` = `131070` will be clipped to this
#' maximum length. When `x` is a stereo sample, it will be converted to
#' mono, by averaging the left and right channel.
Expand Down
4 changes: 2 additions & 2 deletions R/09playing_routines.r
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ setGeneric("modToWave",
#' @note As audio can be mixed with this package at frequencies much greater than the
#' Commodore Amiga's audio output rate, some aliasing of the sound could occur.
#' This results in high frequency audio, that would not be produced on an Amiga.
#' The current version of this package does not filter out these artefacts.
#' The current version of this package does not filter out these artifacts.
#' This should not be a problem if you're not concerned with producing an
#' accurate Amiga timbre.
#' @rdname modToWave
Expand Down Expand Up @@ -222,7 +222,7 @@ setGeneric("modToWave",
#' the `mix` argument is set to `FALSE`.
#' @examples
#' data(mod.intro)
#' wav <- modToWave(mod.intro)
#' wav <- modToWave(mod.intro, max.duration = 30)
#' @author Pepijn de Vries
#' @family module.operations
#' @export
Expand Down
8 changes: 4 additions & 4 deletions R/ProTrackR-package.r
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
#'
#' Some experience with ProTracker (or any other
#' music tracker) will promote the ease of use of this package. However,
#' the provided documentation and exernal links should help you,
#' the provided documentation and external links should help you,
#' when you're starting from scratch. A good place to start reading
#' this manual would be the documentation of the [`PTModule-class`],
#' which describes the structure of a ProTracker module and how it is
Expand All @@ -37,7 +37,7 @@
#' differently by varying module players. This package currently does not implement
#' such switches conform ProTracker specs.
#'
#' Period values, which dictate at which fequency samples should be played, are
#' Period values, which dictate at which frequency samples should be played, are
#' censored both by Amiga hardware and software coded limits in the original
#' ProTracker. Documentation on these limits are ambiguous. I've made a first
#' attempt to implement these bounds in the current version of the
Expand Down Expand Up @@ -100,7 +100,7 @@
#' | E1x | Porta up (fine) | The period value is decreased with x, at the first tick. | Implemented |
#' | E2x | Porta down (fine) | The period value is increased with x, at the first tick. | Implemented |
#' | E3x | Glissando Control | This effect causes a change in the effect 3xy (porta to note). It toggles whether to do a smooth slide or whether to slide in jumps of semitones. When x is 0 it uses a smooth slide, non-zero values will result in jumps. | Not yet implemented |
#' | E4x | Vibrato Waveform | This effect sets the waveform for the vibrato command to follow. With x modulo 4 equals 0, a sine wave is used, with 1 ramp down, with 2 or 3 a square wave. Values greater than 4 causes the ossicating waveform not to retrigger it when a new note is played. | Implemented |
#' | E4x | Vibrato Waveform | This effect sets the waveform for the vibrato command to follow. With x modulo 4 equals 0, a sine wave is used, with 1 ramp down, with 2 or 3 a square wave. Values greater than 4 causes the oscillating waveform not to retrigger it when a new note is played. | Implemented |
#' | E5x | Set finetune | Set the finetune with x, where x is interpreted as a signed nybble. | Partly implemented |
#' | E6x | Pattern loop | Set pattern loop start with E60, and loop x times when x is non-zero. | Implemented |
#' | E7x | Tremolo waveform | Same as E4x, but this controls the wave form for the tremolo effect (7xy) rather then the vibrato effect. | Implemented |
Expand All @@ -112,7 +112,7 @@
#' | EDx | Delay note | The note is triggered with a delay of x ticks. | Implemented |
#' | EEx | Pattern delay | The duration of the row in ticks is multiplied by (x + 1). | Implemented |
#' | EFx | Not implemented | According to official documentation this command is not implemented in ProTracker, but it is. It flips sample data in a looped sample, therewith destroying the original sample data. | Not implemented |
#' | Fxy | Set speed or tempo | When xy is smaller then 32, it sets the speed in ticks per row. When xy is greater then 31, it will set the tempo, wich is inversely related to the duration of each tick. Speed and tempo can be defined in combination. | Implemented |
#' | Fxy | Set speed or tempo | When xy is smaller then 32, it sets the speed in ticks per row. When xy is greater then 31, it will set the tempo, which is inversely related to the duration of each tick. Speed and tempo can be defined in combination. | Implemented |
#' @section Test cases:
#' The interpretation of the effect commands can be tedious. They often vary
#' between module players. Even ProTracker can have a quirky (and unexpected) ways
Expand Down
48 changes: 24 additions & 24 deletions R/deprecated.R
Original file line number Diff line number Diff line change
Expand Up @@ -4,87 +4,87 @@
#' [openmpt](https://pepijn-devries.github.io/openmpt/articles/modarchive.html) package.
#' @param ... Ignored
#' @returns Returns `NULL`.
#' @rdname deprecated
#' @rdname openmpt-deprecated
#' @export
modArchive.info <- function(...) {
.Deprecated("modarchive_info", package = "openmpt")
.Deprecated("openmpt::modarchive_info")
NULL
}

#' @rdname deprecated
#' @rdname openmpt-deprecated
#' @export
modArchive.download <- function(...) {
.Deprecated("modarchive_download", package = "openmpt")
.Deprecated("openmpt::modarchive_download")
NULL
}

#' @rdname deprecated
#' @rdname openmpt-deprecated
#' @export
modArchive.search.mod <- function(...) {
.Deprecated("modarchive_search_mod", package = "openmpt")
.Deprecated("openmpt::modarchive_search_mod")
NULL
}

#' @rdname deprecated
#' @rdname openmpt-deprecated
#' @export
modArchive.request.count <- function(...) {
.Deprecated("modarchive_requests", package = "openmpt")
.Deprecated("openmpt::modarchive_requests")
NULL
}

#' @rdname deprecated
#' @rdname openmpt-deprecated
#' @export
modArchive.max.requests <- function(...) {
.Deprecated("modarchive_requests", package = "openmpt")
.Deprecated("openmpt::modarchive_requests")
NULL
}


#' @rdname deprecated
#' @rdname openmpt-deprecated
#' @export
modArchive.view.by <- function(...) {
.Deprecated("modarchive_view_by", package = "openmpt")
.Deprecated("openmpt::modarchive_view_by")
NULL
}

#' @rdname deprecated
#' @rdname openmpt-deprecated
#' @export
modArchive.search.genre <- function(...) {
.Deprecated("modarchive_search_genre", package = "openmpt")
.Deprecated("openmpt::modarchive_search_genre")
NULL
}

#' @rdname deprecated
#' @rdname openmpt-deprecated
#' @export
modArchive.search.artist <- function(...) {
.Deprecated("modarchive_search_artist", package = "openmpt")
.Deprecated("openmpt::modarchive_search_artist")
NULL
}

#' @rdname deprecated
#' @rdname openmpt-deprecated
#' @export
modArchive.search.hash <- function(...) {
.Deprecated("modarchive_search_hash", package = "openmpt")
.Deprecated("openmpt::modarchive_search_hash")
NULL
}

#' @rdname deprecated
#' @rdname openmpt-deprecated
#' @export
modArchive.random.pick <- function(...) {
.Deprecated("modarchive_random", package = "openmpt")
.Deprecated("openmpt::modarchive_random")
NULL
}

#' @rdname deprecated
#' @rdname openmpt-deprecated
#' @export
modLand.search.mod <- function(...) {
.Deprecated("modland_search", package = "openmpt")
.Deprecated("openmpt::modland_search")
NULL
}

#' @rdname deprecated
#' @rdname openmpt-deprecated
#' @export
modLand.download.mod <- function(...) {
.Deprecated("modland_download", package = "openmpt")
.Deprecated("openmpt::modland_download")
NULL
}
29 changes: 15 additions & 14 deletions README.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -74,20 +74,21 @@ While we are at it, why not play it:
playMod(elekfunk, verbose = FALSE)
```

## Developmental status

It has been a decade since the initial release of this package. Since it's release
a lot has changed in R and in my skill set. I still have plans for this package,
but this requires drastic changes. Therefore, I will only apply minimal maintenance
to this package. Meanwhile I will work on a complete overhaul which will be released
in due time as a new package. This new package will:

* have the same or similar features as the current package.
* will implement modern R features and try to adhere to
[tidyverse](https://www.tidyverse.org) principles.
* implement rendering procedures in C++ giving the package a speed boost.

But until then, please enjoy the current package as is.
## Package status and alternatives

This package is no longer actively developed. It will receive minimal attention and
only required updates for the latest CRAN policies. It is surpassed by the alternatives
listed below.

* [ProTrackR2](https://pepijn-devries.github.io/ProTrackR2/):
A complete rewrite in C and
C++ of the current package using the
[ProTracker clone](https://github.com/8bitbubsy/pt2-clone)
by Olav Sørensen. It has similar features as the current package but has
a better implementation of the tracker interpretation and is a lot faster.
* [openmpt](https://pepijn-devries.github.io/openmpt/):
An R port of [libopenmpt](https://lib.openmpt.org/libopenmpt/). It plays
and renders a wide range of tracker music files, but they cannot be edited.

## Further reading

Expand Down
31 changes: 15 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,22 +69,21 @@ While we are at it, why not play it:
playMod(elekfunk, verbose = FALSE)
```

## Developmental status

It has been a decade since the initial release of this package. Since
it’s release a lot has changed in R and in my skill set. I still have
plans for this package, but this requires drastic changes. Therefore, I
will only apply minimal maintenance to this package. Meanwhile I will
work on a complete overhaul which will be released in due time as a new
package. This new package will:

- have the same or similar features as the current package.
- will implement modern R features and try to adhere to
[tidyverse](https://www.tidyverse.org) principles.
- implement rendering procedures in C++ giving the package a speed
boost.

But until then, please enjoy the current package as is.
## Package status and alternatives

This package is no longer actively developed. It will receive minimal
attention and only required updates for the latest CRAN policies. It is
surpassed by the alternatives listed below.

- [ProTrackR2](https://pepijn-devries.github.io/ProTrackR2/): A complete
rewrite in C and C++ of the current package using the [ProTracker
clone](https://github.com/8bitbubsy/pt2-clone) by Olav Sørensen. It
has similar features as the current package but has a better
implementation of the tracker interpretation and is a lot faster.
- [openmpt](https://pepijn-devries.github.io/openmpt/): An R port of
[libopenmpt](https://lib.openmpt.org/libopenmpt/). It plays and
renders a wide range of tracker music files, but they cannot be
edited.

## Further reading

Expand Down
2 changes: 1 addition & 1 deletion man/PTModule-class.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion man/PTSample-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading