diff --git a/404.html b/404.html index 1913975..8a24c89 100644 --- a/404.html +++ b/404.html @@ -24,7 +24,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/LICENSE.html b/LICENSE.html index 4731e8f..658be47 100644 --- a/LICENSE.html +++ b/LICENSE.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/authors.html b/authors.html index 3ac3393..d331f00 100644 --- a/authors.html +++ b/authors.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 @@ -64,13 +64,13 @@ Citation de Vries P (2024). ProTrackR: Manipulate and Play 'ProTracker' Modules. -R package version 0.3.9, https:://www.github.com/pepijn-devries/ProTrackR/, https://pepijn-devries.github.io/ProTrackR/. +R package version 0.4.0, https:://www.github.com/pepijn-devries/ProTrackR/, https://pepijn-devries.github.io/ProTrackR/. @Manual{, title = {ProTrackR: Manipulate and Play 'ProTracker' Modules}, author = {Pepijn {de Vries}}, year = {2024}, - note = {R package version 0.3.9, https:://www.github.com/pepijn-devries/ProTrackR/}, + note = {R package version 0.4.0, https:://www.github.com/pepijn-devries/ProTrackR/}, url = {https://pepijn-devries.github.io/ProTrackR/}, } diff --git a/index.html b/index.html index 04fa95e..c175a37 100644 --- a/index.html +++ b/index.html @@ -40,7 +40,7 @@ ProTrackR - 0.3.9 + 0.4.0 @@ -94,7 +94,7 @@ Installation install.packages("ProTrackR") -Get development version on github +Get development version from R-Universe install.packages("ProTrackR", repos = c('https://pepijn-devries.r-universe.dev', 'https://cloud.r-project.org')) diff --git a/news/index.html b/news/index.html index 1c10b72..809b92d 100644 --- a/news/index.html +++ b/news/index.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 @@ -51,7 +51,7 @@ -ProTrackR v0.3.9 (Release date: 2023-02-14) +ProTrackR v0.4.0 (Release date: 2023-02-14) Added pkgdown website and README switched to RMarkdown mode for roxygen2 documentation diff --git a/pkgdown.yml b/pkgdown.yml index d6e4f48..5ab1a49 100644 --- a/pkgdown.yml +++ b/pkgdown.yml @@ -2,7 +2,7 @@ pandoc: 2.19.2 pkgdown: 2.0.7 pkgdown_sha: ~ articles: {} -last_built: 2024-02-14T16:54Z +last_built: 2024-02-14T19:40Z urls: reference: https://pepijn-devries.github.io/ProTrackR/reference article: https://pepijn-devries.github.io/ProTrackR/articles diff --git a/reference/MODPlugToPTPattern.html b/reference/MODPlugToPTPattern.html index 7961f49..e39a2ec 100644 --- a/reference/MODPlugToPTPattern.html +++ b/reference/MODPlugToPTPattern.html @@ -14,7 +14,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/PTBlock.html b/reference/PTBlock.html index 45f923f..882bf55 100644 --- a/reference/PTBlock.html +++ b/reference/PTBlock.html @@ -18,7 +18,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/PTCell-class.html b/reference/PTCell-class.html index 0b01121..2b9b196 100644 --- a/reference/PTCell-class.html +++ b/reference/PTCell-class.html @@ -14,7 +14,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/PTCell-method.html b/reference/PTCell-method.html index 3b3d02f..1e3d01e 100644 --- a/reference/PTCell-method.html +++ b/reference/PTCell-method.html @@ -16,7 +16,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/PTModule-class.html b/reference/PTModule-class.html index af988b5..2fc040c 100644 --- a/reference/PTModule-class.html +++ b/reference/PTModule-class.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 @@ -130,7 +130,6 @@ SlotsReferences https://en.wikipedia.org/wiki/MOD_(file_format) https://wiki.multimedia.cx/index.php?title=Protracker_Module -http://coppershade.org/articles/More!/Topics/Protracker_File_Format/ See also diff --git a/reference/PTPattern-class.html b/reference/PTPattern-class.html index 64c2d6c..53bbb1f 100644 --- a/reference/PTPattern-class.html +++ b/reference/PTPattern-class.html @@ -14,7 +14,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/PTPattern-method.html b/reference/PTPattern-method.html index aff9fb9..6125fd2 100644 --- a/reference/PTPattern-method.html +++ b/reference/PTPattern-method.html @@ -14,7 +14,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/PTPatternToMODPlug.html b/reference/PTPatternToMODPlug.html index 4787dd7..0258878 100644 --- a/reference/PTPatternToMODPlug.html +++ b/reference/PTPatternToMODPlug.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/PTSample-class.html b/reference/PTSample-class.html index c61e4bc..6bc86fa 100644 --- a/reference/PTSample-class.html +++ b/reference/PTSample-class.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/PTSample-method.html b/reference/PTSample-method.html index 13b9e26..b4d4f80 100644 --- a/reference/PTSample-method.html +++ b/reference/PTSample-method.html @@ -14,7 +14,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/PTTrack-class.html b/reference/PTTrack-class.html index fadb23e..895d56e 100644 --- a/reference/PTTrack-class.html +++ b/reference/PTTrack-class.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/PTTrack-method.html b/reference/PTTrack-method.html index 3bcbcfb..4841f19 100644 --- a/reference/PTTrack-method.html +++ b/reference/PTTrack-method.html @@ -14,7 +14,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/ProTrackR-package.html b/reference/ProTrackR-package.html index ed5b780..6b007e2 100644 --- a/reference/ProTrackR-package.html +++ b/reference/ProTrackR-package.html @@ -18,7 +18,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/appendPattern.html b/reference/appendPattern.html index 91a5f9f..afcbf72 100644 --- a/reference/appendPattern.html +++ b/reference/appendPattern.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/as.character.html b/reference/as.character.html index ac4dacb..c929601 100644 --- a/reference/as.character.html +++ b/reference/as.character.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/as.raw.html b/reference/as.raw.html index 9416cd5..7025fe4 100644 --- a/reference/as.raw.html +++ b/reference/as.raw.html @@ -16,7 +16,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/clearSamples.html b/reference/clearSamples.html index d357a5c..a95b628 100644 --- a/reference/clearSamples.html +++ b/reference/clearSamples.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/clearSong.html b/reference/clearSong.html index d84ed28..2592dcc 100644 --- a/reference/clearSong.html +++ b/reference/clearSong.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/deletePattern.html b/reference/deletePattern.html index 80fac0d..0fb51e8 100644 --- a/reference/deletePattern.html +++ b/reference/deletePattern.html @@ -14,7 +14,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/effect.html b/reference/effect.html index a38b314..edafbd7 100644 --- a/reference/effect.html +++ b/reference/effect.html @@ -14,7 +14,7 @@ ProTrackR - 0.3.9 + 0.4.0 @@ -107,7 +107,7 @@ Details When replacing this code, all three digit hexadecimal character strings are accepted, although not all codes will represent a valid effect or trigger. See -http://coppershade.org/articles/More!/Topics/Protracker_Effect_Commands/ +https://wiki.openmpt.org/Manual:_Effect_Reference#MOD_Effect_Commands for a valid list of effect codes. diff --git a/reference/fineTune.html b/reference/fineTune.html index b14e280..89c7d73 100644 --- a/reference/fineTune.html +++ b/reference/fineTune.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/fix.PTModule.html b/reference/fix.PTModule.html index 4c10721..1aa9efc 100644 --- a/reference/fix.PTModule.html +++ b/reference/fix.PTModule.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/funk_table.html b/reference/funk_table.html index b4ba7b5..66e1e70 100644 --- a/reference/funk_table.html +++ b/reference/funk_table.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/index.html b/reference/index.html index f0be821..93c9543 100644 --- a/reference/index.html +++ b/reference/index.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/loopLength.html b/reference/loopLength.html index a586a5f..27bbdff 100644 --- a/reference/loopLength.html +++ b/reference/loopLength.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/loopSample.html b/reference/loopSample.html index 417ec35..9e883aa 100644 --- a/reference/loopSample.html +++ b/reference/loopSample.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/loopStart.html b/reference/loopStart.html index d65ebbc..21d70b7 100644 --- a/reference/loopStart.html +++ b/reference/loopStart.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/loopState.html b/reference/loopState.html index 9f6a82a..6b9a62e 100644 --- a/reference/loopState.html +++ b/reference/loopState.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/mod.intro.html b/reference/mod.intro.html index 5b7bc94..ca7343d 100644 --- a/reference/mod.intro.html +++ b/reference/mod.intro.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/modArchive.html b/reference/modArchive.html index dcd92f1..5d04fe3 100644 --- a/reference/modArchive.html +++ b/reference/modArchive.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/modLand.html b/reference/modLand.html index d8b55d9..5b2c54e 100644 --- a/reference/modLand.html +++ b/reference/modLand.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/modToWave.html b/reference/modToWave.html index 6fa6bda..2d75597 100644 --- a/reference/modToWave.html +++ b/reference/modToWave.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/moduleSize.html b/reference/moduleSize.html index d14463f..61a7093 100644 --- a/reference/moduleSize.html +++ b/reference/moduleSize.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/name.html b/reference/name.html index 963d060..f281ede 100644 --- a/reference/name.html +++ b/reference/name.html @@ -18,7 +18,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/note.html b/reference/note.html index 59089ab..0f6c727 100644 --- a/reference/note.html +++ b/reference/note.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/noteManipulation.html b/reference/noteManipulation.html index 2dff27f..c0bf4d9 100644 --- a/reference/noteManipulation.html +++ b/reference/noteManipulation.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/noteToPeriod.html b/reference/noteToPeriod.html index bbf9f1b..b559822 100644 --- a/reference/noteToPeriod.html +++ b/reference/noteToPeriod.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/nybble.html b/reference/nybble.html index acb111d..7466c38 100644 --- a/reference/nybble.html +++ b/reference/nybble.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/nybbleToSignedInt.html b/reference/nybbleToSignedInt.html index 6462132..af7310d 100644 --- a/reference/nybbleToSignedInt.html +++ b/reference/nybbleToSignedInt.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/octave.html b/reference/octave.html index 3dbb0be..b254cfd 100644 --- a/reference/octave.html +++ b/reference/octave.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/pasteBlock.html b/reference/pasteBlock.html index 57c7c1e..f8571c9 100644 --- a/reference/pasteBlock.html +++ b/reference/pasteBlock.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/patternLength.html b/reference/patternLength.html index a5c76eb..9309795 100644 --- a/reference/patternLength.html +++ b/reference/patternLength.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/patternOrder.html b/reference/patternOrder.html index 7369e1d..3838a87 100644 --- a/reference/patternOrder.html +++ b/reference/patternOrder.html @@ -14,7 +14,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/patternOrderLength.html b/reference/patternOrderLength.html index ea8bfb5..2d4a13f 100644 --- a/reference/patternOrderLength.html +++ b/reference/patternOrderLength.html @@ -16,7 +16,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/paula_clock.html b/reference/paula_clock.html index 353b192..c793bec 100644 --- a/reference/paula_clock.html +++ b/reference/paula_clock.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/periodToChar.html b/reference/periodToChar.html index bca0382..36e68b5 100644 --- a/reference/periodToChar.html +++ b/reference/periodToChar.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/period_table.html b/reference/period_table.html index 2311c6f..8c6c4c3 100644 --- a/reference/period_table.html +++ b/reference/period_table.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/playMod.html b/reference/playMod.html index ece14e6..8840ab4 100644 --- a/reference/playMod.html +++ b/reference/playMod.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/playSample.html b/reference/playSample.html index 18b6894..e545ae9 100644 --- a/reference/playSample.html +++ b/reference/playSample.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/playWave.html b/reference/playWave.html index e395cf7..8856e38 100644 --- a/reference/playWave.html +++ b/reference/playWave.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/playingtable.html b/reference/playingtable.html index a119234..5adb600 100644 --- a/reference/playingtable.html +++ b/reference/playingtable.html @@ -14,7 +14,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/plot.html b/reference/plot.html index 04a6ea6..e4c0f1a 100644 --- a/reference/plot.html +++ b/reference/plot.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/print.html b/reference/print.html index 6311c34..ed48af4 100644 --- a/reference/print.html +++ b/reference/print.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/proTrackerVibrato.html b/reference/proTrackerVibrato.html index fb0356c..89e29c5 100644 --- a/reference/proTrackerVibrato.html +++ b/reference/proTrackerVibrato.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/rawToCharNull.html b/reference/rawToCharNull.html index 9e4e1a7..41c2d1a 100644 --- a/reference/rawToCharNull.html +++ b/reference/rawToCharNull.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/rawToPTModule.html b/reference/rawToPTModule.html index bbe61cc..49d05b7 100644 --- a/reference/rawToPTModule.html +++ b/reference/rawToPTModule.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/rawToSignedInt.html b/reference/rawToSignedInt.html index 3eb7be8..168e576 100644 --- a/reference/rawToSignedInt.html +++ b/reference/rawToSignedInt.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/rawToUnsignedInt.html b/reference/rawToUnsignedInt.html index e828257..11c2622 100644 --- a/reference/rawToUnsignedInt.html +++ b/reference/rawToUnsignedInt.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/read.module.html b/reference/read.module.html index 5f1fff1..d4c5719 100644 --- a/reference/read.module.html +++ b/reference/read.module.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 @@ -112,7 +112,6 @@ Details References https://wiki.multimedia.cx/index.php?title=Protracker_Module -http://coppershade.org/articles/More!/Topics/Protracker_File_Format/ See also diff --git a/reference/read.sample.html b/reference/read.sample.html index a70d651..aaaa81b 100644 --- a/reference/read.sample.html +++ b/reference/read.sample.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/resample.html b/reference/resample.html index ac9559f..341416c 100644 --- a/reference/resample.html +++ b/reference/resample.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/sampleLength.html b/reference/sampleLength.html index 265fc1b..59948a8 100644 --- a/reference/sampleLength.html +++ b/reference/sampleLength.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/sampleNumber.html b/reference/sampleNumber.html index dda37d8..5a1fc20 100644 --- a/reference/sampleNumber.html +++ b/reference/sampleNumber.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/sampleRate.html b/reference/sampleRate.html index 3ee93c4..dccadc8 100644 --- a/reference/sampleRate.html +++ b/reference/sampleRate.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/signedIntToNybble.html b/reference/signedIntToNybble.html index 4947001..4f3a9cf 100644 --- a/reference/signedIntToNybble.html +++ b/reference/signedIntToNybble.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/signedIntToRaw.html b/reference/signedIntToRaw.html index 437c99a..185095e 100644 --- a/reference/signedIntToRaw.html +++ b/reference/signedIntToRaw.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/trackerFlag.html b/reference/trackerFlag.html index ce6e75d..c7be525 100644 --- a/reference/trackerFlag.html +++ b/reference/trackerFlag.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/unsignedIntToRaw.html b/reference/unsignedIntToRaw.html index 39f4fa7..1895678 100644 --- a/reference/unsignedIntToRaw.html +++ b/reference/unsignedIntToRaw.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/volume.html b/reference/volume.html index 2e26ac6..8d133af 100644 --- a/reference/volume.html +++ b/reference/volume.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/waveform.html b/reference/waveform.html index c68c120..48da018 100644 --- a/reference/waveform.html +++ b/reference/waveform.html @@ -14,7 +14,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/reference/write.module.html b/reference/write.module.html index 89dbdab..02eeefe 100644 --- a/reference/write.module.html +++ b/reference/write.module.html @@ -12,7 +12,7 @@ ProTrackR - 0.3.9 + 0.4.0 @@ -93,7 +93,6 @@ Details References https://wiki.multimedia.cx/index.php?title=Protracker_Module -http://coppershade.org/articles/More!/Topics/Protracker_File_Format/ See also diff --git a/reference/write.sample.html b/reference/write.sample.html index 1f48984..cd8eded 100644 --- a/reference/write.sample.html +++ b/reference/write.sample.html @@ -10,7 +10,7 @@ ProTrackR - 0.3.9 + 0.4.0 diff --git a/search.json b/search.json index 89fb207..6d9995e 100644 --- a/search.json +++ b/search.json @@ -1 +1 @@ -[{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"GNU General Public License","title":"GNU General Public License","text":"Version 3, 29 June 2007Copyright © 2007 Free Software Foundation, Inc. Everyone permitted copy distribute verbatim copies license document, changing allowed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"preamble","dir":"","previous_headings":"","what":"Preamble","title":"GNU General Public License","text":"GNU General Public License free, copyleft license software kinds works. licenses software practical works designed take away freedom share change works. contrast, GNU General Public License intended guarantee freedom share change versions program–make sure remains free software users. , Free Software Foundation, use GNU General Public License software; applies also work released way authors. can apply programs, . speak free software, referring freedom, price. General Public Licenses designed make sure freedom distribute copies free software (charge wish), receive source code can get want , can change software use pieces new free programs, know can things. protect rights, need prevent others denying rights asking surrender rights. Therefore, certain responsibilities distribute copies software, modify : responsibilities respect freedom others. example, distribute copies program, whether gratis fee, must pass recipients freedoms received. must make sure , , receive can get source code. must show terms know rights. Developers use GNU GPL protect rights two steps: (1) assert copyright software, (2) offer License giving legal permission copy, distribute /modify . developers’ authors’ protection, GPL clearly explains warranty free software. users’ authors’ sake, GPL requires modified versions marked changed, problems attributed erroneously authors previous versions. devices designed deny users access install run modified versions software inside , although manufacturer can . fundamentally incompatible aim protecting users’ freedom change software. systematic pattern abuse occurs area products individuals use, precisely unacceptable. Therefore, designed version GPL prohibit practice products. problems arise substantially domains, stand ready extend provision domains future versions GPL, needed protect freedom users. Finally, every program threatened constantly software patents. States allow patents restrict development use software general-purpose computers, , wish avoid special danger patents applied free program make effectively proprietary. prevent , GPL assures patents used render program non-free. precise terms conditions copying, distribution modification follow.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_0-definitions","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"0. Definitions","title":"GNU General Public License","text":"“License” refers version 3 GNU General Public License. “Copyright” also means copyright-like laws apply kinds works, semiconductor masks. “Program” refers copyrightable work licensed License. licensee addressed “”. “Licensees” “recipients” may individuals organizations. “modify” work means copy adapt part work fashion requiring copyright permission, making exact copy. resulting work called “modified version” earlier work work “based ” earlier work. “covered work” means either unmodified Program work based Program. “propagate” work means anything , without permission, make directly secondarily liable infringement applicable copyright law, except executing computer modifying private copy. Propagation includes copying, distribution (without modification), making available public, countries activities well. “convey” work means kind propagation enables parties make receive copies. Mere interaction user computer network, transfer copy, conveying. interactive user interface displays “Appropriate Legal Notices” extent includes convenient prominently visible feature (1) displays appropriate copyright notice, (2) tells user warranty work (except extent warranties provided), licensees may convey work License, view copy License. interface presents list user commands options, menu, prominent item list meets criterion.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_1-source-code","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"1. Source Code","title":"GNU General Public License","text":"“source code” work means preferred form work making modifications . “Object code” means non-source form work. “Standard Interface” means interface either official standard defined recognized standards body, , case interfaces specified particular programming language, one widely used among developers working language. “System Libraries” executable work include anything, work whole, () included normal form packaging Major Component, part Major Component, (b) serves enable use work Major Component, implement Standard Interface implementation available public source code form. “Major Component”, context, means major essential component (kernel, window system, ) specific operating system () executable work runs, compiler used produce work, object code interpreter used run . “Corresponding Source” work object code form means source code needed generate, install, (executable work) run object code modify work, including scripts control activities. However, include work’s System Libraries, general-purpose tools generally available free programs used unmodified performing activities part work. example, Corresponding Source includes interface definition files associated source files work, source code shared libraries dynamically linked subprograms work specifically designed require, intimate data communication control flow subprograms parts work. Corresponding Source need include anything users can regenerate automatically parts Corresponding Source. Corresponding Source work source code form work.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_2-basic-permissions","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"2. Basic Permissions","title":"GNU General Public License","text":"rights granted License granted term copyright Program, irrevocable provided stated conditions met. License explicitly affirms unlimited permission run unmodified Program. output running covered work covered License output, given content, constitutes covered work. License acknowledges rights fair use equivalent, provided copyright law. may make, run propagate covered works convey, without conditions long license otherwise remains force. may convey covered works others sole purpose make modifications exclusively , provide facilities running works, provided comply terms License conveying material control copyright. thus making running covered works must exclusively behalf, direction control, terms prohibit making copies copyrighted material outside relationship . Conveying circumstances permitted solely conditions stated . Sublicensing allowed; section 10 makes unnecessary.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_3-protecting-users-legal-rights-from-anti-circumvention-law","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"3. Protecting Users’ Legal Rights From Anti-Circumvention Law","title":"GNU General Public License","text":"covered work shall deemed part effective technological measure applicable law fulfilling obligations article 11 WIPO copyright treaty adopted 20 December 1996, similar laws prohibiting restricting circumvention measures. convey covered work, waive legal power forbid circumvention technological measures extent circumvention effected exercising rights License respect covered work, disclaim intention limit operation modification work means enforcing, work’s users, third parties’ legal rights forbid circumvention technological measures.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_4-conveying-verbatim-copies","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"4. Conveying Verbatim Copies","title":"GNU General Public License","text":"may convey verbatim copies Program’s source code receive , medium, provided conspicuously appropriately publish copy appropriate copyright notice; keep intact notices stating License non-permissive terms added accord section 7 apply code; keep intact notices absence warranty; give recipients copy License along Program. may charge price price copy convey, may offer support warranty protection fee.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_5-conveying-modified-source-versions","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"5. Conveying Modified Source Versions","title":"GNU General Public License","text":"may convey work based Program, modifications produce Program, form source code terms section 4, provided also meet conditions: ) work must carry prominent notices stating modified , giving relevant date. b) work must carry prominent notices stating released License conditions added section 7. requirement modifies requirement section 4 “keep intact notices”. c) must license entire work, whole, License anyone comes possession copy. License therefore apply, along applicable section 7 additional terms, whole work, parts, regardless packaged. License gives permission license work way, invalidate permission separately received . d) work interactive user interfaces, must display Appropriate Legal Notices; however, Program interactive interfaces display Appropriate Legal Notices, work need make . compilation covered work separate independent works, nature extensions covered work, combined form larger program, volume storage distribution medium, called “aggregate” compilation resulting copyright used limit access legal rights compilation’s users beyond individual works permit. Inclusion covered work aggregate cause License apply parts aggregate.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_6-conveying-non-source-forms","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"6. Conveying Non-Source Forms","title":"GNU General Public License","text":"may convey covered work object code form terms sections 4 5, provided also convey machine-readable Corresponding Source terms License, one ways: ) Convey object code , embodied , physical product (including physical distribution medium), accompanied Corresponding Source fixed durable physical medium customarily used software interchange. b) Convey object code , embodied , physical product (including physical distribution medium), accompanied written offer, valid least three years valid long offer spare parts customer support product model, give anyone possesses object code either (1) copy Corresponding Source software product covered License, durable physical medium customarily used software interchange, price reasonable cost physically performing conveying source, (2) access copy Corresponding Source network server charge. c) Convey individual copies object code copy written offer provide Corresponding Source. alternative allowed occasionally noncommercially, received object code offer, accord subsection 6b. d) Convey object code offering access designated place (gratis charge), offer equivalent access Corresponding Source way place charge. need require recipients copy Corresponding Source along object code. place copy object code network server, Corresponding Source may different server (operated third party) supports equivalent copying facilities, provided maintain clear directions next object code saying find Corresponding Source. Regardless server hosts Corresponding Source, remain obligated ensure available long needed satisfy requirements. e) Convey object code using peer--peer transmission, provided inform peers object code Corresponding Source work offered general public charge subsection 6d. separable portion object code, whose source code excluded Corresponding Source System Library, need included conveying object code work. “User Product” either (1) “consumer product”, means tangible personal property normally used personal, family, household purposes, (2) anything designed sold incorporation dwelling. determining whether product consumer product, doubtful cases shall resolved favor coverage. particular product received particular user, “normally used” refers typical common use class product, regardless status particular user way particular user actually uses, expects expected use, product. product consumer product regardless whether product substantial commercial, industrial non-consumer uses, unless uses represent significant mode use product. “Installation Information” User Product means methods, procedures, authorization keys, information required install execute modified versions covered work User Product modified version Corresponding Source. information must suffice ensure continued functioning modified object code case prevented interfered solely modification made. convey object code work section , , specifically use , User Product, conveying occurs part transaction right possession use User Product transferred recipient perpetuity fixed term (regardless transaction characterized), Corresponding Source conveyed section must accompanied Installation Information. requirement apply neither third party retains ability install modified object code User Product (example, work installed ROM). requirement provide Installation Information include requirement continue provide support service, warranty, updates work modified installed recipient, User Product modified installed. Access network may denied modification materially adversely affects operation network violates rules protocols communication across network. Corresponding Source conveyed, Installation Information provided, accord section must format publicly documented (implementation available public source code form), must require special password key unpacking, reading copying.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_7-additional-terms","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"7. Additional Terms","title":"GNU General Public License","text":"“Additional permissions” terms supplement terms License making exceptions one conditions. Additional permissions applicable entire Program shall treated though included License, extent valid applicable law. additional permissions apply part Program, part may used separately permissions, entire Program remains governed License without regard additional permissions. convey copy covered work, may option remove additional permissions copy, part . (Additional permissions may written require removal certain cases modify work.) may place additional permissions material, added covered work, can give appropriate copyright permission. Notwithstanding provision License, material add covered work, may (authorized copyright holders material) supplement terms License terms: ) Disclaiming warranty limiting liability differently terms sections 15 16 License; b) Requiring preservation specified reasonable legal notices author attributions material Appropriate Legal Notices displayed works containing ; c) Prohibiting misrepresentation origin material, requiring modified versions material marked reasonable ways different original version; d) Limiting use publicity purposes names licensors authors material; e) Declining grant rights trademark law use trade names, trademarks, service marks; f) Requiring indemnification licensors authors material anyone conveys material (modified versions ) contractual assumptions liability recipient, liability contractual assumptions directly impose licensors authors. non-permissive additional terms considered “restrictions” within meaning section 10. Program received , part , contains notice stating governed License along term restriction, may remove term. license document contains restriction permits relicensing conveying License, may add covered work material governed terms license document, provided restriction survive relicensing conveying. add terms covered work accord section, must place, relevant source files, statement additional terms apply files, notice indicating find applicable terms. Additional terms, permissive non-permissive, may stated form separately written license, stated exceptions; requirements apply either way.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_8-termination","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"8. Termination","title":"GNU General Public License","text":"may propagate modify covered work except expressly provided License. attempt otherwise propagate modify void, automatically terminate rights License (including patent licenses granted third paragraph section 11). However, cease violation License, license particular copyright holder reinstated () provisionally, unless copyright holder explicitly finally terminates license, (b) permanently, copyright holder fails notify violation reasonable means prior 60 days cessation. Moreover, license particular copyright holder reinstated permanently copyright holder notifies violation reasonable means, first time received notice violation License (work) copyright holder, cure violation prior 30 days receipt notice. Termination rights section terminate licenses parties received copies rights License. rights terminated permanently reinstated, qualify receive new licenses material section 10.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_9-acceptance-not-required-for-having-copies","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"9. Acceptance Not Required for Having Copies","title":"GNU General Public License","text":"required accept License order receive run copy Program. Ancillary propagation covered work occurring solely consequence using peer--peer transmission receive copy likewise require acceptance. However, nothing License grants permission propagate modify covered work. actions infringe copyright accept License. Therefore, modifying propagating covered work, indicate acceptance License .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_10-automatic-licensing-of-downstream-recipients","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"10. Automatic Licensing of Downstream Recipients","title":"GNU General Public License","text":"time convey covered work, recipient automatically receives license original licensors, run, modify propagate work, subject License. responsible enforcing compliance third parties License. “entity transaction” transaction transferring control organization, substantially assets one, subdividing organization, merging organizations. propagation covered work results entity transaction, party transaction receives copy work also receives whatever licenses work party’s predecessor interest give previous paragraph, plus right possession Corresponding Source work predecessor interest, predecessor can get reasonable efforts. may impose restrictions exercise rights granted affirmed License. example, may impose license fee, royalty, charge exercise rights granted License, may initiate litigation (including cross-claim counterclaim lawsuit) alleging patent claim infringed making, using, selling, offering sale, importing Program portion .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_11-patents","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"11. Patents","title":"GNU General Public License","text":"“contributor” copyright holder authorizes use License Program work Program based. work thus licensed called contributor’s “contributor version”. contributor’s “essential patent claims” patent claims owned controlled contributor, whether already acquired hereafter acquired, infringed manner, permitted License, making, using, selling contributor version, include claims infringed consequence modification contributor version. purposes definition, “control” includes right grant patent sublicenses manner consistent requirements License. contributor grants non-exclusive, worldwide, royalty-free patent license contributor’s essential patent claims, make, use, sell, offer sale, import otherwise run, modify propagate contents contributor version. following three paragraphs, “patent license” express agreement commitment, however denominated, enforce patent (express permission practice patent covenant sue patent infringement). “grant” patent license party means make agreement commitment enforce patent party. convey covered work, knowingly relying patent license, Corresponding Source work available anyone copy, free charge terms License, publicly available network server readily accessible means, must either (1) cause Corresponding Source available, (2) arrange deprive benefit patent license particular work, (3) arrange, manner consistent requirements License, extend patent license downstream recipients. “Knowingly relying” means actual knowledge , patent license, conveying covered work country, recipient’s use covered work country, infringe one identifiable patents country reason believe valid. , pursuant connection single transaction arrangement, convey, propagate procuring conveyance , covered work, grant patent license parties receiving covered work authorizing use, propagate, modify convey specific copy covered work, patent license grant automatically extended recipients covered work works based . patent license “discriminatory” include within scope coverage, prohibits exercise , conditioned non-exercise one rights specifically granted License. may convey covered work party arrangement third party business distributing software, make payment third party based extent activity conveying work, third party grants, parties receive covered work , discriminatory patent license () connection copies covered work conveyed (copies made copies), (b) primarily connection specific products compilations contain covered work, unless entered arrangement, patent license granted, prior 28 March 2007. Nothing License shall construed excluding limiting implied license defenses infringement may otherwise available applicable patent law.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_12-no-surrender-of-others-freedom","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"12. No Surrender of Others’ Freedom","title":"GNU General Public License","text":"conditions imposed (whether court order, agreement otherwise) contradict conditions License, excuse conditions License. convey covered work satisfy simultaneously obligations License pertinent obligations, consequence may convey . example, agree terms obligate collect royalty conveying convey Program, way satisfy terms License refrain entirely conveying Program.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_13-use-with-the-gnu-affero-general-public-license","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"13. Use with the GNU Affero General Public License","title":"GNU General Public License","text":"Notwithstanding provision License, permission link combine covered work work licensed version 3 GNU Affero General Public License single combined work, convey resulting work. terms License continue apply part covered work, special requirements GNU Affero General Public License, section 13, concerning interaction network apply combination .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_14-revised-versions-of-this-license","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"14. Revised Versions of this License","title":"GNU General Public License","text":"Free Software Foundation may publish revised /new versions GNU General Public License time time. new versions similar spirit present version, may differ detail address new problems concerns. version given distinguishing version number. Program specifies certain numbered version GNU General Public License “later version” applies , option following terms conditions either numbered version later version published Free Software Foundation. Program specify version number GNU General Public License, may choose version ever published Free Software Foundation. Program specifies proxy can decide future versions GNU General Public License can used, proxy’s public statement acceptance version permanently authorizes choose version Program. Later license versions may give additional different permissions. However, additional obligations imposed author copyright holder result choosing follow later version.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_15-disclaimer-of-warranty","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"15. Disclaimer of Warranty","title":"GNU General Public License","text":"WARRANTY PROGRAM, EXTENT PERMITTED APPLICABLE LAW. EXCEPT OTHERWISE STATED WRITING COPYRIGHT HOLDERS /PARTIES PROVIDE PROGRAM “” WITHOUT WARRANTY KIND, EITHER EXPRESSED IMPLIED, INCLUDING, LIMITED , IMPLIED WARRANTIES MERCHANTABILITY FITNESS PARTICULAR PURPOSE. ENTIRE RISK QUALITY PERFORMANCE PROGRAM . PROGRAM PROVE DEFECTIVE, ASSUME COST NECESSARY SERVICING, REPAIR CORRECTION.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_16-limitation-of-liability","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"16. Limitation of Liability","title":"GNU General Public License","text":"EVENT UNLESS REQUIRED APPLICABLE LAW AGREED WRITING COPYRIGHT HOLDER, PARTY MODIFIES /CONVEYS PROGRAM PERMITTED , LIABLE DAMAGES, INCLUDING GENERAL, SPECIAL, INCIDENTAL CONSEQUENTIAL DAMAGES ARISING USE INABILITY USE PROGRAM (INCLUDING LIMITED LOSS DATA DATA RENDERED INACCURATE LOSSES SUSTAINED THIRD PARTIES FAILURE PROGRAM OPERATE PROGRAMS), EVEN HOLDER PARTY ADVISED POSSIBILITY DAMAGES.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_17-interpretation-of-sections-15-and-16","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"17. Interpretation of Sections 15 and 16","title":"GNU General Public License","text":"disclaimer warranty limitation liability provided given local legal effect according terms, reviewing courts shall apply local law closely approximates absolute waiver civil liability connection Program, unless warranty assumption liability accompanies copy Program return fee. END TERMS CONDITIONS","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"how-to-apply-these-terms-to-your-new-programs","dir":"","previous_headings":"","what":"How to Apply These Terms to Your New Programs","title":"GNU General Public License","text":"develop new program, want greatest possible use public, best way achieve make free software everyone can redistribute change terms. , attach following notices program. safest attach start source file effectively state exclusion warranty; file least “copyright” line pointer full notice found. Also add information contact electronic paper mail. program terminal interaction, make output short notice like starts interactive mode: hypothetical commands show w show c show appropriate parts General Public License. course, program’s commands might different; GUI interface, use “box”. also get employer (work programmer) school, , sign “copyright disclaimer” program, necessary. information , apply follow GNU GPL, see . GNU General Public License permit incorporating program proprietary programs. program subroutine library, may consider useful permit linking proprietary applications library. want , use GNU Lesser General Public License instead License. first, please read .","code":" Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free software, and you are welcome to redistribute it under certain conditions; type 'show c' for details."},{"path":"https://pepijn-devries.github.io/ProTrackR/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Pepijn de Vries. Author, maintainer, data contributor.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"de Vries P (2024). ProTrackR: Manipulate Play 'ProTracker' Modules. R package version 0.3.9, https:://www.github.com/pepijn-devries/ProTrackR/, https://pepijn-devries.github.io/ProTrackR/.","code":"@Manual{, title = {ProTrackR: Manipulate and Play 'ProTracker' Modules}, author = {Pepijn {de Vries}}, year = {2024}, note = {R package version 0.3.9, https:://www.github.com/pepijn-devries/ProTrackR/}, url = {https://pepijn-devries.github.io/ProTrackR/}, }"},{"path":"https://pepijn-devries.github.io/ProTrackR/index.html","id":"protrackr","dir":"","previous_headings":"","what":"Manipulate and Play ProTracker Modules","title":"Manipulate and Play ProTracker Modules","text":"ProTracker music sequencer software 1990s Commodore Amiga (see screenshot version 2.3a right). R package designed read, process play ProTracker module audio files.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Manipulate and Play ProTracker Modules","text":"Get CRAN version Get development version github","code":"install.packages(\"ProTrackR\") install.packages(\"ProTrackR\", repos = c('https://pepijn-devries.r-universe.dev', 'https://cloud.r-project.org'))"},{"path":"https://pepijn-devries.github.io/ProTrackR/index.html","id":"usage","dir":"","previous_headings":"","what":"Usage","title":"Manipulate and Play ProTracker Modules","text":"package comes bundled tiny chiptune, can easily played like : plethora module files available -line well. can see can download file. also show can select audio sample (number 25) module calculate power spectrum: , play :","code":"library(ProTrackR) |> suppressMessages() data(\"mod.intro\") playMod(mod.intro, verbose = FALSE) elekfunk <- read.module(\"https://api.modarchive.org/downloads.php?moduleid=41529#elektric_funk.mod\") spec <- elekfunk |> PTSample(25) |> waveform() |> tuneR::powspec(wintime = 0.1, steptime = 0.001) image(log10(spec), col = hcl.colors(100, palette = \"Inferno\")) playMod(elekfunk, verbose = FALSE)"},{"path":"https://pepijn-devries.github.io/ProTrackR/index.html","id":"developmental-status","dir":"","previous_headings":"","what":"Developmental status","title":"Manipulate and Play ProTracker Modules","text":"decade since initial release package. Since ’s release lot changed R skill set. still plans package, requires drastic changes. Therefore, apply minimal maintenance package. Meanwhile work complete overhaul released due time new package. new package : similar features current package. implement modern R features try adhere tidyverse principles. implement rendering procedures C++ giving package speed boost. , please enjoy current package .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/index.html","id":"further-reading","dir":"","previous_headings":"","what":"Further reading","title":"Manipulate and Play ProTracker Modules","text":"reading inspiration please look following blog articles: Chiptunes R (1) Chiptunes R (2) Chiptunes R (3)","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"Convert pattern data text clipboard, originating modern MODPlug tracker convert PTPattern PTBlock object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"","code":"MODPlugToPTPattern(text = NULL, what = c(\"PTPattern\", \"PTBlock\"))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"text vector characters, representing MOD pattern data obtained OpenMPT. set NULL (default), text read system's clipboard. character string indicates type object returned. Can \"PTPattern\" \"PTBlock\".","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"Depending value argument , return either PTPattern PTBlock object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"Open MODPlug Tracker (https://openmpt.org) modern music tracker free. can handle ProTracker modules. function assists moving pattern data Open MPT R. Simply select copy pattern data system's clipboard use function import R PTPattern PTBlock object.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"","code":"if (FALSE) { ## This is what Mod Plug Pattern data looks like on ## the system's clipboard: modPlugPattern <- c(\"ModPlug Tracker MOD\", \"|C-601...A08|C-602...C40|A#403...F06|A#504......\", \"|...01...A08|C-602...C30|........A01|........A02\", \"|...01...A08|C-602......|........A01|C-604......\", \"|...........|C-602......|........A02|........A02\", \"|...01...A08|C-602......|........120|D-604......\", \"|...........|A#504...C08|........A02|........A02\", \"|...01...A08|C-602......|........220|D#604......\", \"|...........|A#504...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|F-604......\", \"|...........|A#604...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|D#604......\", \"|...........|G-604...C08|........A01|........A02\", \"|G-601......|C-602......|........A01|D-604......\", \"|........A08|F-604...C08|...........|........A02\", \"|F-601......|C-602......|...........|C-604......\", \"|........A08|A#504...C08|...........|........A02\", \"|C-601...A08|C-602...C40|A#403...F06|A#504......\", \"|...01...A08|C-602...C30|........A01|........A02\", \"|...01...A08|C-602......|........A01|D-604......\", \"|...........|C-602......|........A02|........A02\", \"|...01...A08|C-602......|........120|F-504......\", \"|...........|A#504...C08|........A02|........A02\", \"|...01...A08|C-602......|........220|G-504......\", \"|...........|A#504...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|A#504......\", \"|...........|A#604...C08|........A01|........A01\", \"|...01...A08|C-602......|........A01|...........\", \"|...........|G-604...C08|........A01|........A01\", \"|G-501......|C-602......|........A01|...........\", \"|........A08|F-504...C08|...........|........A01\", \"|A-501......|C-602......|...........|...........\", \"|........A08|G-504...C08|...........|........A01\", \"|E-601...A08|C-602...C40|D-503......|D-604......\", \"|...01...A08|C-602...C30|........A01|........A02\", \"|...01...A08|C-602......|........A01|E-604......\", \"|...........|C-602......|........A02|........A02\", \"|...01...A08|C-602......|........126|F#604......\", \"|...........|D-604...C08|........A02|........A02\", \"|...01...A08|C-602......|........226|G-604......\", \"|...........|E-604...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|A-604......\", \"|...........|D-604...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|G-604......\", \"|...........|D-604...C08|........A01|........A02\", \"|B-601......|C-602......|........A01|F#604......\", \"|........A08|D-604...C08|...........|........A02\", \"|A-601......|C-602......|...........|E-604......\", \"|........A08|E-504...C08|...........|........A02\", \"|D-601...A08|C-602...C40|C-503......|C-604......\", \"|...01...A08|C-602...C30|........A01|........A02\", \"|...01...A08|C-602......|........A01|D-604......\", \"|...........|C-602......|........A02|........A02\", \"|...01...A08|C-602......|........12B|E-604......\", \"|...........|G-604...C08|........A02|........A02\", \"|...01...A08|C-602......|........22B|F-604......\", \"|...........|G-604...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|G-604......\", \"|...........|E-604...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|F-604......\", \"|...........|C-604...C08|........A01|........A02\", \"|A-601......|C-602......|........A01|E-604......\", \"|........A08|G-604...C08|...........|........A02\", \"|G-601......|F-604...C08|...........|D-604......\", \"|........A08|C-604...C08|...........|........A02\") ## You could read it directly from the clipboard, ## by leaving text NULL (default). Here we provide ## the text specified above: pat <- MODPlugToPTPattern(modPlugPattern, \"PTPattern\") ## look it is a \"PTPattern\" object now: class(pat) ## we can also only import the first 10 lines as a ## PTBlock: blk <- MODPlugToPTPattern(modPlugPattern[1:10], \"PTBlock\") }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":null,"dir":"Reference","previous_headings":"","what":"Select and copy a range of PTCells into a PTBlock — PTBlock","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"Select copy range PTCells PTPattern PTBlock. allows flexible approach select modify PTCells paste modified cells back PTPattern.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"","code":"# S4 method for PTPattern,numeric,numeric PTBlock(pattern, row, track)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"pattern PTPattern object PTBlock needs selected. row numeric index indices rows needs copied pattern PTBlock. track numeric index indices tracks needs copied pattern PTBlock.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"Returns matrix selected rows tracks pattern. element matrix list holding single PTCell.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"objects ProTrackR package strict operations allowed, order guarantee validity compatibility original ProTracker. makes objects flexible. PTBlock formal S4 object, fact can hardly call object . just matrix, element holds list single PTCell. matrix flexible makes easier select modify cells. flexibility comes cost validity checked level PTCells. PTBlock can pasted back PTPattern pasteBlock method. point validity checked . modifications resulted violation ProTracker standards, able paste block pattern.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"","code":"data(\"mod.intro\") ## in most ProTrackR methods you can only select a single row or track. ## with a PTBlock your selection is more flexible. ## select rows 4 up to 8 and tracks 2 up to 4, from the first ## pattern table in mod.intro: block <- PTBlock(PTPattern(mod.intro, 1), 4:8, 2:4) ## 'block' is now a matrix with in each a list with a PTCell. ## These can now easily be accessed and modified: cell1 <- block[1, 1][[1]] print(cell1) #> [1] \"C-3 02 000\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-class.html","id":null,"dir":"Reference","previous_headings":"","what":"The PTCell class — PTCell-class","title":"The PTCell class — PTCell-class","text":"PTCell class smallest possible element PTPattern table. holds information note play, frequency, effect kind triggers jumps applied.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The PTCell class — PTCell-class","text":"PTCell class consists vector four raw values, specified 'Slots' section. cell tell PTSample played frequency (corresponding note octave). octave note specified, nothing played, sample started play PTTrack, sample continue playing. PTCell can also hold effect() codes can used add audio effects sample played, change speed/tempo patterns played, trigger jumps positions within PTPattern positions patternOrder table.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"The PTCell class — PTCell-class","text":"data vector class raw length 4. raw data stored identical way stored ProTracker module file. character representation easier understand, ProTrackR package necessary manipulate raw data directly. structure illustrated example. start character representation PTCell example: \"C-3 1B A08\". left-hand part string shows cell play note \"C\" octave 3. middle part shows PTSample number 0x1B = 27 played. right-hand part string shows effect \"A08\" applied (volume slide ). raw representation example \"10 d6 ba 08\", replace actual values symbols: \"sp pp se ee\". \"ss\" represents sample number, \"eee\" represents effect() code \"ppp\" represents period value. correct note octave can derived looking period value period_table (also implemented following methods: note(), octave() periodToChar()). period value 0x0d6 = 214 corresponds note \"C\" octave 3.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-class.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The PTCell class — PTCell-class","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-class.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The PTCell class — PTCell-class","text":"","code":"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\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Coerce to or replace PTCell — PTCell-method","title":"Coerce to or replace PTCell — PTCell-method","text":"method coerce set objects PTCell object. can also used select specific cells PTModule, PTPattern PTTrack objects replace selected PTCell.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Coerce to or replace PTCell — PTCell-method","text":"","code":"# S4 method for raw,missing,missing,missing PTCell(x) # S4 method for character,missing,missing,missing PTCell(x) # S4 method for PTModule,numeric,numeric,numeric PTCell(x, row, track, pattern) # S4 method for PTModule,numeric,numeric,numeric,PTCell PTCell(x, row, track, pattern) <- value # S4 method for PTPattern,numeric,numeric,missing PTCell(x, row, track) # S4 method for PTPattern,numeric,numeric,missing,PTCell PTCell(x, row, track) <- value # S4 method for PTTrack,numeric,missing,missing PTCell(x, row) # S4 method for PTTrack,numeric,missing,missing,PTCell PTCell(x, row) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Coerce to or replace PTCell — PTCell-method","text":"x Object (raw data, character string, PTTrack, PTPattern PTModule) coerce PTCell. See details required format x. row x PTTrack, PTPattern, PTModule, provide index [1,64] row needs coerced PTCell. track x PTPattern, PTModule, provide index [1,4] track needs coerced PTCell. pattern x PTModule, provide index pattern needs coerced PTCell. Note ProTracker uses indices patterns start zero, whereas R uses indices start one. Hence add one index obtained PTModule object (e.g., x$pattern.order) value object PTCell PTCell object specified indices object x needs replaced.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Coerce to or replace PTCell — PTCell-method","text":"PTCell used, PTCell object based x returned. PTCell<- used, object x returned selected PTCell replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Coerce to or replace PTCell — PTCell-method","text":"Method coerce x class PTCell. x raw data, consist vector 4 elements, formatted specified PTCell. x character string, formatted follows: \"NNO SS EEE\", NN note (instance \"C-\" \"#\", dash particular meaning may omitted, hash sign indicates sharp note). Use dash cell holds note. O octave (value 0, dash, note missing, otherwise 1, 2 3). SS sample index number, formatted two hexadecimal digits (example 1A). EEE three hexadecimal digit effect trigger code (details see PTCell). method case sensitive, can use upper lower case. White spaces ignored, can use many like. correct character input x example: \"#2 01 A0F\". blank character representation look like : \"--- 00 000\". x class PTTrack, PTPattern, PTModule, PTCell specified indices (row, track pattern) returned, can replaced.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Coerce to or replace PTCell — PTCell-method","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Coerce to or replace PTCell — PTCell-method","text":"","code":"## This will create an empty PTCell (equivalent ## to new(\"PTCell\"): PTCell(raw(4)) #> [1] \"--- 00 000\" ## Use a character representation to create ## a new PTCell object. A cell with note ## B in octave 2, sample number 10 and with ## effect '105': cell <- PTCell(\"B-2 0A 105\") data(\"mod.intro\") ## replace PTCell at pattern number 1, track ## number 2, and row number 3: PTCell(mod.intro, 3, 2, 1) <- cell"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTModule-class.html","id":null,"dir":"Reference","previous_headings":"","what":"The PTModule class — PTModule-class","title":"The PTModule class — PTModule-class","text":"PTModule class provides container store modify use ProTracker module files.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTModule-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The PTModule class — PTModule-class","text":"MOD computer file format used primarily represent music. MOD file contains set instruments form samples, number patterns indicating samples played, list patterns play order. simplified structure module class visualised scheme . Details given slot descriptions . class designed hold relevant information ProTracker module (MOD) ProTracker 2.3a documentation used. ProTrackR package may compatible earlier later versions, tested. Use read.module write.module import export objects class PTModule.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTModule-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"The PTModule class — PTModule-class","text":"name vector length 20 class raw, representing name PTModule. name module can extracted replaced name method. pattern.order vector length 128 class raw. raw values represent indices PTPattern tables indicate order patterns need played. Note raw values conform indices used ProTracker, starting zero. R, indices objects start one. Users need compensate discrepancy theirselves. pattern order table can extracted replaced patternOrder method. pattern.order.length single value class raw. Indicates length visible (playable) part pattern order table. Use patternOrderLength method extract replace length pattern order table module. tracker.byte single raw value. Gives indication Tracker used produce module file. ProTracker modules, byte set 0x7f, also used PTModule objects. value changed. tracker.flag vector length 4 class raw, indicates version module, basically reflects many patterns module can hold. details, extracting replacing flag see trackerFlag method. samples List length 31 class \"PTSample\". patterns List class \"PTPattern\" (pattern tables). list least 1 element, can maximum 64 100 elements (depending state trackerFlag).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTModule-class.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"The PTModule class — PTModule-class","text":"https://en.wikipedia.org/wiki/MOD_(file_format) https://wiki.multimedia.cx/index.php?title=Protracker_Module http://coppershade.org/articles/!/Topics/Protracker_File_Format/","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTModule-class.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The PTModule class — PTModule-class","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTModule-class.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The PTModule class — PTModule-class","text":"","code":"## create an empty PTModule class object: mod.empty <- new(\"PTModule\") ## get an example PTModule class object ## provided with the ProTrackR package: data(\"mod.intro\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-class.html","id":null,"dir":"Reference","previous_headings":"","what":"The PTPattern class — PTPattern-class","title":"The PTPattern class — PTPattern-class","text":"PTPattern (simply pattern) table determines samples played notes octave, order effects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The PTPattern class — PTPattern-class","text":"PTPattern table (simply pattern) played, 64 rows (see green mark illustration example row) played subsequently specified speed/tempo. Note ProTracker uses row indices start zero. However, package uses indices starting one, conform R language definitions. table four columns (see purple outline illustration example column), representing four audio channels (PTTrack) Commodore Amiga. Samples listed row different tracks played simultaneously. element specific row track referred PTCell (simply cell). cell determines sample needs played note octave kind effect trigger applied. PTPattern-method, objects can coerced pattern table. method can also used extract replace patterns PTModule objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"The PTPattern class — PTPattern-class","text":"data matrix (64 rows, 16 columns) class raw. row contains raw concatenated data 4 PTCell objects, representing 4 audio channels/tracks (PTCell object holds 4 raw values, row holds 4 x 4 = 16 raw values). raw data formatted conform specifications given PTCell documentation.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-class.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The PTPattern class — PTPattern-class","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Coerce to or replace PTPattern — PTPattern-method","title":"Coerce to or replace PTPattern — PTPattern-method","text":"method coerce set objects PTPattern object. can also used select specific patterns PTModule objects replace selected PTPattern.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Coerce to or replace PTPattern — PTPattern-method","text":"","code":"# S4 method for raw,missing PTPattern(x) # S4 method for matrix,missing PTPattern(x) # S4 method for PTModule,numeric PTPattern(x, pattern) # S4 method for PTModule,numeric,PTPattern PTPattern(x, pattern) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Coerce to or replace PTPattern — PTPattern-method","text":"x Object (raw data, 64 16 matrix raw data, 64 4 matrix character strings, PTModule) coerce PTPattern. See details required format x. pattern x PTModule, provide index pattern needs coerced PTPattern. Note ProTracker uses indices patterns start zero, whereas R uses indices start one. Hence add one index obtained PTModule object (e.g., x$pattern.order). value object PTPattern PTPattern object specified index object x needs replaced.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Coerce to or replace PTPattern — PTPattern-method","text":"PTPattern used, PTPattern object based x returned. PTPattern<- used, object x returned selected PTPattern replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Coerce to or replace PTPattern — PTPattern-method","text":"Method coerce x class PTPattern. x 64 16 matrix raw data, row implicitly represents PTCell objects four tracks. PTCell consists four raw values. values row formatted accordingly, values cells track concatenated. See PTCell documentation details raw format PTCell object. x 64 16 matrix character representations PTCell objects, character representation must conform specifications documented PTCell. x class PTModule, PTPattern specified index (pattern) returned, can replaced.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Coerce to or replace PTPattern — PTPattern-method","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Coerce to or replace PTPattern — PTPattern-method","text":"","code":"## This will create an 'empty' PTPattern with ## all 0x00 values, which is equivalent to ## new(\"PTPattern\"): PTPattern(as.raw(0x00)) #> [,1] [,2] [,3] [,4] #> [1,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [2,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [3,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [4,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [5,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [6,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [7,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [8,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [9,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [10,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [11,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [12,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [13,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [14,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [15,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [16,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [17,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [18,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [19,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [20,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [21,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [22,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [23,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [24,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [25,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [26,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [27,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [28,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [29,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [30,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [31,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [32,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [33,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [34,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [35,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [36,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [37,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [38,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [39,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [40,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [41,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [42,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [43,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [44,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [45,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [46,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [47,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [48,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [49,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [50,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [51,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [52,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [53,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [54,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [55,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [56,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [57,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [58,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [59,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [60,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [61,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [62,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [63,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [64,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" ## Create a PTPattern based on repeated ## PTCell character representations: pat <- PTPattern(matrix(\"F#2 1A 20A\", 64, 4)) data(\"mod.intro\") ## Replace the first pattern in the patternOrder ## table in mod.intro with 'pat' (don't forget to ## add one (+1) to the index): PTPattern(mod.intro, patternOrder(mod.intro)[1] + 1) <- pat"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"Use PTPattern PTBlock create pattern table MODPlug flavour.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"","code":"PTPatternToMODPlug(x, to.clipboard = T)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"x Either PTPattern object PTBlock object Open MODPlug Tracker pattern created. .clipboard logical value, indicating whether result copied system's clipboard (TRUE) returned vector characters (FALSE).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"Returns invisible NULL argument .clipboard set TRUE. Returns Open MODPlug Tracker flavoured pattern table vector characters set FALSE.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"Open MODPlug Tracker (https://openmpt.org) modern music tracker free. can handle ProTracker modules. function assists moving pattern data R Open MPT.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"","code":"if (FALSE) { ## get some pattern data pattern <- PTPattern(mod.intro, 1) ## Now create a MODPlug pattern from this. ## The result is placed on the system clipboard. ## You can check by pasting it into a text ## editor, or better yet, the MODPlug Tracker. PTPatternToMODPlug(pattern) ## If you want to handle the pattern data ## in R: patModPlug <- PTPatternToMODPlug(pattern, F) ## We can do the same with a block: block <- PTBlock(pattern, 1:10, 2:3) PTPatternToMODPlug(block) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-class.html","id":null,"dir":"Reference","previous_headings":"","what":"The PTSample class — PTSample-class","title":"The PTSample class — PTSample-class","text":"class holds audio fragments meta-information, used PTModule objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The PTSample class — PTSample-class","text":"class holds audio fragments meta-information (-called samples), used PTModule objects. class extends tuneR::Wave class tuneR::tuneR. therewith inherits properties cool methods available tuneR::tuneR package. allows , instance, generate power spectra (tuneR::powspec) . can also plot waveform plot-Wave method. See tuneR::tuneR possibilities tuneR::Wave objects. want can also explicitly coerce PTSample tuneR::Wave objects like : (new(\"PTSample\"), \"Wave\"). PTSample class slots additional tuneR::Wave class, ProTracker requires additional information sample respect name, fine tune, volume loop positions. PTSample class restricts enherited tuneR::Wave class hold 8 bit, mono, pcm waves maximum 2*0xffff = 131070 samples, per ProTracker standards. length always even. PTSamples can imported exported using read.sample write.sample methods respectively. tuneR::Wave objects raw data can coerced PTSamples PTSample-method.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"The PTSample class — PTSample-class","text":"name vector length 22 class raw, representing name PTSample. often used include descriptive information PTModule. name sample can extracted replaced name method. finetune Single value class raw. loNybble raw value, represents sample fine tune value ranging -8 7. value used tweak playback sample rate, order tune . Negative values lower sample rate notes, positive values increase sample rate notes. Period values corresponding specific notes fine tune values stored period_table. fine tune value can extracted replace fineTune method. volume Single value class raw. raw data corresponds default playback volume sample. ranges 0 (silent) 64 (maximum volume). volume value can extracted replaced volume method. wloopstart vector length 2 class raw. raw data represent single unsigned number representing starting position loop sample. value 0 loop. value range 0 0xffff. get actual position bytes value needs multiplied 2 can therefore can even. sum loop start position loop length exceed sampleLength. value can extracted replaced loopStart method. wlooplen vector length 2 class raw. raw data represent single unsigned number representing length loop sample. get actual length bytes, value needs multiplied 2 can therefore even. value 2 loop. value range 2 2*0xffff (= 131070) can even (can 0 sample empty). sum loop start position loop length exceed sampleLength. value can extracted replaced loopLength method. left Object class numeric representing waveform left channel. integer values ranging 0 255. can extracted replaced waveform method. right Object class numeric representing right channel. slot inherited tuneR::Wave class numeric(0) PTSamples, mono. stereo Object class logical whether stereo representation. slot inherited tuneR::Wave class. PTSamples always mono, slot value FALSE. samp.rate Object class numeric representing sampling rate. bit Object class numeric representing bit-wise quality. slot inherited tuneR::Wave class. PTSamples always 8 bit quality, value slot always 8. pcm Object class logical indicating whether wave format PCM. slot inherited tuneR::Wave class, PTSamples value always TRUE.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-class.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The PTSample class — PTSample-class","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Coerce to or replace PTSample — PTSample-method","title":"Coerce to or replace PTSample — PTSample-method","text":"method coerce set objects PTSample object. can also used select specific samples PTModule objects replace selected PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Coerce to or replace PTSample — PTSample-method","text":"","code":"# S4 method for Wave,missing PTSample(x) # S4 method for raw,missing PTSample(x) # S4 method for PTModule,numeric PTSample(x, index) # S4 method for PTModule,numeric,PTSample PTSample(x, index) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Coerce to or replace PTSample — PTSample-method","text":"x Object (class tuneR::Wave, vector raw data, class PTModule) needs coerced PTSample object. latter case, object can also replaced. index positive integer index sample PTModule x needs returned replaced. value object PTSample PTSample object specified index object x needs replaced.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Coerce to or replace PTSample — PTSample-method","text":"PTSample used, PTSample object based x returned. PTSample<- used, object x returned selected PTSample replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Coerce to or replace PTSample — PTSample-method","text":"Method coerce x class PTSample. x tuneR::Wave object, method resample . However, sample rate adjusted samples exeeding maximum length 2*0xffff = 131070 clipped maximum length. x stereo sample, converted mono, averaging left right channel. x vector raw data, truncated maximum length 2*0xffff = 131070 exceeded. raw converted rawToSignedInt order represent 8 bit mono waveform. samples must even length (per ProTracker specifications), 0x00 value appended length odd. x class PTModule, PTSample specified index returned, replaced.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Coerce to or replace PTSample — PTSample-method","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Coerce to or replace PTSample — PTSample-method","text":"","code":"## Create a raw data sine wave: raw_sine <- signedIntToRaw(round(sin(2*pi*(0:275)/276)*127)) data(\"mod.intro\") ## Replace sample number 1 from mod.intro ## with the sine wave: PTSample(mod.intro, 1) <- PTSample(raw_sine) ## Note that the replacement above ## could also (maybe more efficiently) ## be done with the 'waveform' method ## Restore the loop in sample number 1: loopLength(PTSample(mod.intro, 1)) <- 276"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-class.html","id":null,"dir":"Reference","previous_headings":"","what":"The PTTrack class — PTTrack-class","title":"The PTTrack class — PTTrack-class","text":"four audio channels Commodore Amiga represented tracks (PTTrack class) PTPattern.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The PTTrack class — PTTrack-class","text":"Commodore Amiga original chipset supported four audio channels. Meaning audio played simultaneously independently channels. Two channels (2 3) hardware-mixed fully right stereo outputs two (1 4) fully left stereo outputs. class represents single channel, reffered track. PTPattern composed four channels. ProTracker pattern consists 64 rows, PTTrack object also (implicitly) composed 64 PTCell objects. Use PTTrack-method construct coerce objects PTTrack-class object, replace object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"The PTTrack class — PTTrack-class","text":"data matrix (64 rows, 4 columns) class raw. row implicetely represents PTCell object, raw data formatted specified PTCell documentation. Use PTCell-method make element PTTrack object explictly class PTCell. Row numbers correspond row numbers PTPattern objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-class.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The PTTrack class — PTTrack-class","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-class.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The PTTrack class — PTTrack-class","text":"","code":"data(\"mod.intro\") ## Get track number 2 from pattern ## number 1 of mod.intro: chan1 <- PTTrack(mod.intro, 2, 1) ## Create a blank track: chan2 <- new(\"PTTrack\") ## Get two more tracks: chan3 <- PTTrack(mod.intro, 1, 2) chan4 <- PTTrack(mod.intro, 4, 3) ## combine the four tracks in a ## new PTPattern: patt <- PTPattern(cbind( as.character(chan1), as.character(chan2), as.character(chan3), as.character(chan4) ))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Coerce to or replace PTTrack — PTTrack-method","title":"Coerce to or replace PTTrack — PTTrack-method","text":"method coerce set objects PTTrack object. can also used select specific tracks PTModule PTPattern objects replace selected PTTrack.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Coerce to or replace PTTrack — PTTrack-method","text":"","code":"# S4 method for raw,missing,missing PTTrack(x) # S4 method for matrix,missing,missing PTTrack(x) # S4 method for character,missing,missing PTTrack(x) # S4 method for PTModule,numeric,numeric PTTrack(x, track, pattern) # S4 method for PTModule,numeric,numeric,PTTrack PTTrack(x, track, pattern) <- value # S4 method for PTPattern,numeric,missing PTTrack(x, track) # S4 method for PTPattern,numeric,missing,PTTrack PTTrack(x, track) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Coerce to or replace PTTrack — PTTrack-method","text":"x Object (raw data, 64 4 matrix raw data, vector character strings, PTPattern PTModule) coerce PTTrack. See details required format x track x PTPattern, PTModule, provide index [1,4] track needs coerced PTTrack. pattern x PTModule, provide index pattern needs coerced PTTrack. Note ProTracker uses indices patterns start zero, whereas R uses indices start one. Hence add one index obtained PTModule object (e.g., x$pattern.order) value object PTTrack PTTrack object specified indices object x needs replaced.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Coerce to or replace PTTrack — PTTrack-method","text":"PTTrack used, PTTrack object based x returned. PTTrack<- used, object x returned selected PTTrack replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Coerce to or replace PTTrack — PTTrack-method","text":"Method coerce x class PTTrack. x 64 4 matrix raw data, row implicitly represents PTCell object formatted accordingly. See PTCell documentation details. x 64 element vector character representation PTCell objects, character representation must conform specifications documented PTCell. x class PTPattern, PTModule, PTTrack specified indices (track pattern) returned, can replaced.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Coerce to or replace PTTrack — PTTrack-method","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Coerce to or replace PTTrack — PTTrack-method","text":"","code":"## This will create an 'empty' PTTrack with all nul ## values, which is equivalent to new(\"PTTrack\"): PTTrack(as.raw(0x00)) #> [1] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [6] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [11] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [16] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [21] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [26] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [31] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [36] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [41] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [46] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [51] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [56] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [61] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" ## This will generate a PTTrack from a repeated ## character representation of a PTCell: chan <- PTTrack(rep(\"C-3 01 C20\", 64)) data(\"mod.intro\") ## This will replace the PTTrack at pattern ## number 1, track number 2 of mod.intro with chan: PTTrack(mod.intro, 2, 1) <- chan"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":null,"dir":"Reference","previous_headings":"","what":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"ProTrackR package can import export module files music tracker ProTracker Commodore Amiga machine. package can also render play module files. Furthermore, package provides means manipulate analyse modules.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"ProTracker popular music tracker sequence music Commodore Amiga machine. package offers opportunity import, export, manipulate play ProTracker module files. Even though file format considered archaic, still remains popular date. package intends contribute popularity therewith keeping legacy ProTracker Commodore Amiga alive. experience ProTracker (music tracker) promote ease use package. However, provided documentation exernal links help , starting scratch. good place start reading manual documentation PTModule, describes structure ProTracker module implemented package. also look documentation PTPattern, PTTrack, PTCell PTSample classes, elements PTModule.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":"current-issues-and-future-developments","dir":"Reference","previous_headings":"","what":"Current issues and future developments","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"development state package, please check README section GitHub. Currently, effect commands implemented, although common ones . work implementing remaining effect commands (see also section ). ProTracker also specific interpretations currently implemented correctly. Sample switching (module switches one sample number another, without specifying new note) also something implemented differently varying module players. package currently implement switches conform ProTracker specs. Period values, dictate fequency samples played, censored Amiga hardware software coded limits original ProTracker. Documentation limits ambiguous. made first attempt implement bounds current version package consulting Olav Sørensen (created ProTracker clone modern machines: https://16-bits.org/pt.php). really grateful input checks actual Amiga. also realise documentation package may bit cryptic points. like improve can, need fresh perspective users. please feel free provide constructive feedback can improve quality package.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":"protracker-effect-commands","dir":"Reference","previous_headings":"","what":"ProTracker Effect Commands","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"explained , effect commands composed three hexadecimal digits. first digit indicates type effect, trigger jump applied, latter two digits indicate magnitude effect. exception commands starting digit 'E', first two digits specify type effect last digit represents magnitude. available effect commands (codes ) listed magnitudes labelled 'x' 'xy'. overview shows commands used kind effect whether implemented (brackets) playing routines package. first words speed tempo ProTracker. two sides coin, affect overall speed patterns played. Speed defined number 'ticks' per pattern row tempo sets duration tick. increasing speed value, decreasing tempo, overall playing speed pattern table reduced. default tempo 125, duration tick equals vertical blank period monitor (1/50 seconds PAL 1/60 seconds NTSC video systems). can set Fxy command. Commodore Amiga chip responsible audio output (Paula), audio playback samples can controlled user two ways: playback rate sample can changed specifying 'period' values (see e.g. periodToSampleRate) specifying volume linearly scaled 0 (silent) 64 (maximum). Period volumes can changed start tick. effects affected speed setting, tempo. now, without ado, overview effect commands:","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":"test-cases","dir":"Reference","previous_headings":"","what":"Test cases","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"interpretation effect commands can tedious. often vary module players. Even ProTracker can quirky (unexpected) ways handling effect commands. package aims staying close ProTracker 'standards' possible. current version already implements effect commands common quirks comes interpretation. subjective estimate correctly play roughly 95% ProTracker modules ModArchive. Less common unexpected behaviour documented team behind OpenMPT, developed several test cases. table shows test cases package passes .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"basic information ProTracker: https://en.wikipedia.org/wiki/Protracker basic information music trackers general: https://en.wikipedia.org/wiki/Music_tracker tutorial ProTracker YouTube: https://www.youtube.com/playlist?list=PLVoRT-Mqwas9gvmCRtOusCQSKNQNf6lTc informal extensive technical documentation ProTracker: ftp://ftp.modland.com/pub/documents/format_documentation/Protracker%20effects%20(FireLight)%20(.mod).txt","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"Maintainer: Pepijn de Vries pepijn.devries@outlook.com (ORCID) [data contributor]","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":null,"dir":"Reference","previous_headings":"","what":"Append a PTPattern to a PTModule — appendPattern","title":"Append a PTPattern to a PTModule — appendPattern","text":"Appends specified PTPattern PTModule.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Append a PTPattern to a PTModule — appendPattern","text":"","code":"# S4 method for PTModule,PTPattern appendPattern(x, pattern)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Append a PTPattern to a PTModule — appendPattern","text":"x PTModule object PTPattern appended. pattern PTPattern object appended PTModule x.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Append a PTPattern to a PTModule — appendPattern","text":"Returns PTModule, PTPattern appended.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Append a PTPattern to a PTModule — appendPattern","text":"Depending trackerFlag, ProTracker module can hold either 64 100 pattern tables. long number pattern tables maximum, new pattern tables can added module function. patternOrder table hold maximum index available pattern tables module, otherwise, module valid. maximum index increases, appending pattern table, patternOrder table updated. appendPattern method automatically, replacing first non-unique index order table, outside current order table's length, new maximum index. possible, highest element order table set hold maximum index.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Append a PTPattern to a PTModule — appendPattern","text":"per ProTracker specification, pattern indices stored PTModule obtained patternOrder start 0. Whereas R starts indexing 1. Beware discrepancy.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Append a PTPattern to a PTModule — appendPattern","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Append a PTPattern to a PTModule — appendPattern","text":"","code":"data(\"mod.intro\") ## append an empty pattern to mod.intro mod.intro <- appendPattern(mod.intro, new(\"PTPattern\")) ## append a copy of pattern # 1 (this is pattern #0 in the ## patternOrder table) to mod.intro mod.intro <- appendPattern(mod.intro, PTPattern(mod.intro, 1))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":null,"dir":"Reference","previous_headings":"","what":"Character representation of ProTrackR objects — as.character","title":"Character representation of ProTrackR objects — as.character","text":"Create character representation PTCell, PTTrack PTPattern objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Character representation of ProTrackR objects — as.character","text":"","code":"# S4 method for PTCell as.character(x) # S4 method for PTTrack as.character(x) # S4 method for PTPattern as.character(x)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Character representation of ProTrackR objects — as.character","text":"x object following classes: PTCell, PTTrack PTPattern.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Character representation of ProTrackR objects — as.character","text":"Returns single character string x class PTCell. Returns vector length 64 type character x class PTTrack. Returns 64 4 matrix type character x class PTPattern.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Character representation of ProTrackR objects — as.character","text":"PTCell element PTTrack turn element PTPattern. PTPattern tells tracker sample play frequency four audio channels effects. PTCell essence holds information described documentation PTCell. Data objects stored objects raw form, save working memory comply ProTracker file specifications. raw data easy interpret, method provided make life (interpretation objects) easier. method generates character representation three objects. character representations can coerced back original classes following methods: PTCell-method, PTTrack-method PTPattern-method.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Character representation of ProTrackR objects — as.character","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Character representation of ProTrackR objects — as.character","text":"","code":"data(\"mod.intro\") as.character( PTCell(mod.intro, 1, 1, 1)) #> [1] \"C-3 01 A08\" as.character(PTTrack(mod.intro, 1, 1)) #> [1] \"C-3 01 A08\" \"--- 01 A08\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" #> [6] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" #> [11] \"--- 01 A08\" \"--- 00 000\" \"G-3 01 000\" \"--- 00 A08\" \"F-3 01 000\" #> [16] \"--- 00 A08\" \"C-3 01 A08\" \"--- 01 A08\" \"--- 01 A08\" \"--- 00 000\" #> [21] \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" #> [26] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"G-2 01 000\" \"--- 00 A08\" #> [31] \"A-2 01 000\" \"--- 00 A08\" \"E-3 01 A08\" \"--- 01 A08\" \"--- 01 A08\" #> [36] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" #> [41] \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"B-3 01 000\" #> [46] \"--- 00 A08\" \"A-3 01 000\" \"--- 00 A08\" \"D-3 01 A08\" \"--- 01 A08\" #> [51] \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" #> [56] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" #> [61] \"A-3 01 000\" \"--- 00 A08\" \"G-3 01 000\" \"--- 00 A08\" as.character(PTPattern(mod.intro, 1)) #> [,1] [,2] [,3] [,4] #> [1,] \"C-3 01 A08\" \"C-3 02 C40\" \"A#1 03 F06\" \"A#2 04 000\" #> [2,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [3,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"C-3 04 000\" #> [4,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [5,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 120\" \"D-3 04 000\" #> [6,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [7,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 220\" \"D#3 04 000\" #> [8,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [9,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [10,] \"--- 00 000\" \"A#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [11,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [12,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [13,] \"G-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"D-3 04 000\" #> [14,] \"--- 00 A08\" \"F-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [15,] \"F-3 01 000\" \"C-3 02 000\" \"--- 00 000\" \"C-3 04 000\" #> [16,] \"--- 00 A08\" \"A#2 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [17,] \"C-3 01 A08\" \"C-3 02 C40\" \"A#1 03 F06\" \"A#2 04 000\" #> [18,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [19,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D-3 04 000\" #> [20,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [21,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 120\" \"F-2 04 000\" #> [22,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [23,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 220\" \"G-2 04 000\" #> [24,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [25,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"A#2 04 000\" #> [26,] \"--- 00 000\" \"A#3 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [27,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [28,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [29,] \"G-2 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [30,] \"--- 00 A08\" \"F-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [31,] \"A-2 01 000\" \"C-3 02 000\" \"--- 00 000\" \"--- 00 000\" #> [32,] \"--- 00 A08\" \"G-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [33,] \"E-3 01 A08\" \"C-3 02 C40\" \"D-2 03 000\" \"D-3 04 000\" #> [34,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [35,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [36,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [37,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 126\" \"F#3 04 000\" #> [38,] \"--- 00 000\" \"D-3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [39,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 226\" \"G-3 04 000\" #> [40,] \"--- 00 000\" \"E-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [41,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"A-3 04 000\" #> [42,] \"--- 00 000\" \"D-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [43,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"G-3 04 000\" #> [44,] \"--- 00 000\" \"D-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [45,] \"B-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [46,] \"--- 00 A08\" \"D-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [47,] \"A-3 01 000\" \"C-3 02 000\" \"--- 00 000\" \"E-3 04 000\" #> [48,] \"--- 00 A08\" \"E-2 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [49,] \"D-3 01 A08\" \"C-3 02 C40\" \"C-2 03 000\" \"C-3 04 000\" #> [50,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [51,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D-3 04 000\" #> [52,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [53,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 12B\" \"E-3 04 000\" #> [54,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [55,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 22B\" \"F-3 04 000\" #> [56,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [57,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"G-3 04 000\" #> [58,] \"--- 00 000\" \"E-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [59,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [60,] \"--- 00 000\" \"C-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [61,] \"A-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [62,] \"--- 00 A08\" \"G-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [63,] \"G-3 01 000\" \"F-3 04 C08\" \"--- 00 000\" \"D-3 04 000\" #> [64,] \"--- 00 A08\" \"C-3 04 C08\" \"--- 00 000\" \"--- 00 A02\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract and replace raw data — as.raw","title":"Extract and replace raw data — as.raw","text":"Information PTCell, PTTrack PTPattern objects stored raw values. method can used extract replace raw data. PTModule objects can also converted raw data replaced .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract and replace raw data — as.raw","text":"","code":"# S4 method for PTCell as.raw(x) # S4 method for PTCell,raw as.raw(x) <- value # S4 method for PTTrack as.raw(x) # S4 method for PTTrack,matrix as.raw(x) <- value # S4 method for PTPattern as.raw(x) # S4 method for PTPattern,matrix as.raw(x) <- value # S4 method for PTModule as.raw(x)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract and replace raw data — as.raw","text":"x PTCell, PTTrack PTPattern object, raw data needs extracted replaced. PTModule object also allowed, object replaced. value raw data raw data object x needs replaced. x PTCell object, value vector four raw values (conform specifications provided documentation PTCell). x PTTrack object, value 64 4 matrix holding raw values (conform specifications provided documentation PTTrack). x PTPattern object, value 64 16 matrix holding raw values (conform specifications provided documentation PTPattern).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract and replace raw data — as.raw","text":".raw, length 4 vector, 64 4 matrix 64 16 matrix raw data returned, x class PTCell, PTTrack PTPattern, respectively. x PTModule object, raw data returned format ProTracker file format. .raw<-, copy object x returned raw data replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract and replace raw data — as.raw","text":"PTCell element PTTrack turn element PTPattern. PTPattern tells tracker sample play frequency four audio channels effects. PTCell essence holds information described documentation PTCell. Data objects stored objects raw form, save working memory comply ProTracker file specifications (see documentation classes details). method can used extract replace raw data. PTModule object complex structure can also converted raw data (way stored ProTracker module file). However, object replaced raw data.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract and replace raw data — as.raw","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract and replace raw data — as.raw","text":"","code":"data(\"mod.intro\") ## Get the raw data of the PTCell at ## pattern #1, track #1 and row #1 ## of mod.intro: as.raw(PTCell(mod.intro, 1, 1, 1)) #> [1] 00 d6 1a 08 ## idem for PTTrack #1 of pattern #1: as.raw(PTTrack(mod.intro, 1, 1)) #> [,1] [,2] [,3] [,4] #> [1,] 00 d6 1a 08 #> [2,] 00 00 1a 08 #> [3,] 00 00 1a 08 #> [4,] 00 00 00 00 #> [5,] 00 00 1a 08 #> [6,] 00 00 00 00 #> [7,] 00 00 1a 08 #> [8,] 00 00 00 00 #> [9,] 00 00 1a 08 #> [10,] 00 00 00 00 #> [11,] 00 00 1a 08 #> [12,] 00 00 00 00 #> [13,] 00 8f 10 00 #> [14,] 00 00 0a 08 #> [15,] 00 a0 10 00 #> [16,] 00 00 0a 08 #> [17,] 00 d6 1a 08 #> [18,] 00 00 1a 08 #> [19,] 00 00 1a 08 #> [20,] 00 00 00 00 #> [21,] 00 00 1a 08 #> [22,] 00 00 00 00 #> [23,] 00 00 1a 08 #> [24,] 00 00 00 00 #> [25,] 00 00 1a 08 #> [26,] 00 00 00 00 #> [27,] 00 00 1a 08 #> [28,] 00 00 00 00 #> [29,] 01 1d 10 00 #> [30,] 00 00 0a 08 #> [31,] 00 fe 10 00 #> [32,] 00 00 0a 08 #> [33,] 00 aa 1a 08 #> [34,] 00 00 1a 08 #> [35,] 00 00 1a 08 #> [36,] 00 00 00 00 #> [37,] 00 00 1a 08 #> [38,] 00 00 00 00 #> [39,] 00 00 1a 08 #> [40,] 00 00 00 00 #> [41,] 00 00 1a 08 #> [42,] 00 00 00 00 #> [43,] 00 00 1a 08 #> [44,] 00 00 00 00 #> [45,] 00 71 10 00 #> [46,] 00 00 0a 08 #> [47,] 00 7f 10 00 #> [48,] 00 00 0a 08 #> [49,] 00 be 1a 08 #> [50,] 00 00 1a 08 #> [51,] 00 00 1a 08 #> [52,] 00 00 00 00 #> [53,] 00 00 1a 08 #> [54,] 00 00 00 00 #> [55,] 00 00 1a 08 #> [56,] 00 00 00 00 #> [57,] 00 00 1a 08 #> [58,] 00 00 00 00 #> [59,] 00 00 1a 08 #> [60,] 00 00 00 00 #> [61,] 00 7f 10 00 #> [62,] 00 00 0a 08 #> [63,] 00 8f 10 00 #> [64,] 00 00 0a 08 ## idem for PTPattern #1: as.raw(PTPattern(mod.intro, 1)) #> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] #> [1,] 00 d6 1a 08 00 d6 2c 40 01 e0 3f 06 00 #> [2,] 00 00 1a 08 00 d6 2c 30 00 00 0a 01 00 #> [3,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [4,] 00 00 00 00 00 d6 20 00 00 00 0a 02 00 #> [5,] 00 00 1a 08 00 d6 20 00 00 00 01 20 00 #> [6,] 00 00 00 00 00 f0 4c 08 00 00 0a 02 00 #> [7,] 00 00 1a 08 00 d6 20 00 00 00 02 20 00 #> [8,] 00 00 00 00 00 f0 4c 08 00 00 0a 01 00 #> [9,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [10,] 00 00 00 00 00 78 4c 08 00 00 0a 01 00 #> [11,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [12,] 00 00 00 00 00 8f 4c 08 00 00 0a 01 00 #> [13,] 00 8f 10 00 00 d6 20 00 00 00 0a 01 00 #> [14,] 00 00 0a 08 00 a0 4c 08 00 00 00 00 00 #> [15,] 00 a0 10 00 00 d6 20 00 00 00 00 00 00 #> [16,] 00 00 0a 08 00 f0 4c 08 00 00 00 00 00 #> [17,] 00 d6 1a 08 00 d6 2c 40 01 e0 3f 06 00 #> [18,] 00 00 1a 08 00 d6 2c 30 00 00 0a 01 00 #> [19,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [20,] 00 00 00 00 00 d6 20 00 00 00 0a 02 00 #> [21,] 00 00 1a 08 00 d6 20 00 00 00 01 20 01 #> [22,] 00 00 00 00 00 f0 4c 08 00 00 0a 02 00 #> [23,] 00 00 1a 08 00 d6 20 00 00 00 02 20 01 #> [24,] 00 00 00 00 00 f0 4c 08 00 00 0a 01 00 #> [25,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [26,] 00 00 00 00 00 78 4c 08 00 00 0a 01 00 #> [27,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [28,] 00 00 00 00 00 8f 4c 08 00 00 0a 01 00 #> [29,] 01 1d 10 00 00 d6 20 00 00 00 0a 01 00 #> [30,] 00 00 0a 08 01 40 4c 08 00 00 00 00 00 #> [31,] 00 fe 10 00 00 d6 20 00 00 00 00 00 00 #> [32,] 00 00 0a 08 01 1d 4c 08 00 00 00 00 00 #> [33,] 00 aa 1a 08 00 d6 2c 40 01 7d 30 00 00 #> [34,] 00 00 1a 08 00 d6 2c 30 00 00 0a 01 00 #> [35,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [36,] 00 00 00 00 00 d6 20 00 00 00 0a 02 00 #> [37,] 00 00 1a 08 00 d6 20 00 00 00 01 26 00 #> [38,] 00 00 00 00 00 be 4c 08 00 00 0a 02 00 #> [39,] 00 00 1a 08 00 d6 20 00 00 00 02 26 00 #> [40,] 00 00 00 00 00 aa 4c 08 00 00 0a 01 00 #> [41,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [42,] 00 00 00 00 00 be 4c 08 00 00 0a 01 00 #> [43,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [44,] 00 00 00 00 00 be 4c 08 00 00 0a 01 00 #> [45,] 00 71 10 00 00 d6 20 00 00 00 0a 01 00 #> [46,] 00 00 0a 08 00 be 4c 08 00 00 00 00 00 #> [47,] 00 7f 10 00 00 d6 20 00 00 00 00 00 00 #> [48,] 00 00 0a 08 01 53 4c 08 00 00 00 00 00 #> [49,] 00 be 1a 08 00 d6 2c 40 01 ac 30 00 00 #> [50,] 00 00 1a 08 00 d6 2c 30 00 00 0a 01 00 #> [51,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [52,] 00 00 00 00 00 d6 20 00 00 00 0a 02 00 #> [53,] 00 00 1a 08 00 d6 20 00 00 00 01 2b 00 #> [54,] 00 00 00 00 00 8f 4c 08 00 00 0a 02 00 #> [55,] 00 00 1a 08 00 d6 20 00 00 00 02 2b 00 #> [56,] 00 00 00 00 00 8f 4c 08 00 00 0a 01 00 #> [57,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [58,] 00 00 00 00 00 aa 4c 08 00 00 0a 01 00 #> [59,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [60,] 00 00 00 00 00 d6 4c 08 00 00 0a 01 00 #> [61,] 00 7f 10 00 00 d6 20 00 00 00 0a 01 00 #> [62,] 00 00 0a 08 00 8f 4c 08 00 00 00 00 00 #> [63,] 00 8f 10 00 00 a0 4c 08 00 00 00 00 00 #> [64,] 00 00 0a 08 00 d6 4c 08 00 00 00 00 00 #> [,14] [,15] [,16] #> [1,] f0 40 00 #> [2,] 00 0a 02 #> [3,] d6 40 00 #> [4,] 00 0a 02 #> [5,] be 40 00 #> [6,] 00 0a 02 #> [7,] b4 40 00 #> [8,] 00 0a 02 #> [9,] a0 40 00 #> [10,] 00 0a 02 #> [11,] b4 40 00 #> [12,] 00 0a 02 #> [13,] be 40 00 #> [14,] 00 0a 02 #> [15,] d6 40 00 #> [16,] 00 0a 02 #> [17,] f0 40 00 #> [18,] 00 0a 02 #> [19,] be 40 00 #> [20,] 00 0a 02 #> [21,] 40 40 00 #> [22,] 00 0a 02 #> [23,] 1d 40 00 #> [24,] 00 0a 02 #> [25,] f0 40 00 #> [26,] 00 0a 01 #> [27,] 00 00 00 #> [28,] 00 0a 01 #> [29,] 00 00 00 #> [30,] 00 0a 01 #> [31,] 00 00 00 #> [32,] 00 0a 01 #> [33,] be 40 00 #> [34,] 00 0a 02 #> [35,] aa 40 00 #> [36,] 00 0a 02 #> [37,] 97 40 00 #> [38,] 00 0a 02 #> [39,] 8f 40 00 #> [40,] 00 0a 02 #> [41,] 7f 40 00 #> [42,] 00 0a 02 #> [43,] 8f 40 00 #> [44,] 00 0a 02 #> [45,] 97 40 00 #> [46,] 00 0a 02 #> [47,] aa 40 00 #> [48,] 00 0a 02 #> [49,] d6 40 00 #> [50,] 00 0a 02 #> [51,] be 40 00 #> [52,] 00 0a 02 #> [53,] aa 40 00 #> [54,] 00 0a 02 #> [55,] a0 40 00 #> [56,] 00 0a 02 #> [57,] 8f 40 00 #> [58,] 00 0a 02 #> [59,] a0 40 00 #> [60,] 00 0a 02 #> [61,] aa 40 00 #> [62,] 00 0a 02 #> [63,] be 40 00 #> [64,] 00 0a 02 ## replace raw data of PTCell 1, 1, 1 ## with that of PTCell 2, 1, 1: as.raw(PTCell(mod.intro, 1, 1, 1)) <- as.raw(PTCell(mod.intro, 2, 1, 1))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":null,"dir":"Reference","previous_headings":"","what":"Clear all samples from module — clearSamples","title":"Clear all samples from module — clearSamples","text":"Remove PTSamples PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Clear all samples from module — clearSamples","text":"","code":"# S4 method for PTModule clearSamples(mod)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Clear all samples from module — clearSamples","text":"mod PTModule object samples needs removed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Clear all samples from module — clearSamples","text":"Returns copy object mod samples removed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Clear all samples from module — clearSamples","text":"Conform original ProTracker, method removes patterns PTSamples module. keep patterns (PTPattern) patternOrder info.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Clear all samples from module — clearSamples","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Clear all samples from module — clearSamples","text":"","code":"data(mod.intro) ## 'clear.mod' is a copy of 'mod.intro' without the ## samples. It still holds all pattern tables and ## pattern order info. clear.mod <- clearSamples(mod.intro)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":null,"dir":"Reference","previous_headings":"","what":"Clear all pattern info from module — clearSong","title":"Clear all pattern info from module — clearSong","text":"Remove patterns (PTPattern) patternOrder info PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Clear all pattern info from module — clearSong","text":"","code":"# S4 method for PTModule clearSong(mod)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Clear all pattern info from module — clearSong","text":"mod PTModule object pattern (order) info needs removed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Clear all pattern info from module — clearSong","text":"Returns copy object mod pattern (order) info removed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Clear all pattern info from module — clearSong","text":"Conform original ProTracker, method removes patterns (PTPattern) patternOrder info module. keep audio PTSamples.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Clear all pattern info from module — clearSong","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Clear all pattern info from module — clearSong","text":"","code":"data(mod.intro) ## 'clear.mod' is a copy of 'mod.intro' without the ## pattern (order) info. It still has the audio samples. clear.mod <- clearSong(mod.intro)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":null,"dir":"Reference","previous_headings":"","what":"Remove a PTPattern table from a PTModule object — deletePattern","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"method removes PTPattern PTModule object updates patternOrder table accordingly.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"","code":"# S4 method for PTModule,numeric deletePattern(x, index)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"x PTModule PTPattern needs removed. index numeric index PTPattern table needs removed. index 1 patternLength. possible delete multiple patterns simultaneously method. PTModule always hold least 1 pattern table, therefore, last PTPattern table deleted.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"Returns PTModule selected PTPattern deleted.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"method safely removes PTPattern PTModule object, guarding validity PTModule object. therefore also updates patternOrder table, renumbering indices listed . index removed object replaced zero patternOrder table.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"per ProTracker specification, pattern indices stored PTModule obtained patternOrder start 0. Whereas R starts indexing 1. Beware discrepancy.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"","code":"data(\"mod.intro\") print(mod.intro) #> #> PTModule Object: #> \tModule name:\t\t\tintro\t\t\t #> \tNumber of samples:\t\t4\t\t #> \tNumber of patterns:\t\t4\t\t #> \tPattern order table length:\t9\t ## delete pattern #2 from mod.intro: mod.intro <- deletePattern(mod.intro, 2) print(mod.intro) #> #> PTModule Object: #> \tModule name:\t\t\tintro\t\t\t #> \tNumber of samples:\t\t4\t\t #> \tNumber of patterns:\t\t3\t\t #> \tPattern order table length:\t9"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or replace effect/trigger codes — effect","title":"Extract or replace effect/trigger codes — effect","text":"3 right-hand symbols character representation PTCell represent effect trigger code. method can used extract replace code.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or replace effect/trigger codes — effect","text":"","code":"# S4 method for PTCell effect(x) # S4 method for PTCell,character effect(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or replace effect/trigger codes — effect","text":"x PTCell effect code needs extracted. value character string containing three hexadecimal digit effect code. hexadecimal codes accepted, produce meaningful effects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract or replace effect/trigger codes — effect","text":"effect, character string three hexadecimal digit effect code returned. effect<-, copy object x effect code value returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract or replace effect/trigger codes — effect","text":"PTCell represented character string, last three symbols represent hexadecimal effect trigger code. general first three symbols indicates type effect trigger, whereas latter two generally indicate magnitude position effects triggers. Effects can instance volume frequency slides. codes can also affect module tempo cause position jumps. replacing code, three digit hexadecimal character strings accepted, although codes represent valid effect trigger. See http://coppershade.org/articles/!/Topics/Protracker_Effect_Commands/ valid list effect codes.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract or replace effect/trigger codes — effect","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract or replace effect/trigger codes — effect","text":"","code":"data(\"mod.intro\") ## the PTCell in row #1, of pattern #1, track #1 ## has effect code \"A08\", which is a volume slide down (0xA) ## with speed 0x8: effect(PTCell(mod.intro, 1, 1, 1)) #> [1] \"A08\" ## this is how you can change an effect: cell <- PTCell(\"C-2 01 000\") effect(cell) <- \"C20\" ## the above expression sets the volume (effect 0xC) ## to 50% (0x20 which is halve of the maximum 0x40)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":null,"dir":"Reference","previous_headings":"","what":"Fine tune a PTSample — fineTune","title":"Fine tune a PTSample — fineTune","text":"Extract replace fine tune value PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fine tune a PTSample — fineTune","text":"","code":"# S4 method for PTSample fineTune(sample) # S4 method for PTSample,numeric fineTune(sample) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fine tune a PTSample — fineTune","text":"sample PTSample fine tune value needs extracted replace. value numeric value ranging -8 7, representing fine tune.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fine tune a PTSample — fineTune","text":"fineTune fine tune value, represented integer value ranging -8 7, returned. fineTune<- PTSample sample, updated fine tune value, returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fine tune a PTSample — fineTune","text":"PTSamples can tuned fine tune values. values range -8 7 affect playback sample rate specific notes (see period_table). method can used extract value, safely replace .","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Fine tune a PTSample — fineTune","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fine tune a PTSample — fineTune","text":"","code":"data(\"mod.intro\") ## get the finetune of the first sample of mod.intro: fineTune(PTSample(mod.intro, 1)) #> [1] 0 ## Let's tweak the finetune of the first sample of ## mod.intro to -1: fineTune(PTSample(mod.intro, 1)) <- -1"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":null,"dir":"Reference","previous_headings":"","what":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"Try fix non-valid PTModule objects order meet ProTracker specs pass validity tests.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"","code":"# S4 method for PTModule,logical fix.PTModule(mod, verbose = T) # S4 method for PTModule,missing fix.PTModule(mod)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"mod PTModule object needs fixing. verbose default value TRUE, method prints progress report sink. set FALSE, progress report suppressed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"Returns copy object mod non-conformaties attempted fixed. (Attempted) fixes listed printed progress report.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"Almost file can read PTModule object (using read.module) validity ignored unexpected end file reached. package's object validity strickly testing compliance ProTracker specifications. many modules created trackers (often play just well ProTracker) desirable convert object ProTracker specs. method attempts , fixing aspect, also tested object validity functions. Note attempts guarantee success, `fixed' modules may play intended.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"current version, pattern data checked non-conformaties fixed.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"","code":"if (FALSE) { data(\"mod.intro\") ## Let's do something illegal and destroy mod.intro: mod.intro@pattern.order <- mod.intro@pattern.order[1:9] ## We should have used the 'patternOrder'-method to ## change the pattern order. Now we have broken the ## object: validObject(mod.intro, TRUE) ## No worries, we can fix it: mod.intro <- fix.PTModule(mod.intro) ## See, it's all OK again: validObject(mod.intro, TRUE) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/funk_table.html","id":null,"dir":"Reference","previous_headings":"","what":"ProTracker Funk Table — funk_table","title":"ProTracker Funk Table — funk_table","text":"Small list numbers used obscure audio effect ProTracker","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/funk_table.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"ProTracker Funk Table — funk_table","text":"numeric vector length 16 holding values used ProTracker funk repeat effects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/funk_table.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ProTracker Funk Table — funk_table","text":"dataset included completeness sake. yet used class, method function ProTrackR package. may well obsolete recent ProTracker versions.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/funk_table.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ProTracker Funk Table — funk_table","text":"https://fossies.org/linux/uade/amigasrc/players/tracker/eagleplayers/mod32_protracker/PTK_versions.txt","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/funk_table.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ProTracker Funk Table — funk_table","text":"","code":"data(\"funk_table\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":null,"dir":"Reference","previous_headings":"","what":"The loop length of a PTSample — loopLength","title":"The loop length of a PTSample — loopLength","text":"Extract replace loop length PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"The loop length of a PTSample — loopLength","text":"","code":"# S4 method for PTSample loopLength(sample) # S4 method for PTSample loopLength(sample) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"The loop length of a PTSample — loopLength","text":"sample PTSample loop length needs extracted replace. value even numeric value giving loop length samples ranging 2 131070 (can 0 sample empty). sum loopStart loopLength exceed sampleLength. Use value either character \"\" logical FALSE, order turn loop together.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"The loop length of a PTSample — loopLength","text":"loopLength loop length (samples), represented even integer value ranging 0 131070, returned. loopLength<- PTSample sample, updated loop length value, returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The loop length of a PTSample — loopLength","text":"PTSamples can loops, marked starting position length loop (samples), details see PTSample. method can used extract loop length safely replace value.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The loop length of a PTSample — loopLength","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The loop length of a PTSample — loopLength","text":"","code":"data(\"mod.intro\") ## get the loop length of the ## first sample of mod.intro: loopLength(PTSample(mod.intro, 1)) #> [1] 276 ## Let's change the length of ## the loop to 200 loopLength(PTSample(mod.intro, 1)) <- 200 ## Let's turn off the loop all together: loopLength(PTSample(mod.intro, 1)) <- FALSE"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":null,"dir":"Reference","previous_headings":"","what":"Looped waveform of a sample — loopSample","title":"Looped waveform of a sample — loopSample","text":"Generate looped waveform PTSample object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Looped waveform of a sample — loopSample","text":"","code":"# S4 method for PTSample loopSample(sample, times, n_samples)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Looped waveform of a sample — loopSample","text":"sample PTSample object needs looped. times positive integer value indicating number times sample loop repeated. argument ignored n_samples specified. n_samples positive integer value indicating desired length looped waveform number samples. argument overrules times argument.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Looped waveform of a sample — loopSample","text":"Returns waveform represented numeric vector values ranging 0 255. length n_samples argument specified.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Looped waveform of a sample — loopSample","text":"playing routines, can useful generate repeats sample loop. method returns waveform PTSample loop repeated times`' times length n_samples`'.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Looped waveform of a sample — loopSample","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Looped waveform of a sample — loopSample","text":"","code":"data(\"mod.intro\") ## Loop sample number 4 10 times: wform <- loopSample(PTSample(mod.intro, 4), times = 10) plot(wform, type = \"l\") ## Loop sample number 4, such that its ## final length is 5000 samples: wform <- loopSample(PTSample(mod.intro, 4), n_samples = 5000) plot(wform, type = \"l\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":null,"dir":"Reference","previous_headings":"","what":"The loop start position of a PTSample — loopStart","title":"The loop start position of a PTSample — loopStart","text":"Extract replace loop start position PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"The loop start position of a PTSample — loopStart","text":"","code":"# S4 method for PTSample loopStart(sample) # S4 method for PTSample loopStart(sample) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"The loop start position of a PTSample — loopStart","text":"sample PTSample loop start position needs extracted replace. value even numeric value giving loop starting position samples ranging 0 131070. sum loopStart loopLength exceed sampleLength. Use value either character \"\" logical FALSE, order turn loop together.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"The loop start position of a PTSample — loopStart","text":"loopStart loop start position (samples), represented even integer value ranging 0 131070, returned. loopStart<- PTSample sample, updated loop start position ``value`', returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The loop start position of a PTSample — loopStart","text":"PTSamples can loops, marked starting position length loop (samples), details see PTSample. method can used extract loop starting position safely replace value.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The loop start position of a PTSample — loopStart","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The loop start position of a PTSample — loopStart","text":"","code":"data(\"mod.intro\") ## get the loop start position of the ## first sample of mod.intro: loopStart(PTSample(mod.intro, 1)) #> [1] 762 ## Let's change the starting position of ## the loop to 500 loopStart(PTSample(mod.intro, 1)) <- 500 ## Let's turn off the loop all together: loopStart(PTSample(mod.intro, 1)) <- FALSE"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":null,"dir":"Reference","previous_headings":"","what":"Get PTSample loop state — loopState","title":"Get PTSample loop state — loopState","text":"Determines whether loop specified PTSample object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get PTSample loop state — loopState","text":"","code":"# S4 method for PTSample loopState(sample)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get PTSample loop state — loopState","text":"sample PTSample object loop state needs determined.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get PTSample loop state — loopState","text":"Returns logical value indicating whether loop (TRUE) (FALSE) specified sample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get PTSample loop state — loopState","text":"loop state explicitly stored PTSample object. can derived loopStart position loopLength. method provided convenient method get state. Use either loopStart loopLength change state.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get PTSample loop state — loopState","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get PTSample loop state — loopState","text":"","code":"data(\"mod.intro\") ## Get the loop status of sample number 1 ## (it has a loop): loopState(PTSample(mod.intro, 1)) #> [1] TRUE ## Get the loop status of sample number 2 ## (it has no loop): loopState(PTSample(mod.intro, 2)) #> [1] FALSE"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/mod.intro.html","id":null,"dir":"Reference","previous_headings":"","what":"Example of a PTModule object — mod.intro","title":"Example of a PTModule object — mod.intro","text":"PTModule object included package example.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/mod.intro.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Example of a PTModule object — mod.intro","text":"PTModule object containing 4 PTSample objects (27 empty PTSample objects, adding 31 samples PTModule hold) 4 PTPattern objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/mod.intro.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Example of a PTModule object — mod.intro","text":"PTModule object based original ProTracker module file composed late nineteen nineties. used example many ProTrackR methods can use test code. can also exported back original ProTracker module file using write.module.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/mod.intro.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Example of a PTModule object — mod.intro","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/mod.intro.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Example of a PTModule object — mod.intro","text":"","code":"data(\"mod.intro\") print(mod.intro) #> #> PTModule Object: #> \tModule name:\t\t\tintro\t\t\t #> \tNumber of samples:\t\t4\t\t #> \tNumber of patterns:\t\t4\t\t #> \tPattern order table length:\t9\t plot(mod.intro) #> Error in as.double(y): cannot coerce type 'S4' to vector of type 'double' if (FALSE) { playSample(mod.intro) ## Save as an original module file, ## which can be played with ProTracker (or several modern audio players): write.module(mod.intro, \"intro.mod\") }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":null,"dir":"Reference","previous_headings":"","what":"ModArchive helper functions — modArchive","title":"ModArchive helper functions — modArchive","text":"https://ModArchive.org largest online archive module files. functions assist accessing archive.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ModArchive helper functions — modArchive","text":"","code":"modArchive.info(mod.id, api.key) modArchive.download(mod.id, ...) modArchive.search.mod( search.text, search.where = c(\"filename_or_songtitle\", \"filename_and_songtitle\", \"filename\", \"songtitle\", \"module_instruments\", \"module_comments\"), format.filter = c(\"unset\", \"669\", \"AHX\", \"DMF\", \"HVL\", \"IT\", \"MED\", \"MO3\", \"MOD\", \"MTM\", \"OCT\", \"OKT\", \"S3M\", \"STM\", \"XM\"), size.filter = c(\"unset\", \"0-99\", \"100-299\", \"300-599\", \"600-1025\", \"1025-2999\", \"3072-6999\", \"7168-100000\"), genre.filter = \"deprecated\", page, api.key ) modArchive.request.count(api.key) modArchive.max.requests(api.key) modArchive.view.by( view.query, view.by = c(\"view_by_list\", \"view_by_rating_comments\", \"view_by_rating_reviews\", \"view_modules_by_artistid\", \"view_modules_by_guessed_artist\"), format.filter = c(\"unset\", \"669\", \"AHX\", \"DMF\", \"HVL\", \"IT\", \"MED\", \"MO3\", \"MOD\", \"MTM\", \"OCT\", \"OKT\", \"S3M\", \"STM\", \"XM\"), size.filter = c(\"unset\", \"0-99\", \"100-299\", \"300-599\", \"600-1025\", \"1025-2999\", \"3072-6999\", \"7168-100000\"), page, api.key ) modArchive.search.genre( genre.filter = c(\"unset\", \"Alternative\", \"Gothic\", \"Grunge\", \"Metal - Extreme\", \"Metal (general)\", \"Punk\", \"Chiptune\", \"Demo Style\", \"One Hour Compo\", \"Chillout\", \"Electronic - Ambient\", \"Electronic - Breakbeat\", \"Electronic - Dance\", \"Electronic - Drum and Bass\", \"Electronic - Gabber\", \"Electronic - Hardcore\", \"Electronic - House\", \"Electronic - IDM\", \"Electronic - Industrial\", \"Electronic - Jungle\", \"Electronic - Minimal\", \"Electronic - Other\", \"Electronic - Progressive\", \"Electronic - Rave\", \"Electronic - Techno\", \"Electronic (general)\", \"Trance - Acid\", \"Trance - Dream\", \"Trance - Goa\", \"Trance - Hard\", \"Trance - Progressive\", \"Trance - Tribal\", \"Trance (general)\", \"Big Band\", \"Blues\", \"Jazz - Acid\", \"Jazz - Modern\", \"Jazz (general)\", \"Swing\", \"Bluegrass\", \"Classical\", \"Comedy\", \"Country\", \"Experimental\", \"Fantasy\", \"Folk\", \"Fusion\", \"Medieval\", \"New Ages\", \"Orchestral\", \"Other\", \"Piano\", \"Religious\", \"Soundtrack\", \"Spiritual\", \"Video Game\", \"Vocal Montage\", \"World\", \"Ballad\", \"Disco\", \"Easy Listening\", \"Funk\", \"Pop - Soft\", \"Pop - Synth\", \"Pop (general)\", \"Rock - Hard\", \"Rock - Soft\", \"Rock (general)\", \"Christmas\", \"Halloween\", \"Hip-Hop\", \"R and B\", \"Reggae\", \"Ska\", \"Soul\"), format.filter = c(\"unset\", \"669\", \"AHX\", \"DMF\", \"HVL\", \"IT\", \"MED\", \"MO3\", \"MOD\", \"MTM\", \"OCT\", \"OKT\", \"S3M\", \"STM\", \"XM\"), size.filter = c(\"unset\", \"0-99\", \"100-299\", \"300-599\", \"600-1025\", \"1025-2999\", \"3072-6999\", \"7168-100000\"), page, api.key ) modArchive.search.artist(search.artist, page, api.key) modArchive.search.hash(search.hash, api.key) modArchive.random.pick( genre.filter = c(\"Alternative\", \"Gothic\", \"Grunge\", \"Metal - Extreme\", \"Metal (general)\", \"Punk\", \"Chiptune\", \"Demo Style\", \"One Hour Compo\", \"Chillout\", \"Electronic - Ambient\", \"Electronic - Breakbeat\", \"Electronic - Dance\", \"Electronic - Drum and Bass\", \"Electronic - Gabber\", \"Electronic - Hardcore\", \"Electronic - House\", \"Electronic - IDM\", \"Electronic - Industrial\", \"Electronic - Jungle\", \"Electronic - Minimal\", \"Electronic - Other\", \"Electronic - Progressive\", \"Electronic - Rave\", \"Electronic - Techno\", \"Electronic (general)\", \"Trance - Acid\", \"Trance - Dream\", \"Trance - Goa\", \"Trance - Hard\", \"Trance - Progressive\", \"Trance - Tribal\", \"Trance (general)\", \"Big Band\", \"Blues\", \"Jazz - Acid\", \"Jazz - Modern\", \"Jazz (general)\", \"Swing\", \"Bluegrass\", \"Classical\", \"Comedy\", \"Country\", \"Experimental\", \"Fantasy\", \"Folk\", \"Fusion\", \"Medieval\", \"New Ages\", \"Orchestral\", \"Other\", \"Piano\", \"Religious\", \"Soundtrack\", \"Spiritual\", \"Video Game\", \"Vocal Montage\", \"World\", \"Ballad\", \"Disco\", \"Easy Listening\", \"Funk\", \"Pop - Soft\", \"Pop - Synth\", \"Pop (general)\", \"Rock - Hard\", \"Rock - Soft\", \"Rock (general)\", \"Christmas\", \"Halloween\", \"Hip-Hop\", \"R and B\", \"Reggae\", \"Ska\", \"Soul\"), format.filter = c(\"unset\", \"669\", \"AHX\", \"DMF\", \"HVL\", \"IT\", \"MED\", \"MO3\", \"MOD\", \"MTM\", \"OCT\", \"OKT\", \"S3M\", \"STM\", \"XM\"), size.filter = c(\"unset\", \"0-99\", \"100-299\", \"300-599\", \"600-1025\", \"1025-2999\", \"3072-6999\", \"7168-100000\"), api.key )"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ModArchive helper functions — modArchive","text":"mod.id integer code used module identifier ModArchive database. mod.id can obtained performing search modArchive.search.mod. downloading module, make sure identifier represents MOD file, types result error. api.key ModArchive functions require personal secret API key. key can obtained ModArchive forum. See `ModArchive API Key' section instructions obtain key. ... arguments passed read.module. search.text character string used terms search ModArchive. search.character string indicating module files search search.text. See usage section available options. format.filter File format filter used search ModArchive. See usage section possible options. Default \"unset\" (meaning search file format). Note `MOD' format supported package. size.filter File size filter used search ModArchive. Needs character string representation file size category specified ModArchive.org. See usage section possible options. Default \"unset\" (meaning search file size). Note maximum file size module approximately 4068 kilobytes, meaning largest file size category irrelevant `MOD' files. Also note category names inconsistant, literal catagories used ModArchive genre.filter Genre filter used overviews ModArchive. Needs character string representation genre specified ModArchive.org. See usage section possible options. argument deprecated function modArchive.search since ProTrackR version 0.3.4, functions still accept argument. page Many ModArchive returns paginated tables. argument omitted, first page returned. Use integer value return specific page. total number pages search view returned attribute returned base::data.frame. view.query query used combination view.argument. Use queries combination view.follows: view_by_list: Use single capital starting letter browse modules name view_by_rating_comments: Provide (user) rating wish browse modules view_by_rating_reviews: Provide (reviewer) rating wish browse modules view_modules_by_artistid: Provide artist id number wish browse /modules view_modules_by_guessed_artist: Provide artist guessed name wish browser /modules view.Indicate modArchive.view.function sort overview tables modules. See `usage' section possible options. search.artist character string representing (guessed) artist name id number ar looking archive. search.hash MD5 hash code specific module looking . See https://modarchive.org/?xml-api-usage-level3 details.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ModArchive helper functions — modArchive","text":"modArchive.info, modArchive.search.genre, modArchive.search.hash, modArchive.random.pick modArchive.view.return data.frame containing information modules ModArchive. Note data.frame formatted differently since ProTrackR 0.3.4, may cause backward compatibility issues. modArchive.download download module return PTModule object. modArchive.search.artist return data.frame containing information artists ModArchive. modArchive.request.count returns number ModArchive API request left month, provided key. modArchive.max.requests returns maximum monthly requests provided key.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ModArchive helper functions — modArchive","text":"modArchive.info function retrieve info specific module ModArchive. modArchive.search.mod, modArchive.search.genre modArchive.search.hash functions can used find specific modules archive. Use modArchive.random.pick get module info random module archive. Use modArchive.view.function browse archive specific aspects. Note ModArchive also contains file formats ProTracker's MOD format. package can handle MOD format. modArchive.download function download module archive. Use modArchive.search.artist find artist details archive. Use modArchive.request.count determine many request made current month specified key (see ModArchive API key' section details). Use modArchive.max.requeststo determine many request allowed make month provided key (seeModArchive API key' section details).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"modarchive-api-key","dir":"Reference","previous_headings":"","what":"ModArchive API key","title":"ModArchive helper functions — modArchive","text":"Since ProTrackR 0.3.4, ModArchive helper functions changed. earlier version, labile html scraper used, 0.3.4 later, replaced functions robustly use Application Programming Interface (API) provided ModArchive. downsides new approach: personal API key needs obtained ModArchive team; ProTrackR package relies yet another package (XML) parse XML files returned API. switch? Well, first , approach better supported ModArchive. personal API key used avoid excessive access imposing monthly request limit (keep mind ModArchive provides free services run volunteers). upside XML files lot lighter html files returned regular website. Therefore, new functions faster, reduce load ModArchive servers. XML files also allow easier access ModArchive functionality implemented ModArchive helper functions described . get personal API key? First, need register ModArchive Forums. follow instructions provided topic forum. info, see also API page ModArchive. want search module files without API key, one make use modLand collection instead.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"ModArchive helper functions — modArchive","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ModArchive helper functions — modArchive","text":"","code":"if (FALSE) { ## most of the example below will fail as they require a ## real modArchive API key. The key used in these example ## is just a dummy. See details on how to get a key ## in the section 'ModArchive API Key' in the manual. ## Search for the module that is also used as ## an example in this package: search.results <- modArchive.search.mod(\"*_-_intro.mod\", size.filter = \"0-99\", format.filter = \"MOD\", api.key = \"\") ## apparently there are multiple modules in ## database that have '_-_intro' in their ## file name or title. Select the wanted ## module from the list (the one with the ## word 'protrackr' in the instrument names): search.select <- subset(search.results, grepl(\"protrackr\", search.results$instruments)) ## get the same details, but now only for ## the specific module based on its ModArchive ID: modArchive.info(search.select$id, api.key = \"\") ## download the selected module from ModArchive.org: mod <- modArchive.download(search.select$id) ## here's a randomly picked module from the ModArchive: info.random <- modArchive.random.pick(api.key = \"\") ## use modArchive.view.by to list the 2nd page ## of MOD files that start with the letter 'A' info.list <- modArchive.view.by(\"A\", \"view_by_list\", \"MOD\", page = 2, api.key = \"\") ## list the modules of the artist with id number 89200: artist.mods <- modArchive.view.by(\"89200\", \"view_modules_by_artistid\", format.filter = \"MOD\", api.key = \"\") ## here's how you can list MOD files of a ## specific genre: list.genre <- modArchive.search.genre(\"Chiptune\", \"MOD\", api.key = \"\") ## get module info for a specific hash code mod.hash <- modArchive.search.hash(\"8f80bcab909f700619025bd7f2975749\", \"\") ## find modarchive artist info, search for artist name ## or artist id: artist.list <- modArchive.search.artist(\"89200\", api.key = \"\") ## How many requests did I make this month?: modArchive.request.count(\"\") ## How many requests am I allowed to make each month?: modArchive.max.requests(\"\") }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":null,"dir":"Reference","previous_headings":"","what":"ModLand helper functions — modLand","title":"ModLand helper functions — modLand","text":"https://modland.com largest online archive module files. functions assist accessing archive.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ModLand helper functions — modLand","text":"","code":"modLand.search.mod(search.text) modLand.download.mod( format, author, title, mirror = c(\"modland.com\", \"ftp.modland.com\", \"antarctica.no\", \"ziphoid.com\", \"exotica.org.uk\"), ... )"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ModLand helper functions — modLand","text":"search.text single length character vector, containing search text. Provided search pattern searched fields (mod format, author title). Prefixes can added keywords inclusive exclusive searches. details see https://www.exotica.org.uk/wiki/Modland#Searching. Note modLand contains wide range tracker files, mod-files supported ProTrackR package. therefore advisable add keyword `mod' search string. format single length character vector, indicating tracker file format. ``Protracker`' option likely work package. author single length character vector, indicating module author name. Can obtained modLand.search.mod. title single length character vector, indicating module title. Can obtained modLand.search.mod. mirror single length character vector. contain one mirrors listed `usage' section. Select mirror site module file needs downloaded. ... Argument passed read.module.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ModLand helper functions — modLand","text":"modLand.search.mod returns data.frame. data.frame contains search result row. data.frame contains number columns, containing character strings. column title' contains mod file name; column named author' contains author name; column named format' contains tracker file format (``Protracker' supported package); collumn collect' contains modLand collections mod included; column named url' contains download link ogg'-file generated modLand server mod file. Note ogg-files supported ProTrackR package. Use modLand.download.mod` download mod file. modLand.download.mod attempts download specified mod file return PTModule object. throw errors mod file available network problems...","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ModLand helper functions — modLand","text":"Like https://modarchive.org, modland provides access large collection module files. Compared modArchive, modLand provides limited searching features. However, require API key. functions documented provided convenience depend third party services. Note continuity services guaranteed. Use modLand.search.mod search modLand collection. Use modLand.download.mod download specific mod file S4 object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"ModLand helper functions — modLand","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ModLand helper functions — modLand","text":"","code":"if (FALSE) { ## Search for a funky tune: modland <- modLand.search.mod(\"elekfunk mod\") ## The ogg file can be downloaded (in this case to the tempdir()), ## but it is not supported by the ProTrackR package... utils::download.file(modland$url[1], tempdir()) ## Instead, use the following approach to download the module: mod <- modLand.download.mod(modland$format[1], modland$author[1], modland$title[1]) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert a PTModule object into an audio Wave object — modToWave","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"Converts PTModule object tuneR::Wave object, can played, analysed, modified saved.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"","code":"# S4 method for PTModule modToWave( mod, video = c(\"PAL\", \"NTSC\"), target.rate = 44100, target.bit = 16, stereo.separation = 1, low.pass.filter = TRUE, tracks = 1:4, mix = TRUE, ... )"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"mod object class PTModule video video mode Commodore Amiga affects timing routines playback sample rate. mode can specified argument represented character string can either value 'PAL' 'NTSC'. PAL used default. target.rate positive integer sample rate target Wave. least 2000. Default value 44100 Hz, conform CD quality. 22050 Hz also produce decent sound quality saves working memory. target.bit Number bits target Wave. numeric value either 8, 16, 24 32. Default 16, conform CD quality (quality really improve higher bit values, original samples 8 bit quality). stereo.separation numeric value 0 1. set 1 (default), stereo channels (Amiga channels 1 4 left, channels 2 3 right) completely separated. set less 1, stereo channels mixed, number gives fraction separation channels. set 0, channels completely mixed mono Wave returned. low.pass.filter logical value indicating whether low pass filters applied generating wave data. Commodore Amiga hardware audio filters. One (low pass 6 db/Oct tuned 4.9 kHz) filters audio one (low pass 12 db/Oct tuned approximately 3.3 kHz) can turned effect command E00/E01 (see also ProTrackR documentation, section effect commands). filters applied low.pass.filter argument set TRUE target.rate set values > 4.9 kHz. want simulate typical Amiga sound, turn filters save processing time. tracks Either logical numeric values indicating 4 PTTracks converted. default 4 tracks selected. mix logical value indicating whether 4 Amiga channels mixed 2 (stereo) output channels. set TRUE (default) stereo tuneR::Wave object returned. set FALSE multi-channel tuneR::WaveMC object returned. stereo.separation argument ignored latter case. ... Additional arguments passed playingtable.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"tuneR::Wave object, generated mod object returned. tuneR::WaveMC object returned mix argument set FALSE.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"PTModule object can converted tuneR::Wave object, rows PTPattern objects module need put right order. method calling playingtable. rows pattern tables right order, selected PTTrack objects module looped function routines described applied track. Commodore Amiga chip responsible audio output (Paula), audio playback samples can controlled user two ways: playback rate sample can changed specifying 'period' values (see e.g. periodToSampleRate) specifying volume linearly scaled 0 (silent) 64 (maximum). , track, correct period volume values determined based note, effect command sample information module. , PTSample objects resampled, using period values volume values determined previous step. Next audio filters applied mimic original Commodore Amiga sound. Finaly, wave data separate track mixed one (mono) two (stereo) output channels. Converting ProTracker modules wave objects can time consuming. time required convert object obviously depends machine's capacities length module also complexity module. speed conversion reduce target sample rate turn low pass filter. modern machines, time required conversion generally less playback time module. can save resulting tuneR::Wave object calling tuneR::writeWave.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"audio can mixed package frequencies much greater Commodore Amiga's audio output rate, aliasing sound occur. results high frequency audio, produced Amiga. current version package filter artefacts. problem concerned producing accurate Amiga timbre.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"","code":"if (FALSE) { data(mod.intro) wav <- modToWave(mod.intro) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":null,"dir":"Reference","previous_headings":"","what":"Get module file size — moduleSize","title":"Get module file size — moduleSize","text":"Get file size bytes PTModule object, saved original module file write.module.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get module file size — moduleSize","text":"","code":"# S4 method for PTModule moduleSize(x)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get module file size — moduleSize","text":"x PTModule object file size calculated.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get module file size — moduleSize","text":"Returns potential uncompressed module file size bytes represented number class object_size.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get module file size — moduleSize","text":"ProTracker module 1084 byte sized header containing (meta) information patterns, order audio samples. pattern holds exactly 1 Kb information length audio samples corresponds size bytes, 8 bit quality mono. function calculates file size PTModule object saved write.module.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get module file size — moduleSize","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get module file size — moduleSize","text":"","code":"## Calculate the file size for the example module 'mod.intro': data(\"mod.intro\") moduleSize(mod.intro) #> 9214 bytes ## Note that this is not the same as the size the object ## requires in R working memory: object.size(mod.intro) #> 99384 bytes ## In working memory it takes more memory to store the module, than in a ## file. This is because the S4 structure of the object consumes some ## memory. In addition, samples are of 8 bit quality, corresponding with ## a byte per sample. In the PTSample object it is stored as a ## vector of integer values. In R, integer values are 32 bit, which ## costs 4 times as much memory as the original 8 bit."},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":null,"dir":"Reference","previous_headings":"","what":"Obtain or replace the name of a PTModule or PTSample — name","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"name PTModule PTSample stored raw data. method returns name character string, can used assign new name PTModule PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"","code":"# S4 method for PTSample name(x) # S4 method for PTSample,character name(x) <- value # S4 method for PTModule name(x) # S4 method for PTModule,character name(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"x PTModule PTSample object obtain replace name. value character string used replace name PTModule PTSample x.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"name, name PTModule PTSample object character string returned. name<-, object x updated name returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"name PTModule PTSample stored vector raw data length 20 22 respectively. method provides means getting name character string safely redefine name PTModule PTSample object. , provided name (value) converted raw vector length 20 22 respectively. Long names may therefore get clipped.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"","code":"data(\"mod.intro\") ## get the name of mod.intro: name(mod.intro) #> [1] \"intro\" ## I don't like the name, let's change it: name(mod.intro) <- \"I like this name better\" #> Warning: Name is too long and will be truncated. ## Note that the provided name was too long and is truncated: name(mod.intro) #> [1] \"I like this name bet\" ## print all sample names in the module: unlist(lapply(as.list(1:31), function(x) name(PTSample(mod.intro, x)))) #> [1] \"by pepijn de vries\" \"a.k.a. freeze ii\" \"created in the late\" #> [4] \"nineties on a\" \"commodore amiga 500\" \"\" #> [7] \"it was meant to be\" \"used in a bootblock\" \"intro, but never was.\" #> [10] \"now it serves as an\" \"example in the\" \"protrackr package\" #> [13] \"i wrote for the r\" \"language for\" \"statistical computing\" #> [16] \"\" \"\" \"\" #> [19] \"\" \"\" \"\" #> [22] \"\" \"\" \"\" #> [25] \"\" \"\" \"\" #> [28] \"\" \"\" \"\" #> [31] \"\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or replace a note — note","title":"Extract or replace a note — note","text":"Obtain note period value extract replace note PTCell object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or replace a note — note","text":"","code":"# S4 method for numeric note(x) # S4 method for PTCell note(x) # S4 method for PTCell,character note(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or replace a note — note","text":"x Either (vector ) numeric value(s), representing period value. can also PTCell object. value character string representing chromatic scale note wich current note needs replaced. folling values: \"C-\", \"C#\", \"D-\", \"D#\", \"E-\", \"F-\", \"F#\", \"G-\", \"G#\", \"-\", \"#\", \"B-\", \"--\". Right-hand dashes can omitted strings. upper lower case accepted. octave yet specified PTCell x, set 1. Assigning value \"--\" remove note octave object x.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract or replace a note — note","text":"note, character string representing note returned. note<-, copy PTCell object x note replaced value returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract or replace a note — note","text":"Period values used ProTracker set playback sample rate essence determine key sound played. method can used obtain note (key) associated period value (according ProTracker period_table, assuming zero fineTune). period value period_table, note associated period closest value table returned. note can also obtained replaced PTCell object.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract or replace a note — note","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract or replace a note — note","text":"","code":"data(\"mod.intro\") ## get the note of PTCell at pattern #3, track #2, ## row #1 from mod.intro (which is note \"C-\"): note(PTCell(mod.intro, 1, 2, 3)) #> [1] \"C-\" ## replace the note of PTCell at pattern #3, track #2, ## row #1 from mod.intro with \"A-\": note(PTCell(mod.intro, 1, 2, 3)) <- \"A-\" ## get the notes associated with the period ## values 200 up to 400: note(200:400) #> [1] \"D-\" \"C#\" \"C#\" \"C#\" \"C-\" \"C#\" \"C#\" \"C#\" \"C-\" \"C-\" \"C-\" \"C-\" \"C#\" \"C-\" \"C-\" #> [16] \"C-\" \"C-\" \"C-\" \"C-\" \"C-\" \"C-\" \"B-\" \"B-\" \"C-\" \"B-\" \"B-\" \"B-\" \"B-\" \"B-\" \"B-\" #> [31] \"B-\" \"B-\" \"B-\" \"A#\" \"A#\" \"A#\" \"A#\" \"A#\" \"B-\" \"A#\" \"A#\" \"A#\" \"A#\" \"A#\" \"A#\" #> [46] \"A#\" \"A#\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" #> [61] \"A-\" \"A-\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" #> [76] \"G#\" \"G#\" \"G#\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" #> [91] \"G-\" \"G-\" \"G-\" \"G-\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" #> [106] \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" #> [121] \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" #> [136] \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"D#\" #> [151] \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" #> [166] \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" #> [181] \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"C#\" \"C#\" \"C#\" #> [196] \"C#\" \"C#\" \"C#\" \"C#\" \"C#\" \"C#\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteManipulation.html","id":null,"dir":"Reference","previous_headings":"","what":"Raise or lower notes and octaves — noteUp","title":"Raise or lower notes and octaves — noteUp","text":"Methods raise lower notes PTCell, PTTrack PTPattern objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteManipulation.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Raise or lower notes and octaves — noteUp","text":"","code":"# S4 method for PTCell noteUp(x, sample.nr = \"all\") # S4 method for PTCell noteDown(x, sample.nr = \"all\") # S4 method for PTCell octaveUp(x, sample.nr = \"all\") # S4 method for PTCell octaveDown(x, sample.nr = \"all\") # S4 method for PTTrack noteUp(x, sample.nr = \"all\") # S4 method for PTTrack noteDown(x, sample.nr = \"all\") # S4 method for PTTrack octaveUp(x, sample.nr = \"all\") # S4 method for PTTrack octaveDown(x, sample.nr = \"all\") # S4 method for PTPattern noteUp(x, sample.nr = \"all\") # S4 method for PTPattern noteDown(x, sample.nr = \"all\") # S4 method for PTPattern octaveUp(x, sample.nr = \"all\") # S4 method for PTPattern octaveDown(x, sample.nr = \"all\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteManipulation.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Raise or lower notes and octaves — noteUp","text":"x PTCell, PTTrack PTPattern object notes need lowered raised. sample.nr single positive integer value, vector positive integers, listing indices samples, notes need lowered raised. character string equal \"\" also allowed (fact default), case notes sample indices raised lowered.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteManipulation.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Raise or lower notes and octaves — noteUp","text":"Returns object class object x, notes samples selected sample.nr raised lowered. case raised lowered notes lead notes ProTracker's range, returned notes remain unchanged.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteManipulation.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Raise or lower notes and octaves — noteUp","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteManipulation.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Raise or lower notes and octaves — noteUp","text":"","code":"## raise note from C-2 to C#2: noteUp(PTCell(\"C-2 01 000\")) #> [1] \"C#2 01 000\" ## lower note from C-2 to B-1: noteDown(PTCell(\"C-2 01 000\")) #> [1] \"B-1 01 000\" ## raise note from octave 2 to octave 3: octaveUp(PTCell(\"C-2 01 000\")) #> [1] \"C-3 01 000\" ## lower note from octave 2 to octave 1: octaveDown(PTCell(\"C-2 01 000\")) #> [1] \"C-1 01 000\" data(\"mod.intro\") ## Raise the notes of all cells in pattern ## number 2 of mod.intro: noteUp(PTPattern(mod.intro, 2)) #> [,1] [,2] [,3] [,4] #> [1,] \"C#3 01 A08\" \"C#3 02 C40\" \"B-1 03 F06\" \"B-2 04 000\" #> [2,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [3,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"C#3 04 000\" #> [4,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [5,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 120\" \"D#3 04 000\" #> [6,] \"--- 00 000\" \"F#3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [7,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 220\" \"E-3 04 000\" #> [8,] \"--- 00 000\" \"G#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [9,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [10,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [11,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [12,] \"--- 00 000\" \"F#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [13,] \"G#3 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [14,] \"--- 00 A08\" \"F#3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [15,] \"F#3 01 000\" \"C#3 02 000\" \"--- 00 000\" \"C#3 04 000\" #> [16,] \"--- 00 A08\" \"E-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [17,] \"C#3 01 A08\" \"C#3 02 C40\" \"B-1 03 F06\" \"B-2 04 000\" #> [18,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 A08\" #> [19,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"B-2 04 000\" #> [20,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"--- 00 A08\" #> [21,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 120\" \"F#2 04 000\" #> [22,] \"--- 00 000\" \"B-2 04 C08\" \"--- 00 A02\" \"--- 00 A08\" #> [23,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 220\" \"F#2 04 000\" #> [24,] \"--- 00 000\" \"B-2 04 C08\" \"--- 00 A01\" \"--- 00 A08\" #> [25,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"B-2 04 000\" #> [26,] \"--- 00 000\" \"F#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [27,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [28,] \"--- 00 000\" \"F#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [29,] \"G#2 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [30,] \"--- 00 A08\" \"F#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [31,] \"A#2 01 000\" \"C#3 02 000\" \"--- 00 000\" \"--- 00 000\" #> [32,] \"--- 00 A08\" \"G#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [33,] \"F-3 01 A08\" \"C#3 02 C40\" \"D#2 03 000\" \"D#3 04 000\" #> [34,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 000\" #> [35,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 A02\" #> [36,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"F-3 04 000\" #> [37,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 126\" \"F#3 04 000\" #> [38,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [39,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 226\" \"F-3 04 000\" #> [40,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"F#3 04 000\" #> [41,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"G#3 04 000\" #> [42,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [43,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [44,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [45,] \"B-3 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [46,] \"--- 00 A08\" \"C#3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [47,] \"A#3 01 000\" \"C#3 02 000\" \"--- 00 000\" \"D#3 04 000\" #> [48,] \"--- 00 A08\" \"F-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [49,] \"D#3 01 A08\" \"C#3 02 C40\" \"C#2 03 000\" \"F-3 04 000\" #> [50,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [51,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [52,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [53,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 12B\" \"C#3 04 000\" #> [54,] \"--- 00 000\" \"G#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [55,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 22B\" \"D#3 04 000\" #> [56,] \"--- 00 000\" \"C#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [57,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"C#3 04 000\" #> [58,] \"--- 00 000\" \"G#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [59,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [60,] \"--- 00 000\" \"C#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [61,] \"A#3 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [62,] \"--- 00 A08\" \"F-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [63,] \"G#3 01 000\" \"D#2 04 C08\" \"--- 00 000\" \"--- 00 000\" #> [64,] \"--- 00 A08\" \"C#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" ## Raise only the notes of sample number 4 ## in pattern number 2 of mod.intro: noteUp(PTPattern(mod.intro, 2), 4) #> [,1] [,2] [,3] [,4] #> [1,] \"C-3 01 A08\" \"C-3 02 C40\" \"A#1 03 F06\" \"B-2 04 000\" #> [2,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [3,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"C#3 04 000\" #> [4,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [5,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 120\" \"D#3 04 000\" #> [6,] \"--- 00 000\" \"F#3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [7,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 220\" \"E-3 04 000\" #> [8,] \"--- 00 000\" \"G#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [9,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [10,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [11,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [12,] \"--- 00 000\" \"F#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [13,] \"G-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [14,] \"--- 00 A08\" \"F#3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [15,] \"F-3 01 000\" \"C-3 02 000\" \"--- 00 000\" \"C#3 04 000\" #> [16,] \"--- 00 A08\" \"E-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [17,] \"C-3 01 A08\" \"C-3 02 C40\" \"A#1 03 F06\" \"B-2 04 000\" #> [18,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A08\" #> [19,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"B-2 04 000\" #> [20,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A08\" #> [21,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 120\" \"F#2 04 000\" #> [22,] \"--- 00 000\" \"B-2 04 C08\" \"--- 00 A02\" \"--- 00 A08\" #> [23,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 220\" \"F#2 04 000\" #> [24,] \"--- 00 000\" \"B-2 04 C08\" \"--- 00 A01\" \"--- 00 A08\" #> [25,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"B-2 04 000\" #> [26,] \"--- 00 000\" \"F#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [27,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [28,] \"--- 00 000\" \"F#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [29,] \"G-2 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [30,] \"--- 00 A08\" \"F#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [31,] \"A-2 01 000\" \"C-3 02 000\" \"--- 00 000\" \"--- 00 000\" #> [32,] \"--- 00 A08\" \"G#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [33,] \"E-3 01 A08\" \"C-3 02 C40\" \"D-2 03 000\" \"D#3 04 000\" #> [34,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 000\" #> [35,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 A02\" #> [36,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"F-3 04 000\" #> [37,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 126\" \"F#3 04 000\" #> [38,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [39,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 226\" \"F-3 04 000\" #> [40,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"F#3 04 000\" #> [41,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"G#3 04 000\" #> [42,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [43,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [44,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [45,] \"B-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [46,] \"--- 00 A08\" \"C#3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [47,] \"A-3 01 000\" \"C-3 02 000\" \"--- 00 000\" \"D#3 04 000\" #> [48,] \"--- 00 A08\" \"F-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [49,] \"D-3 01 A08\" \"C-3 02 C40\" \"C-2 03 000\" \"F-3 04 000\" #> [50,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [51,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [52,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [53,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 12B\" \"C#3 04 000\" #> [54,] \"--- 00 000\" \"G#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [55,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 22B\" \"D#3 04 000\" #> [56,] \"--- 00 000\" \"C#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [57,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"C#3 04 000\" #> [58,] \"--- 00 000\" \"G#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [59,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [60,] \"--- 00 000\" \"C#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [61,] \"A-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [62,] \"--- 00 A08\" \"F-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [63,] \"G-3 01 000\" \"D#2 04 C08\" \"--- 00 000\" \"--- 00 000\" #> [64,] \"--- 00 A08\" \"C#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" ## Raise only the notes of samples number 2 and 4 ## in pattern number 2 of mod.intro: noteUp(PTPattern(mod.intro, 2), c(2, 4)) #> [,1] [,2] [,3] [,4] #> [1,] \"C-3 01 A08\" \"C#3 02 C40\" \"A#1 03 F06\" \"B-2 04 000\" #> [2,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [3,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"C#3 04 000\" #> [4,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [5,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 120\" \"D#3 04 000\" #> [6,] \"--- 00 000\" \"F#3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [7,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 220\" \"E-3 04 000\" #> [8,] \"--- 00 000\" \"G#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [9,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [10,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [11,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [12,] \"--- 00 000\" \"F#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [13,] \"G-3 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [14,] \"--- 00 A08\" \"F#3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [15,] \"F-3 01 000\" \"C#3 02 000\" \"--- 00 000\" \"C#3 04 000\" #> [16,] \"--- 00 A08\" \"E-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [17,] \"C-3 01 A08\" \"C#3 02 C40\" \"A#1 03 F06\" \"B-2 04 000\" #> [18,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 A08\" #> [19,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"B-2 04 000\" #> [20,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"--- 00 A08\" #> [21,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 120\" \"F#2 04 000\" #> [22,] \"--- 00 000\" \"B-2 04 C08\" \"--- 00 A02\" \"--- 00 A08\" #> [23,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 220\" \"F#2 04 000\" #> [24,] \"--- 00 000\" \"B-2 04 C08\" \"--- 00 A01\" \"--- 00 A08\" #> [25,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"B-2 04 000\" #> [26,] \"--- 00 000\" \"F#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [27,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [28,] \"--- 00 000\" \"F#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [29,] \"G-2 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [30,] \"--- 00 A08\" \"F#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [31,] \"A-2 01 000\" \"C#3 02 000\" \"--- 00 000\" \"--- 00 000\" #> [32,] \"--- 00 A08\" \"G#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [33,] \"E-3 01 A08\" \"C#3 02 C40\" \"D-2 03 000\" \"D#3 04 000\" #> [34,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 000\" #> [35,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 A02\" #> [36,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"F-3 04 000\" #> [37,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 126\" \"F#3 04 000\" #> [38,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [39,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 226\" \"F-3 04 000\" #> [40,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"F#3 04 000\" #> [41,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"G#3 04 000\" #> [42,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [43,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [44,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [45,] \"B-3 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [46,] \"--- 00 A08\" \"C#3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [47,] \"A-3 01 000\" \"C#3 02 000\" \"--- 00 000\" \"D#3 04 000\" #> [48,] \"--- 00 A08\" \"F-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [49,] \"D-3 01 A08\" \"C#3 02 C40\" \"C-2 03 000\" \"F-3 04 000\" #> [50,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [51,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [52,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [53,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 12B\" \"C#3 04 000\" #> [54,] \"--- 00 000\" \"G#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [55,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 22B\" \"D#3 04 000\" #> [56,] \"--- 00 000\" \"C#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [57,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"C#3 04 000\" #> [58,] \"--- 00 000\" \"G#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [59,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [60,] \"--- 00 000\" \"C#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [61,] \"A-3 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [62,] \"--- 00 A08\" \"F-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [63,] \"G-3 01 000\" \"D#2 04 C08\" \"--- 00 000\" \"--- 00 000\" #> [64,] \"--- 00 A08\" \"C#2 04 C08\" \"--- 00 000\" \"--- 00 A01\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract period value for a specific note — noteToPeriod","title":"Extract period value for a specific note — noteToPeriod","text":"Extracts ProTracker period value specific note.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract period value for a specific note — noteToPeriod","text":"","code":"noteToPeriod(note = \"C-3\", finetune = 0)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract period value for a specific note — noteToPeriod","text":"note character string representing note octave ProTracker period value needs determined finetune integer value ranging -8 7. value used tune audio sample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract period value for a specific note — noteToPeriod","text":"Returns numeric ProTracker period value corresponding note, octave fineTune(). Returns 0 note found table.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract period value for a specific note — noteToPeriod","text":"ProTracker uses period_table link period values certain octaves notes. function serves look corresponding period values specific notes octaves.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract period value for a specific note — noteToPeriod","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract period value for a specific note — noteToPeriod","text":"","code":"## Determine the period value corresponding with note 'A-3': noteToPeriod(\"A-3\") #> [1] 127 ## get the period values for notes 'A-3' and 'A#3' with finetune at -1: noteToPeriod(c(\"A-3\", \"A#3\"), -1) #> [1] 128 121 ## get the period values for note 'A-3' with finetune at 0 and 1: noteToPeriod(\"A-3\", 0:1) #> [1] 127 126"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the high or low nybble of a raw value — nybble","title":"Get the high or low nybble of a raw value — nybble","text":"Get high low nybble raw value return integer value [0,15].","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the high or low nybble of a raw value — nybble","text":"","code":"nybble(raw_dat, which = c(\"low\", \"high\")) loNybble(raw_dat) hiNybble(raw_dat)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the high or low nybble of a raw value — nybble","text":"raw_dat vector class raw high low nybble value needs extracted. character string indicating whether high low nybble returnd. either \"low\" (default) \"high\".","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the high or low nybble of a raw value — nybble","text":"vector length raw_dat holding integer values.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the high or low nybble of a raw value — nybble","text":"raw basically byte, composed 8 bits (zeros ones). nybble 4 bit value. Hence, raw value (byte) composed two nybbles. leftmost nybble raw value refered high nybble, rightmost nybble referred low nybble. functions return either high low nybbles raw data integer values [0,15]. ProTracker stores information nybbles function can used retrieve info.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the high or low nybble of a raw value — nybble","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the high or low nybble of a raw value — nybble","text":"","code":"## this will return 0x0f: hiNybble(as.raw(0xf3)) #> [1] 15 ## which is the same as: nybble(as.raw(0xf3), \"high\") #> [1] 15 ## this will return 0x03: loNybble(as.raw(0xf3)) #> [1] 3 ## which is the same as: nybble(as.raw(0xf3), \"low\") #> [1] 3"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":null,"dir":"Reference","previous_headings":"","what":"Get signed integer values from nybbles — nybbleToSignedInt","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"Get signed integer values one nybble.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"","code":"nybbleToSignedInt(raw_dat, which = c(\"low\", \"high\"))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"raw_dat raw data (either single value vector), nybble extracted converted. character string indicating whether \"low\" (default) \"high\" nybble raw_dat needs converted signed integer.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"Returns integer values length raw_dat, ranging -8 7.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"Nybbles 4 bit values, byte (8 bits) holds two nybbles. high nybble (left-hand side byte) low nybble (right-hand side byte). function extracts nybble raw data converts signed integer value ranging -8 7.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"","code":"## generate some raw data: rdat <- as.raw(255*runif(100)) ## get signed integers of low nybbles: sintl <- nybbleToSignedInt(rdat) ## get signed integers of high nybbles: sinth <- nybbleToSignedInt(rdat, \"high\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or replace an octave — octave","title":"Extract or replace an octave — octave","text":"Obtain octave number period value extract replace note PTCell object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or replace an octave — octave","text":"","code":"# S4 method for numeric octave(x) # S4 method for PTCell octave(x) # S4 method for PTCell,numeric octave(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or replace an octave — octave","text":"x Either (vector ) numeric value(s), representing period value. can also PTCell object. value numeric value representing octave number object x needs replaced. 0, 1 3 valid octave numbers. Use zero disable note octave object x. Note octave can set PTCells note already defined.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract or replace an octave — octave","text":"octave, numeric value representing octave number returned. octave<-, copy PTCell object x octave number replaced value returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract or replace an octave — octave","text":"Period values used ProTracker set playback sample rate essence determine key octave sound played. method can used obtain octave number associated period value (according ProTracker period_table, assuming zero fineTune). period value period_table, octave number associated period closest value table returned. octave number can also obtained replaced PTCell object.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract or replace an octave — octave","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract or replace an octave — octave","text":"","code":"data(\"mod.intro\") ## get the octave number of PTCell at pattern #3, track #2, ## row #1 from mod.intro (which is number 3): octave(PTCell(mod.intro, 1, 2, 3)) #> [1] 3 ## replace the octave number of PTCell at pattern #3, track #2, ## row #1 from mod.intro with 2: octave(PTCell(mod.intro, 1, 2, 3)) <- 2 ## get the octave numbers associated with the period ## values 200 up to 400: octave(200:400) #> [1] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 #> [38] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 #> [75] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 #> [112] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 #> [149] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 #> [186] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":null,"dir":"Reference","previous_headings":"","what":"Paste a block of PTCell data into a PTPattern — pasteBlock","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"Paste block PTCell data PTPattern specified location.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"","code":"# S4 method for PTPattern,matrix,numeric,numeric pasteBlock(pattern, block, row.start, track.start)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"pattern PTPattern object block needs pasted. block PTBlock holding PTCell data needs pasted pattern. row.start positive integer value (ranging 1 64) indicating starting position (row) pattern paste block . track.start positive integer value (ranging 1 4) indicating starting position (track) pattern paste block .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"Returns copy pattern block pasted.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"PTBlock formal S4 class. matrix element holds list single PTCell object. explained PTBlock method documentation, allows flexible approach manipulating PTCell objects. pasteBlock method allows paste PTBlock back PTPattern. PTBlock pasted specified location span number tracks rows included PTBlock. PTCells pattern replaced block. Elements bock range pattern included pattern.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"","code":"data(\"mod.intro\") block <- PTBlock(PTPattern(mod.intro, 1), 1:16, 1) ## Do some operations using lapply (the effect ## code is set to \"C10\"): block <- matrix(lapply(block, function(x) {(effect(x) <- \"C10\"); x}), nrow(block), ncol(block), byrow = TRUE) ## Paste block back on the same position: PTPattern(mod.intro, 1) <- pasteBlock(PTPattern(mod.intro, 1), block, 1, 1) ## You can also paste the block anywhere you like: PTPattern(mod.intro, 1) <- pasteBlock(PTPattern(mod.intro, 1), block, 49, 2)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the number of PTPattern tables in a PTModule — patternLength","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"Get number PTPattern tables PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"","code":"# S4 method for PTModule patternLength(x)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"x PTModule object number PTPattern tables need returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"Returns numeric value representing number PTPattern tables object x.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"number PTPattern tables PTModule object range 1 either 64 100. maximum depends trackerFlag PTModule object.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"","code":"data(\"mod.intro\") ## Get the number of pattern tables in mod.intro: patternLength(mod.intro) #> [1] 4"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the pattern order table — patternOrder","title":"Get the pattern order table — patternOrder","text":"pattern order table vector numeric indices PTPattern tables, determines order patterns need played. method returns vector.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the pattern order table — patternOrder","text":"","code":"# S4 method for PTModule patternOrder(x, full = FALSE) # S4 method for PTModule,ANY,numeric patternOrder(x, full = FALSE) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the pattern order table — patternOrder","text":"x PTModule object pattern order table needs returned modified. full logical value indicating whether full (TRUE, default), visible (FALSE) part pattern order table returned. argument also affect new pattern order tables assigned (see value). value numeric vector (maximum length: 128) holding PTPattern indices minus 1 new pattern order table. full = TRUE, vector padded zeros length 128, patternOrderLength set length value. full = FALSE, value repplace part order table length value. remainder table changed. patternOrderLength also modified case.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the pattern order table — patternOrder","text":"patternOrder, vector numeric PTPattern indices returned. patternOrder<-, updated version object x returned, pattern order table modified based value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the pattern order table — patternOrder","text":"actual length vector containing pattern order 128 per ProTracker standards. part vector `visible' used determine order pattern tables played. method can used return either visible full (128) part table. can also used assign new patter order table. Note PTPattern indices start 0, per ProTracker standards, whereas R start indices 1. Hence, add 1 indices obtained patternOrder, order extract correct PTPattern PTModule. maximum index plus 1 full pattern order table equal number pattern tables (see patternLength) PTModule. assign new pattern order, lower maximum, PTPattern objects get lost (see also examples)!","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Get the pattern order table — patternOrder","text":"maximum number PTPatterns exceed either 64 100 (depending trackerFlag). means values order table also exceed values minus 1.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the pattern order table — patternOrder","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the pattern order table — patternOrder","text":"","code":"data(\"mod.intro\") ## get the visible part of the patternOrder table: patternOrder(mod.intro) #> [1] 0 0 1 1 2 2 3 3 2 ## get the full patternOrder table: patternOrder(mod.intro, full = TRUE) #> [1] 0 0 1 1 2 2 3 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [112] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ## add 1 to get extract the right PTPattern from ## mod.intro: first.pattern.played <- (PTPattern(mod.intro, patternOrder(mod.intro)[1] + 1)) ## set a different playing order: patternOrder(mod.intro) <- c(0:3, 0:3, 0:3) ## The assignment above uses a value that ## longer than the patternOrderLength. ## This means that a part ends up in the ## 'invisible' part of the order table: patternOrder(mod.intro) #> [1] 0 1 2 3 0 1 2 3 0 patternOrder(mod.intro, full = TRUE) #> [1] 0 1 2 3 0 1 2 3 0 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [112] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ## Let's do the same assignment, but update ## the visible part of the table as well: patternOrder(mod.intro, full = TRUE) <- c(0:3, 0:3, 0:3) ## note that the maximum of the order table plus 1 ## equals the patternLength of mod.intro (always the case ## for a valid PTModule object): max(patternOrder(mod.intro, full = TRUE) + 1) == patternLength(mod.intro) #> [1] TRUE ## Let's do something dangerous. If the replacement ## indices do not hold a maximum value that equals ## the patternLength minus 1, PTPatterns will get lost, ## in order to maintain the validity of mod.intro: patternOrder(mod.intro) <- rep(0, 12) #> Warning: Replacement pattern order contain less patterns than the original list. These patterns are now lost!"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the length of the pattern order table — patternOrderLength","title":"Get the length of the pattern order table — patternOrderLength","text":"pattern order table vector numeric indices PTPattern tables, determines order patterns need played. method returns visible length vector.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the length of the pattern order table — patternOrderLength","text":"","code":"# S4 method for PTModule patternOrderLength(x) # S4 method for PTModule,numeric patternOrderLength(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the length of the pattern order table — patternOrderLength","text":"x PTModule object length visible part pattern order table returned. value numeric value used set visible length pattern order table.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the length of the pattern order table — patternOrderLength","text":"patternOrderLength visible length pattern order table PTModule x returned numeric value, ranging 1 128. patternOrderLength<- updated version object x returned, visible length pattern order table set value. Note change pattern order table , part `visible'.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the length of the pattern order table — patternOrderLength","text":"actual length vector containing pattern order 128 per ProTracker standards. part vector `visible' used determine order pattern tables played. length returned method length visible part pattern order table. length visible part can also set method.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the length of the pattern order table — patternOrderLength","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the length of the pattern order table — patternOrderLength","text":"","code":"data(\"mod.intro\") ## get the length of the pattern order table: patternOrderLength(mod.intro) #> [1] 9 ## set the length of the pattern order table to 1: patternOrderLength(mod.intro) <- 1 ## note that the pattern order table remained intact: patternOrder(mod.intro, full = TRUE) #> [1] 0 0 1 1 2 2 3 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [112] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/paula_clock.html","id":null,"dir":"Reference","previous_headings":"","what":"Paula clock table — paula_clock","title":"Paula clock table — paula_clock","text":"Table provides audio output frequencies Commodore Amiga original chipset.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/paula_clock.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Paula clock table — paula_clock","text":"data.frame two columns: 'frequency' numeric value representing Paula's output rate Hz. 'video' character string representing two video modes.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/paula_clock.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Paula clock table — paula_clock","text":"Paula one custom chips original Commodore Amiga. chip dedicated (amongst tasks) controlling audio playback. chip's output rate depended video mode used: either 'PAL' 'NTSC'. table provides output rate video modes can used calculating sample rates.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/paula_clock.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Paula clock table — paula_clock","text":"https://en.wikipedia.org/wiki/Original_Chip_Set#Paula","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/paula_clock.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Paula clock table — paula_clock","text":"","code":"data(\"paula_clock\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the note and octave from period table — periodToChar","title":"Get the note and octave from period table — periodToChar","text":"functions return note octave closest provided period value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the note and octave from period table — periodToChar","text":"","code":"periodToChar(period)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the note and octave from period table — periodToChar","text":"period integer value period value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the note and octave from period table — periodToChar","text":"periodToChar returns character representing combination octave note closest period ProTracker period table.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the note and octave from period table — periodToChar","text":"ProTracker uses period_table link period values certain octaves notes. function serves look corresponding notes octaves specific period values.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the note and octave from period table — periodToChar","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the note and octave from period table — periodToChar","text":"","code":"## Note C# in octave 3 is closest to a period of 200 in the table: periodToChar(200) #> [1] \"D-3\" ## try with a range of period values: periodToChar(200:400) #> [1] \"D-3\" \"C#3\" \"C#3\" \"C#3\" \"C-3\" \"C#3\" \"C#3\" \"C#3\" \"C-3\" \"C-3\" \"C-3\" \"C-3\" #> [13] \"C#3\" \"C-3\" \"C-3\" \"C-3\" \"C-3\" \"C-3\" \"C-3\" \"C-3\" \"C-2\" \"B-2\" \"B-2\" \"C-3\" #> [25] \"B-2\" \"B-2\" \"B-2\" \"B-2\" \"B-2\" \"B-2\" \"B-2\" \"B-2\" \"B-2\" \"A#2\" \"A#2\" \"A#2\" #> [37] \"A#2\" \"A#2\" \"B-2\" \"A#2\" \"A#2\" \"A#2\" \"A#2\" \"A#2\" \"A#2\" \"A#2\" \"A#2\" \"A-2\" #> [49] \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" #> [61] \"A-2\" \"A-2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" #> [73] \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" #> [85] \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"F#2\" \"F#2\" #> [97] \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" #> [109] \"F#2\" \"F#2\" \"F#2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" #> [121] \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"E-2\" \"E-2\" #> [133] \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" #> [145] \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" #> [157] \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" #> [169] \"D#2\" \"D#2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" #> [181] \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" #> [193] \"C#2\" \"C#2\" \"C#2\" \"C#2\" \"C#2\" \"C#2\" \"C#2\" \"C#2\" \"C#2\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/period_table.html","id":null,"dir":"Reference","previous_headings":"","what":"ProTracker Period Table — period_table","title":"ProTracker Period Table — period_table","text":"Table ProTracker period values corresponding, octave, tone fine tune","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/period_table.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"ProTracker Period Table — period_table","text":"data.frame fourteen columns: column named 'octave': integer value [1,3] column named 'finetune': integer value [-8, 7] used tune sample columns named 'C-' `B-': represent twelve (semi)tones. values columns period values corresponding tone, octave finetune.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/period_table.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ProTracker Period Table — period_table","text":"Table ProTracker period values used calculating playback sampling rate samples specific tones. values actually used ProTracker, calculated directly due undocumented rounding inconsistencies. lookup table therefore requirement.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/period_table.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ProTracker Period Table — period_table","text":"","code":"data(\"period_table\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":null,"dir":"Reference","previous_headings":"","what":"Play PTModule objects — playMod","title":"Play PTModule objects — playMod","text":"Converts PTModule objects audio tuneR::Waves, plays .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Play PTModule objects — playMod","text":"","code":"# S4 method for PTModule playMod(mod, wait = T, ...)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Play PTModule objects — playMod","text":"mod PTModule object played. wait logical value. set TRUE playing routine wait executing code playing finished. set FALSE, subsequent R code executed playing. ... Arguments passed modToWave.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Play PTModule objects — playMod","text":"tuneR::Wave object, generated mod object, returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Play PTModule objects — playMod","text":"Unfortunately, feasible create routine can directly interpret PTModule objects play simultaneously. Instead, audio first needs rendered can played. method therefore first calls modToWave playWave. Rendering may take time requires balance speed, quality accuracy. See documentation modToWave method control aspects.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Play PTModule objects — playMod","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Play PTModule objects — playMod","text":"","code":"if (FALSE) { data(\"mod.intro\") ## play the module and capture the audio Wave wav <- playMod(mod.intro) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":null,"dir":"Reference","previous_headings":"","what":"Play audio samples — playSample","title":"Play audio samples — playSample","text":"Method play PTSamples samples PTModule objects audio.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Play audio samples — playSample","text":"","code":"# S4 method for PTSample playSample(x, silence = 0, wait = T, note = \"C-3\", loop = 1, ...) # S4 method for PTModule playSample(x, silence = 0, wait = T, note = \"C-3\", loop = 1, ...)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Play audio samples — playSample","text":"x Either PTSample PTModule object. latter case, samples module played order. silence Especially short samples, audio::play routine can bit buggy: playing audible noise, ticks parts samples end sample. adding silence sample, problem evaded. Use argument specify duration silence seconds. , x PTModule object, silence also inserted samples. wait logical value. set TRUE playing routine wait executing code playing finished. set FALSE, subsequent R code executed playing. note character string specifying note used calculating playback sample rate (using noteToSampleRate). start note (ranging ' G') optionally followed hash sign (#') note sharp (dash (-') ) finally octave number (ranging 1 3). valid notation instance 'F#3'. fineTune specified sample also used argument calculating playback rate. custom finetune can also passed argument noteToSampleRate. loop positive numeric indicating duration looped sample seconds. looped sample played least , even specified duration less sum loopStart position loopLength. See loopStart loopLength details set (disable) loop. ... arguments passed noteToSampleRate. Can used change video mode, finetune argument call method.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Play audio samples — playSample","text":"Returns nothing plays sample(s) audio.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Play audio samples — playSample","text":"method plays PTSamples samples PTModule objects, using audio::play method audio package. Default fineTune volume specified PTSample applied playing sample.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Play audio samples — playSample","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Play audio samples — playSample","text":"","code":"if (FALSE) { data(\"mod.intro\") ## play all samples in mod.intro: playSample(mod.intro, 0.2, loop = 0.5) ## play a chromatic scale using sample number 3: for (note in c(\"A-2\", \"A#2\", \"B-2\", \"C-3\", \"C#3\", \"D-3\", \"D#3\", \"E-3\", \"F-3\", \"F#3\", \"G-3\", \"G#3\")) { playSample(PTSample(mod.intro, 3), note = note, silence = 0.05, loop = 0.4) } ## play the sample at a rate based on a specific ## video mode and finetune: playSample(PTSample(mod.intro, 3), video = \"NTSC\", finetune = -5) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Play Wave objects — playWave","title":"Play Wave objects — playWave","text":"Use command line audio::play function audio package play tuneR::Wave objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Play Wave objects — playWave","text":"","code":"# S4 method for Wave playWave(wave, wait = T) # S4 method for WaveMC playWave(wave, wait = T)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Play Wave objects — playWave","text":"wave object class tuneR::Wave tuneR::WaveMC. Note playing routine implemented can play stereo waves. Multi-channel waves therefore converted stereo playing. wait logical value. set TRUE playing routine wait executing code playing finished. set FALSE, subsequent R code executed playing.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Play Wave objects — playWave","text":"Returns audio::$.audioInstance.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Play Wave objects — playWave","text":"tuneR package play-function relies external players, method provided convenient approach play samples R console, using audio package. Wave objects played rate specified object. course can also play Wave objects tuneR implementation tuneR::play, calling tuneR::play(wave).","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Play Wave objects — playWave","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Play Wave objects — playWave","text":"","code":"if (FALSE) { data(mod.intro) ## PTSample objects can also be ## played with this function as they ## are a child of the Wave object: playWave(PTSample(mod.intro, 2)) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate a table for playing a PTModule object — playingtable","title":"Generate a table for playing a PTModule object — playingtable","text":"method generates table (data.frame) information pattern tables put right order comprehensive format.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate a table for playing a PTModule object — playingtable","text":"","code":"# S4 method for PTModule playingtable( mod, starting.position = 1, max.duration = 2 * 60, speed = 6, tempo = 125, video = c(\"PAL\", \"NTSC\"), play.once = T, verbose = T )"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate a table for playing a PTModule object — playingtable","text":"mod object class PTModule. starting.position numeric starting position index. Determines patternOrder table module start generating playingtable. max.duration numeric value indicating maximum length seconds pattern information returned. default set 120 seconds (2 minutes). modules can long, contain infinite loops position jumps, maximum duration required break routine generating table. speed Default speed use specified pattern data. See ProTrackR documentation info speed' tempo'. tempo Default tempo use specified pattern data. See ProTrackR documentation info speed' tempo'. video video mode Commodore Amiga affects timing routines. mode can specified argument represented character string can either value 'PAL' 'NTSC'. PAL used default. play.logical value. set TRUE, routine stop adding data table starting position (starting.position) reach . Warning: may work correctly last pattern contains pattern break. overruled maximum.duration reached end song. verbose logical value. Suppresses progress report printed base::sink set FALSE. default value TRUE.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generate a table for playing a PTModule object — playingtable","text":"Returns data.frame pattern rows put right order. Information contained returned table described 'Details' section","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generate a table for playing a PTModule object — playingtable","text":"method generates table (data.frame) information pattern tables (PTPattern) put right order, taking account pattern breaks, position jumps pattern loops (see also ProTrackR documentation, section effect commands). information put comprehensive format data.frame, following columns: row Row number index original PTPattern object. filter logical value indicating whether Amiga hardware audio filter either turned using effect command E00/E01 (see also ProTrackR documentation, section effect commands). speed Number 'ticks' per row set Fxy effect commands module. tempo tempo specified Fxy commands module. delay delay applied row specified EEx effect command module. effect.track1..4 effect code (raw) specified 4 tracks module. effect.mag.track1..4 effect magnitude (raw) specified 4 tracks module. sample.nr.track1..4 sample index number (numeric) specified 4 tracks module. note.track1..4 note (factor) specified four tracks module. position positions index number (numeric) patternOrder table module. duration Playback duration corresponding row seconds. cum_duration Cumulative playback duration corresponding row seconds.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Generate a table for playing a PTModule object — playingtable","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate a table for playing a PTModule object — playingtable","text":"","code":"if (FALSE) { data(mod.intro) pt <- playingtable(mod.intro) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot a PTModule object — plot","title":"Plot a PTModule object — plot","text":"Plots waveforms (non-empty) PTSamples PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot a PTModule object — plot","text":"","code":"# S4 method for PTModule,missing plot(x, y, plot.loop.positions = T, ...)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot a PTModule object — plot","text":"x PTModule object waveforms PTSamples need plotted. y missing. Argument generic plotting method, use. plot.loop.positions logical value indicating whether loop positions need visualised. looped samples, starting ending positions marked vertical green red line, respectively. ... Arguments passed lattice::xyplot.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot a PTModule object — plot","text":"Returns object class trellis. See documentation lattice::xyplot details.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot a PTModule object — plot","text":"plotting routine based lattice::xyplot lattice-package. Plots (non-empty) waveform separate panel. Use arguments lattice::xyplot function customise plot.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Plot a PTModule object — plot","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot a PTModule object — plot","text":"","code":"## get the example PTModule provided with the ProTrackR package data(\"mod.intro\") ## The most basic way to plot the module samples: plot(mod.intro) #> Error in as.double(y): cannot coerce type 'S4' to vector of type 'double' ## By using xyplot arguments, we can make it look nicer: plot(mod.intro, type = \"l\", layout = c(1,4), scales = list(x = list(relation = \"free\"))) #> Error in as.double(y): cannot coerce type 'S4' to vector of type 'double'"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/print.html","id":null,"dir":"Reference","previous_headings":"","what":"Print ProTrackR objects — print","title":"Print ProTrackR objects — print","text":"method print ProTrackR S4 class objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/print.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Print ProTrackR objects — print","text":"","code":"# S4 method for PTCell print(x, ...) # S4 method for PTTrack print(x, ...) # S4 method for PTPattern print(x, ...) # S4 method for PTSample print(x, ...) # S4 method for PTModule print(x, ...)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/print.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Print ProTrackR objects — print","text":"x Either PTModule, PTPattern, PTTrack, PTCell PTSample object. ... arguments passed methods","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/print.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Print ProTrackR objects — print","text":"Depending class x, returns either nothing (NULL) character representation object x.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/print.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Print ProTrackR objects — print","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/print.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Print ProTrackR objects — print","text":"","code":"data(\"mod.intro\") print(mod.intro) #> #> PTModule Object: #> \tModule name:\t\t\tintro\t\t\t #> \tNumber of samples:\t\t4\t\t #> \tNumber of patterns:\t\t4\t\t #> \tPattern order table length:\t9\t print(PTPattern(mod.intro, 1)) #> [,1] [,2] [,3] [,4] #> [1,] \"C-3 01 A08\" \"C-3 02 C40\" \"A#1 03 F06\" \"A#2 04 000\" #> [2,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [3,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"C-3 04 000\" #> [4,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [5,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 120\" \"D-3 04 000\" #> [6,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [7,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 220\" \"D#3 04 000\" #> [8,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [9,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [10,] \"--- 00 000\" \"A#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [11,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [12,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [13,] \"G-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"D-3 04 000\" #> [14,] \"--- 00 A08\" \"F-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [15,] \"F-3 01 000\" \"C-3 02 000\" \"--- 00 000\" \"C-3 04 000\" #> [16,] \"--- 00 A08\" \"A#2 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [17,] \"C-3 01 A08\" \"C-3 02 C40\" \"A#1 03 F06\" \"A#2 04 000\" #> [18,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [19,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D-3 04 000\" #> [20,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [21,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 120\" \"F-2 04 000\" #> [22,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [23,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 220\" \"G-2 04 000\" #> [24,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [25,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"A#2 04 000\" #> [26,] \"--- 00 000\" \"A#3 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [27,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [28,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [29,] \"G-2 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [30,] \"--- 00 A08\" \"F-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [31,] \"A-2 01 000\" \"C-3 02 000\" \"--- 00 000\" \"--- 00 000\" #> [32,] \"--- 00 A08\" \"G-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [33,] \"E-3 01 A08\" \"C-3 02 C40\" \"D-2 03 000\" \"D-3 04 000\" #> [34,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [35,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [36,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [37,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 126\" \"F#3 04 000\" #> [38,] \"--- 00 000\" \"D-3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [39,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 226\" \"G-3 04 000\" #> [40,] \"--- 00 000\" \"E-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [41,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"A-3 04 000\" #> [42,] \"--- 00 000\" \"D-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [43,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"G-3 04 000\" #> [44,] \"--- 00 000\" \"D-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [45,] \"B-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [46,] \"--- 00 A08\" \"D-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [47,] \"A-3 01 000\" \"C-3 02 000\" \"--- 00 000\" \"E-3 04 000\" #> [48,] \"--- 00 A08\" \"E-2 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [49,] \"D-3 01 A08\" \"C-3 02 C40\" \"C-2 03 000\" \"C-3 04 000\" #> [50,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [51,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D-3 04 000\" #> [52,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [53,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 12B\" \"E-3 04 000\" #> [54,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [55,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 22B\" \"F-3 04 000\" #> [56,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [57,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"G-3 04 000\" #> [58,] \"--- 00 000\" \"E-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [59,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [60,] \"--- 00 000\" \"C-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [61,] \"A-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [62,] \"--- 00 A08\" \"G-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [63,] \"G-3 01 000\" \"F-3 04 C08\" \"--- 00 000\" \"D-3 04 000\" #> [64,] \"--- 00 A08\" \"C-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" print(PTTrack(mod.intro, 1, 1)) #> [1] \"C-3 01 A08\" \"--- 01 A08\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" #> [6] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" #> [11] \"--- 01 A08\" \"--- 00 000\" \"G-3 01 000\" \"--- 00 A08\" \"F-3 01 000\" #> [16] \"--- 00 A08\" \"C-3 01 A08\" \"--- 01 A08\" \"--- 01 A08\" \"--- 00 000\" #> [21] \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" #> [26] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"G-2 01 000\" \"--- 00 A08\" #> [31] \"A-2 01 000\" \"--- 00 A08\" \"E-3 01 A08\" \"--- 01 A08\" \"--- 01 A08\" #> [36] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" #> [41] \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"B-3 01 000\" #> [46] \"--- 00 A08\" \"A-3 01 000\" \"--- 00 A08\" \"D-3 01 A08\" \"--- 01 A08\" #> [51] \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" #> [56] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" #> [61] \"A-3 01 000\" \"--- 00 A08\" \"G-3 01 000\" \"--- 00 A08\" print(PTCell (mod.intro, 1, 1, 1)) #> [1] \"C-3 01 A08\" print(PTSample (mod.intro, 1)) #> #> PTSample Object: #> \tSample name:\t\t\tby pepijn de vries\t\t\t #> \tSample length (samples):\t1040\t #> \tSample length (seconds):\t0.0627478400121797\t #> \tSample volume (0-64):\t\t64\t\t #> \tLoop start position:\t\t762\t\t #> \tLoop length:\t\t\t276\t\t\t #> \tFinetune:\t\t\t0"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the vibrato table used by ProTracker — proTrackerVibrato","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"Gets vibrato table used ProTracker vibrato effects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"","code":"proTrackerVibrato(x)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"x integer representing table index ranging 0 31. Values outside range can used, produce results valid context ProTracker.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"Returns integer sine value ranging 0 255 valid table index (x) provided. otherwise return sine value ranging -255 255.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"old Commodore Amiga computer built-mathematical functions, many programs machine used data tables. ProTracker vibrato effects sine function used. sine function called, sine values stored table. function returns integer sine values (ranging 0 255) function table index (ranging 0 31).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"","code":"## this will return the table as used in ProTracker proTrackerVibrato(0:31) #> [1] 0 24 49 74 97 120 141 161 180 197 212 224 235 244 250 253 255 253 250 #> [20] 244 235 224 212 197 180 161 141 120 97 74 49 24"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert raw vectors into a character string — rawToCharNull","title":"Convert raw vectors into a character string — rawToCharNull","text":"function converts raw data character string.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert raw vectors into a character string — rawToCharNull","text":"","code":"rawToCharNull(raw_dat)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert raw vectors into a character string — rawToCharNull","text":"raw_dat vector class raw converted character.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert raw vectors into a character string — rawToCharNull","text":"character string based raw data","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert raw vectors into a character string — rawToCharNull","text":"function rawToChar() fail vectors raw data embedded 0x00 data. function fail embedded 0x00 values. Instead, replace embedded 0x00 data white spaces. Note leading trailing 0x00 data omitted result.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert raw vectors into a character string — rawToCharNull","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert raw vectors into a character string — rawToCharNull","text":"","code":"## generate some raw data with an embedded 0x00: some.raw.data <- as.raw(c(0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x00, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21)) if (FALSE) { ## this will fail: try(rawToChar(some.raw.data)) } ## this will succeed: rawToCharNull(some.raw.data) #> [1] \"hello world!\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert a vector of raw data into a PTModule object — rawToPTModule","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"method treats vector raw data file, converts PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"","code":"# S4 method for raw rawToPTModule(x, ignore.validity = F)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"x vector raw data, conform ProTracker file specs. ignore.validity logical value. set TRUE method attempt decode raw data (x), even invalid. set FALSE (default) validity checked error thrown invalidity occurs.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"returns PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"Data read vector raw data file converted PTModule object. method can useful module files stored virtual Amiga Disk Files (adf), can read raw data, using AmigaFFH package. Use .raw achieve inverse.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"","code":"if (FALSE) { ## convert the example mod into raw data data(\"mod.intro\") mod.raw <- as.raw(mod.intro) ## restore it as a PTModule-class object mod.restored <- rawToPTModule(mod.raw) ## In this case the result is identical to the original: identical(mod.restored, mod.intro) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert a raw vector into signed integers (short) — rawToSignedInt","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"function converts vector raw data signed integer values.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"","code":"rawToSignedInt(raw_dat)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"raw_dat vector raw data.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"vector length raw_dat, holding signed integer values.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"function converts vector raw data signed integer values [-128,127]. convert unsigned integers raw data use .raw(). inverse function see signedIntToRaw().","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"","code":"## generate some raw data: some.raw.data <- as.raw(c(0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x90)) ## convert the raw data into a vector of signed intgers: rawToSignedInt(some.raw.data) #> [1] 104 101 108 108 111 -112"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"function converts raw data unsigned integer","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"","code":"rawToUnsignedInt(raw_dat)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"raw_dat vector class raw converted unsigned integer","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"single unsigned integer value based provided raw data","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"function converts vector raw data single unsigned integer. conversion raw data vector unsigned integers \\[0,255\\] use .integer(). inverse function see unsignedIntToRaw().","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"","code":"## generate some raw data: some.raw.data <- as.raw(c(0x01, 0x1e, 0x3f)) ## convert raw data into an unsigned integer: rawToUnsignedInt(some.raw.data) #> [1] 73279 ## note the difference with as.integer(some.raw.data) #> [1] 1 30 63"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":null,"dir":"Reference","previous_headings":"","what":"Read a ProTracker module file — read.module","title":"Read a ProTracker module file — read.module","text":"Reads ProTracker module file coerces PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read a ProTracker module file — read.module","text":"","code":"# S4 method for character,logical read.module(file, ignore.validity = F) # S4 method for ANY,missing read.module(file, ignore.validity = F) # S4 method for ANY,missing read.module(file, ignore.validity = F) # S4 method for ANY,logical read.module(file, ignore.validity = F)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read a ProTracker module file — read.module","text":"file either filename file connection, allows reading binary data (see e.g., base::file base::url). ignore.validity logical value indicating whether validity PTModule ignored. set FALSE (default), validity read object checked; error thrown object valid. argument set TRUE, validity object checked potentially invalid object returned. validity check PTModule objects strict, can useful ignore check. way can try read broken module file, try fix becomes valid save (write.module) .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read a ProTracker module file — read.module","text":"Returns PTModule object read provided ProTracker file","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Read a ProTracker module file — read.module","text":"routine read ProTracker modules based referenced version ProTracker 2.3A. means routine may able read files produced later ProTracker versions, earlier versions back-compatibility issues. far successfully tested method modules composed ProTracker version 2.3A (believe one popular versions ProTracker back days). also able read .mod files Mod Archive.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Read a ProTracker module file — read.module","text":"https://wiki.multimedia.cx/index.php?title=Protracker_Module http://coppershade.org/articles/!/Topics/Protracker_File_Format/","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Read a ProTracker module file — read.module","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Read a ProTracker module file — read.module","text":"","code":"if (FALSE) { ## first create an module file from example data: data(\"mod.intro\") write.module(mod.intro, \"intro.mod\") ## read the module: mod <- read.module(\"intro.mod\") ## or create a connection yourself: con <- file(\"intro.mod\", \"rb\") ## note that you can also read from URL connections! mod2 <- read.module(con) ## don't forget to close the file: close(con) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":null,"dir":"Reference","previous_headings":"","what":"Read an audio file and coerce to a PTSample object — read.sample","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"Reads audio files \"wav\" \"mp3\" files, using tuneR::tuneR methods. Commodore Amiga native formats \"8svx\" \"raw\" can also read.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"","code":"# S4 method for character read.sample(filename, what = c(\"wav\", \"mp3\", \"8svx\", \"raw\"))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"filename character string representing filename read. character string indicating type file read. Can one following: \"wav\" (default), \"mp3\", \"8svx\" \"raw\". AmigaFFH package needs installed order read 8svx files.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"Returns PTSample object based file read.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"method provides wrapper tuneR::readWave tuneR::readMP3 methods tuneR::tuneR. also provides means import audio file formats native Commodore Amiga. Simple 8svx files (also known \"iff\" files) can read. uses AmigaFFH::read.iff method AmigaFFH::AmigaFFH package. also common practice store audio samples raw data Commodore Amiga, byte simply represented signed integer value waveform. audio coerced 8 bit mono maximum length 2*0xffff = 131070 bytes (= samples) per ProTracker standards.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"per ProTracker standards, sample even length (bytes). sample file odd length, raw 0x00 value added end.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"","code":"if (FALSE) { data(\"mod.intro\") ## create an audio file which we can then read: write.sample(PTSample(mod.intro, 2), \"snaredrum.iff\", \"8svx\") ## read the created sample: snare <- read.sample(\"snaredrum.iff\", \"8svx\") print(snare) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":null,"dir":"Reference","previous_headings":"","what":"Resample data — resample","title":"Resample data — resample","text":"Resample numeric data different rate.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Resample data — resample","text":"","code":"resample(x, source.rate, target.rate, ...)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Resample data — resample","text":"x numeric vector needs resampled. source.rate rate x sampled Hz (another unit, long unit target.rate). target.rate desired target sampling rate Hz (another unit, long unit source.rate). ... Arguments passed stats::approx. simulate Commodore Amiga hardware, best use 'method = \"constant\" resampling 8 bit samples.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Resample data — resample","text":"Returns resampled numeric vector length round(length(x) * target.rate / source.rate) based x.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Resample data — resample","text":"function resamples numeric data (.e., audio data) source sample rate target sample rate. core uses stats::approx function.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Resample data — resample","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Resample data — resample","text":"","code":"some.data <- 1:100 ## assume that the current (sample) rate ## of 'some.data' is 100, and we want to ## resample this data to a rate of 200: resamp.data <- resample(some.data, 100, 200, method = \"constant\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the length of a PTSample — sampleLength","title":"Get the length of a PTSample — sampleLength","text":"Gets length (samples = bytes) audio fragment stored PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the length of a PTSample — sampleLength","text":"","code":"# S4 method for PTSample sampleLength(sample)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the length of a PTSample — sampleLength","text":"sample PTSample object length needs returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the length of a PTSample — sampleLength","text":"Returns numeric value representing number samples (bytes) PTSample object sample composed .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the length of a PTSample — sampleLength","text":"PTSamples 8 bit mono audio fragments. method returns length fragment expressed number samples (also equals number bytes).","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the length of a PTSample — sampleLength","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the length of a PTSample — sampleLength","text":"","code":"data(\"mod.intro\") ## Show the length of the second sample in mod.intro sampleLength(PTSample(mod.intro, 2)) #> [1] 1930"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or replace a sample number — sampleNumber","title":"Extract or replace a sample number — sampleNumber","text":"Extract replace PTSample index number PTCell object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or replace a sample number — sampleNumber","text":"","code":"# S4 method for PTCell sampleNumber(x) # S4 method for PTCell,numeric sampleNumber(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or replace a sample number — sampleNumber","text":"x PTCell object PTSample index number needs extracted replaced. value numeric replacement value index. Valid indices range 1 31. value 0 can also assigned, play sample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract or replace a sample number — sampleNumber","text":"sampleNumber, numeric value representing sample index number object x returned. sampleNumber<-, copy object x returned sample index number replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract or replace a sample number — sampleNumber","text":"PTSample index number PTCell object, indicates sample PTModule object needs played. method can used extract replace index PTCell object.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract or replace a sample number — sampleNumber","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract or replace a sample number — sampleNumber","text":"","code":"data(\"mod.intro\") ## get the sample index number of PTCell at pattern #3, ## track #2, row #1 from mod.intro (which is 2): sampleNumber(PTCell(mod.intro, 1, 2, 3)) #> [1] 2 ## replace the sample index number of PTCell at pattern #3, ## track #2, row #1 from mod.intro with 1: sampleNumber(PTCell(mod.intro, 1, 2, 3)) <- 1"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the sample rate for a note or period value — sampleRate","title":"Calculate the sample rate for a note or period value — sampleRate","text":"Calculate sample rate note ProTracker period value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the sample rate for a note or period value — sampleRate","text":"","code":"noteToSampleRate(note = \"C-3\", finetune = 0, video = c(\"PAL\", \"NTSC\")) periodToSampleRate(period, video = c(\"PAL\", \"NTSC\"))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the sample rate for a note or period value — sampleRate","text":"note character string representing note sample rate calculated. finetune integer value ranging -8 7. value used tune audio sample. video video mode used calculate sample rate. character string can either value 'PAL' 'NTSC'. PAL used default. period ProTracker integer value period value sample rate calculated.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the sample rate for a note or period value — sampleRate","text":"Returns sample rate samples per seconds.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the sample rate for a note or period value — sampleRate","text":"timing Commodore Amiga depends video mode, either 'PAL' 'NTSC'. Therefore sample rates also depend modes. PAL mostly used Europe, Amiga popular Europe, PAL used default.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Calculate the sample rate for a note or period value — sampleRate","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the sample rate for a note or period value — sampleRate","text":"","code":"## calculate the sample rate for a ProTracker period value of 200 periodToSampleRate(200) #> [1] 17734.47 ## calculate the sample rate for a sample at note 'A-3' noteToSampleRate(\"A-3\") #> [1] 27928.31 ## note that the NTSC video system gives a slightly different rate: noteToSampleRate(\"A-3\", video = \"NTSC\") #> [1] 28185.39 ## fine tuning a sample will also give a slightly different rate: noteToSampleRate(\"A-3\", finetune = -1) #> [1] 27710.12"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"function converts signed integer ranging -8 7 either high low nybble byte, represented raw data.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"","code":"signedIntToNybble(int_dat, which = c(\"low\", \"high\"))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"int_dat single integer value vector integer data ranging -8 7. character string indicating whether nybble set \"low\" (default) \"high\" position raw data returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"Returns raw data length int_dat. returned raw data holds either low high nybbles (specified ) based provided signed integers.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"Nybbles 4 bit values, byte (8 bits) holds two nybbles. high nybble (left-hand side byte) low nybble (right-hand side byte). function converts signed integer value ranging -8 7 nybble sets either high low nybble raw data.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"","code":"## generate some integers in the right range: dati <- sample(-8:7, 100, replace = TRUE) ## Set the low nybbles of rawl based on dati: rawl <- signedIntToNybble(dati) ## Set the high nybbles of rawl based on dati: rawh <- signedIntToNybble(dati, \"high\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert signed integers (short) into a raw vector — signedIntToRaw","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"function converts signed integer values vector raw data.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"","code":"signedIntToRaw(int_dat)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"int_dat vector integer values, ranging -128 127.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"vector length int_dat, holding raw data.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"function converts signed integer values [-128,127] vector raw data. function fail values range (< -128 > 127). convert raw data vector unsigned integers use .integer(). inverse function see rawToSignedInt().","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"","code":"## generate some signed integers: some.integers <- c(-100, 40, 0, 30, -123) ## convert the signed integers into a vector of raw data: signedIntToRaw(some.integers) #> [1] 9c 28 00 1e 85"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":null,"dir":"Reference","previous_headings":"","what":"Tracker flag indicating version compatibility — trackerFlag","title":"Tracker flag indicating version compatibility — trackerFlag","text":"Method obtain tracker flag, indicates version compatibility ProTracker module (PTModule object).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Tracker flag indicating version compatibility — trackerFlag","text":"","code":"# S4 method for PTModule trackerFlag(x) # S4 method for PTModule trackerFlag(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Tracker flag indicating version compatibility — trackerFlag","text":"x PTModule object flag needs returned replaced. value character string representing tracker flag object x needs replaced . either \"M.K.\" \"M!K!\". Note current flag \"M!K!\" replaced \"M.K.\", PTPatterns may get lost latter supports less patterns.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Tracker flag indicating version compatibility — trackerFlag","text":"trackerFlag, tracker flag object x returned. trackerFlag<-, copy object x updated tracker flag returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Tracker flag indicating version compatibility — trackerFlag","text":"ProTrackR supports two tracker flags: \"M.K.\" \"M!K!\". M.K. presumably initials programmers Mahony Kaktus, unfortunately documentation matter ambiguous. case, modules flag \"M.K.\" can hold 64 patterns, whereas modules flag \"M!K!\" can hold 100 patterns. Use method obtain replace tracker flag PTModule.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Tracker flag indicating version compatibility — trackerFlag","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Tracker flag indicating version compatibility — trackerFlag","text":"","code":"data(\"mod.intro\") ## the current trackerFlag of mod.intro is \"M.K.\", ## meaning that it can hold a maximum of 64 patterns: trackerFlag(mod.intro) #> [1] \"M.K.\" patternOrder(mod.intro, full = TRUE) <- 0:63 ## If we upgrade the trackerFlag of mod.intro to \"M!K!\" ## it can hold a maximum of 100 patterns!: trackerFlag(mod.intro) <- \"M!K!\" patternOrder(mod.intro, full = TRUE) <- 0:99 ## Now let's do something dangerous: ## current flag is \"M!K!\", by setting it ## back to \"M.K.\", patterns 65:100 are lost... trackerFlag(mod.intro) <- \"M.K.\" #> Warning: PTModule holds more patterns than M.K. flag allows. Higher patterns are removed!"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert unsigned integer into a raw vector — unsignedIntToRaw","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"function converts unsigned integer vector raw data.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"","code":"unsignedIntToRaw(int_dat, length.out = 1)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"int_dat single integer value. list vector values. provided, first element evaluated. Input data converted absolute integer values. length.Required length vector hold resulting. raw data. Defaults 1. value int_dat large convert raw data length length., data clipped.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"vector length length., holding raw data.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"function converts unsigned integer value vector (specified length, namely length.) raw data. inverse function use rawToUnsignedInt().","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"","code":"## generate some unsigned integer: some.integer <- 43251 ## convert the unsigned integer into raw data: unsignedIntToRaw(some.integer, length.out = 4) #> [1] 00 00 a8 f3 if (FALSE) { ## note that the integer is too large to store as raw with length.out = 1: unsignedIntToRaw(some.raw.data, length.out = 1) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":null,"dir":"Reference","previous_headings":"","what":"Default playback volume of PTSample — volume","title":"Default playback volume of PTSample — volume","text":"Extract replace default volume PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Default playback volume of PTSample — volume","text":"","code":"# S4 method for PTSample volume(sample) # S4 method for PTSample,numeric volume(sample) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Default playback volume of PTSample — volume","text":"sample PTSample default volume needs extracted replace. value numeric value ranging 0 64, representing volume level.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Default playback volume of PTSample — volume","text":"volume volume value, represented integer value ranging 0 64, returned. volume<- PTSample sample, updated volume value, returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Default playback volume of PTSample — volume","text":"PTSamples default playback volume, ranging 0 (silent) 64 (maximum volume). method can used extract value, safely replace .","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Default playback volume of PTSample — volume","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Default playback volume of PTSample — volume","text":"","code":"data(\"mod.intro\") ## get the volume of the first sample of mod.intro: volume(PTSample(mod.intro, 1)) #> [1] 64 ## Let's lower the volume of this sample to 32 ## (or as a hexadecimal: 0x20): volume(PTSample(mod.intro, 1)) <- 0x20"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or replace a PTSample waveform — waveform","title":"Extract or replace a PTSample waveform — waveform","text":"Extract replace waveform PTSample object. waveform represented vector numeric values ranging 0 255.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or replace a PTSample waveform — waveform","text":"","code":"# S4 method for PTSample waveform(sample, start.pos = 1, stop.pos = sampleLength(sample), loop = TRUE) # S4 method for PTSample waveform(sample) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or replace a PTSample waveform — waveform","text":"sample PTSample object waveform needs extracted replaced. start.pos numeric starting index, giving starting position waveform returned. Default value 1. index greater zero. stop.pos numeric stopping index, giving stopping position waveform returned. Default value sampleLength(sample) index greater start.pos. loop logical value indicating whether waveform modulated specified loop positions (see loopStart loopLength), waveform stop end sample (padded NA values beyond sample length). first set TRUE latter set FALSE. value vector numeric values ranging 0 255, representing waveform used replace object sample. length even exceed 2*0xffff = 131070. loopStart loopLength adjusted automatically range new waveform. Use NA generate empty/blank PTSample object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract or replace a PTSample waveform — waveform","text":"waveform, waveform sample returned vector numeric values ranging 0 255. loop set FALSE starting position beyond sample length, NA values returned. loop set TRUE starting position beyond sample loop (present, see loopState), waveform modulated loop positions. waveform<-, copy object sample returned waveform replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract or replace a PTSample waveform — waveform","text":"Sample waveforms stored 8 bit signed short integer values ranging -128 +127 original ProTracker files. However, PTSample class extends tuneR::Wave class, waveforms represented integer values ranging 0 255 ProTrackR package. per ProTracker specifications, samples 8 bit mono quality can even length maximum 2*0xffff = 131070. method can used extract waveform replace .","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract or replace a PTSample waveform — waveform","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract or replace a PTSample waveform — waveform","text":"","code":"data(\"mod.intro\") ## Loop sample #1 of mod.intro beyond it's ## length of 1040 samples: wav1 <- waveform(PTSample(mod.intro, 1), 1, 5000) ## get the waveform from sample #2 ## of mod.intro: wav2 <- waveform(PTSample(mod.intro, 2)) ## create an echo effect using ## the extracted waveform: wav2 <- c(wav2, rep(128, 1000)) + c(rep(128, 1000), wav2)*0.25 - 25 ## assign this echoed sample to ## sample #2 in mod.intro: waveform(PTSample(mod.intro, 2)) <- wav2 ## Blank out sample #1 in mod.intro: waveform(PTSample(mod.intro, 1)) <- NA #> Warning: Sample loop start is outside the new range. It is set to 0. #> Warning: Sample loop end is outside the new range. It's set to its maximum."},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":null,"dir":"Reference","previous_headings":"","what":"Export an PTModule object as a ProTracker module file — write.module","title":"Export an PTModule object as a ProTracker module file — write.module","text":"Export PTModule object ProTracker module file, conform ProTracker 2.3A specifications.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Export an PTModule object as a ProTracker module file — write.module","text":"","code":"# S4 method for PTModule,ANY write.module(mod, file) # S4 method for PTModule,character write.module(mod, file)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Export an PTModule object as a ProTracker module file — write.module","text":"mod valid PTModule object saved ProTracker *.mod file file either filename write , file connection, allows write binary data (see base::file).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Export an PTModule object as a ProTracker module file — write.module","text":"Writes module file returns nothing.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Export an PTModule object as a ProTracker module file — write.module","text":"routine write ProTracker modules based referenced version ProTracker 2.3A. means routine may able write files ar compatible later earlier ProTracker versions.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Export an PTModule object as a ProTracker module file — write.module","text":"https://wiki.multimedia.cx/index.php?title=Protracker_Module http://coppershade.org/articles/!/Topics/Protracker_File_Format/","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Export an PTModule object as a ProTracker module file — write.module","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Export an PTModule object as a ProTracker module file — write.module","text":"","code":"if (FALSE) { ## get the PTModule object provided with the ProTrackR package data(\"mod.intro\") ## save the object as a valid ProTracker module file: write.module(mod.intro, \"intro.mod\") ## or create the connection yourself: con <- file(\"intro2.mod\", \"wb\") write.module(mod.intro, con) ## don't forget to close the connection after you're done: close(con) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":null,"dir":"Reference","previous_headings":"","what":"Write a PTSample object to an audio file — write.sample","title":"Write a PTSample object to an audio file — write.sample","text":"Write PTSample \"wav\", \"8svx\" \"raw\" audio file.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Write a PTSample object to an audio file — write.sample","text":"","code":"# S4 method for PTSample,character write.sample(sample, filename, what = c(\"wav\", \"8svx\", \"raw\"))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Write a PTSample object to an audio file — write.sample","text":"sample PTSample object needs exported audio file. filename character string representing filename audio needs saved. character string indicating type file exported. Can one following: \"wav\" (default), \"8svx\" \"raw\". AmigaFFH package needs installed order write 8svx files.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Write a PTSample object to an audio file — write.sample","text":"Saves audio file, returns nothing.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Write a PTSample object to an audio file — write.sample","text":"method provides wrapper tuneR::writeWave method tuneR::tuneR. also provides means export audio file formats native Commodore Amiga. PTSamples can exported simple (uncompressed) 8svx files also known \"iff\" files). addition can exported raw data, byte simply represents signed integer value waveform.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Write a PTSample object to an audio file — write.sample","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Write a PTSample object to an audio file — write.sample","text":"","code":"if (FALSE) { data(\"mod.intro\") ## Export the second sample of mod.intro as a wav file: write.sample(PTSample(mod.intro, 2), \"snaredrum.wav\", \"wav\") ## Export the second sample of mod.intro as an 8svx file: write.sample(PTSample(mod.intro, 2), \"snaredrum.iff\", \"8svx\") ## Export the second sample of mod.intro as a raw file: write.sample(PTSample(mod.intro, 2), \"snaredrum.raw\", \"raw\") }"},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v039-release-date-2023-02-14","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.9 (Release date: 2023-02-14)","title":"ProTrackR v0.3.9 (Release date: 2023-02-14)","text":"Added pkgdown website README switched RMarkdown mode roxygen2 documentation","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v038-release-date-2023-08-22","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.8 (Release date: 2023-08-22)","title":"ProTrackR v0.3.8 (Release date: 2023-08-22)","text":"CRAN release: 2023-08-22 Updates comply latest CRAN policies Roxygen2 standards","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v037-release-date-2020-02-03","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.7 (Release date: 2020-02-03)","title":"ProTrackR v0.3.7 (Release date: 2020-02-03)","text":"CRAN release: 2020-02-03 Fixes modArchive functions, due changes API Fix structure examples pass CRAN tests. Fix validation functions order support changes latest version R","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v036-release-date-2019-02-06","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.6 (Release date: 2019-02-06)","title":"ProTrackR v0.3.6 (Release date: 2019-02-06)","text":"CRAN release: 2019-02-06 Added modLand helper functions. Reading writing 8svx samples read.sample write.sample now implemented using AmigaFFH package, robust implementation Interchange File Format handlers. Added ‘mix’ argument ‘modToWave’-method. set FALSE, method can now return individual channels (without mixing ). ‘playWave’-method updated also accepts multi-channel waves (WaveMC), order make compatible modification specified . Available documentation 4 channels mixed left right audio output channel respectively inconsistent. version assume channels 1 4 (0 3 using Amiga indexing) mixed left channel channels 2 3 (1 2 using Amiga indexing) mixed right channel. means output channels now swapped compared earlier versions package. bug implementation ‘porta note’ effects (3 5), now fixed. Added new implementation generic ‘.raw’ method, allows convert PTModule objects raw data. Also added ‘rawToPTModule’ method achieve inverse. Endianess set “big” instead “little” (whoops), luckily, consequences data read raw data. corrected code nonetheless Minor corrections manual","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v035-release-date-2017-10-14","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.5 (Release date: 2017-10-14)","title":"ProTrackR v0.3.5 (Release date: 2017-10-14)","text":"CRAN release: 2017-10-14 Added functions exchange pattern data MODPlug tracker. Endianness explicitely set “little” reading writing samples modules. data read written raw, affect package functioning. Removed unnecessary print statement PTBlock routine. Fixed bug ‘rawToCharNull’ function. Fixed bug ‘modToWave’ routine caused error rare conditions. Setting stereo.separation 0 handled correctly ‘modToWave’ routine. Channels mixed converting mono. now fixed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v034-release-date-2016-11-25","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.4 (Release date: 2016-11-25)","title":"ProTrackR v0.3.4 (Release date: 2016-11-25)","text":"CRAN release: 2016-11-25 added “fix.PTModule” method attempts fix module object conform ProTracker specs… period limits porta effects fixed inverted logical interpretation ‘verbose’ argument, incorrect earlier versions. added modified several ‘modArchive’- functions, better support modarchive.org modified S4-object validation functions run faster. modified ‘write.module’-method write modules much faster fixed bug ‘read.module’-method modified read modules much faster. fixed bug ‘loopStart<-’-method fixed bug ‘loopLength<-’-method fixed bug ‘patternOrder<-’-method fixed bug ‘appendPattern’-method fixed bug ‘volume<-’-method fixed bug ‘waveform<-’- ‘waveform’-method","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v033-release-date-2016-03-26","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.3 (Release date: 2016-03-26)","title":"ProTrackR v0.3.3 (Release date: 2016-03-26)","text":"CRAN release: 2016-03-26 Minor correction manual.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v032-release-date-2016-03-25","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.2 (Release date: 2016-03-25)","title":"ProTrackR v0.3.2 (Release date: 2016-03-25)","text":"Minor corrections manual.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v031-release-date-2016-03-25","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.1 (Release date: 2016-03-25)","title":"ProTrackR v0.3.1 (Release date: 2016-03-25)","text":"Modified playing routine porta effects can’t slide period values note B-3 856. Period values cut-values processing effects well. Thanks must go Olav Sørensen (created Protracker v2.3D clone modern machines, https://16-bits.org/pt.php) confirming software hardware limits. Resampling routine modToWave-method rewritten. faster now. 9xy command now implemented emulates ProTracker ‘offset bug’. Therewith, player routine now passes ‘ptoffset.mod’ test. Bug resampling samples ‘modToWave’- routine fixed. ‘modArchive’ functions added package. Effect commands ‘E4x’ ‘E7x’ now implemented player routine. Implementation effect command ‘5xy’ fixed. previous release, generated wave data ended range mixing procedure. now fixed. ‘playWave’-method modified returns ‘audioInstance’-object (audio package) allowing control playback. Minor corrections/improvements manual Mixing tracks turned fixed","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v023-release-date-2015-11-07","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.2.3 (Release date: 2015-11-07)","title":"ProTrackR v0.2.3 (Release date: 2015-11-07)","text":"CRAN release: 2015-11-07 Minor corrections manual pass CRAN checks.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v022-release-date-2015-11-07","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.2.2 (Release date: 2015-11-07)","title":"ProTrackR v0.2.2 (Release date: 2015-11-07)","text":"Minor corrections manual pass CRAN checks.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v021-release-date-2015-11-07","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.2.1 (Release date: 2015-11-07)","title":"ProTrackR v0.2.1 (Release date: 2015-11-07)","text":"‘clearSamples’-method added package. ‘clearSong’-method added package. ‘modToWave’-method added package ‘playingtable’-method added package ‘playMod’-method added package ‘playWave’-method added package ‘resample’-function added package avoid ‘seewave’ dependency (available platforms). ‘waveform’-method now includes additional arguments: ‘start.pos’, ‘stop.pos’ ‘loop’ removed ‘utils’ import… ‘name’ method, PTSample objects, incorrectly returned raw representation sample name instead character representation. now fixed. ‘playSample’ printing names additional (…) arguments previous release. meant test behaviour intended release. removed. section ProTracker effect commands added manual minor corrections made manual","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v013-release-date-2015-09-25","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.1.3 (Release date: 2015-09-25)","title":"ProTrackR v0.1.3 (Release date: 2015-09-25)","text":"CRAN release: 2015-09-26 minor fixes pass CRAN checks.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v012-release-date-2015-09-25","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.1.2 (Release date: 2015-09-25)","title":"ProTrackR v0.1.2 (Release date: 2015-09-25)","text":"Minor fixes pass CRAN checks. ‘playSample’ method, ‘finetune’ argument now correctly passed ‘noteToSampleRate’ function. , possible play finetune specified sample. Correction validity check objects S4 class ‘PTSample’: wlooplen allowed value zero sample empty. prototype S4 class ‘PTSample’ changed set wlooplen value zero. slot descriptions wloopstart wlooplen ‘PTSample’ documentation contained errors corrected. ‘loopLength<-’, ‘PTSample-method’ ‘read.sample’ methods modified handle adjustments ‘PTSample’ class. Removed superfluous argument ‘value’ ‘patternLength’ method","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v011-release-date-2015-09-25","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.1.1 (Release date: 2015-09-25)","title":"ProTrackR v0.1.1 (Release date: 2015-09-25)","text":"First release: Provided basis importing, exporting manipulating ProTracker modules. Basic playing routine, playing samples module (module ).","code":""}] +[{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"GNU General Public License","title":"GNU General Public License","text":"Version 3, 29 June 2007Copyright © 2007 Free Software Foundation, Inc. Everyone permitted copy distribute verbatim copies license document, changing allowed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"preamble","dir":"","previous_headings":"","what":"Preamble","title":"GNU General Public License","text":"GNU General Public License free, copyleft license software kinds works. licenses software practical works designed take away freedom share change works. contrast, GNU General Public License intended guarantee freedom share change versions program–make sure remains free software users. , Free Software Foundation, use GNU General Public License software; applies also work released way authors. can apply programs, . speak free software, referring freedom, price. General Public Licenses designed make sure freedom distribute copies free software (charge wish), receive source code can get want , can change software use pieces new free programs, know can things. protect rights, need prevent others denying rights asking surrender rights. Therefore, certain responsibilities distribute copies software, modify : responsibilities respect freedom others. example, distribute copies program, whether gratis fee, must pass recipients freedoms received. must make sure , , receive can get source code. must show terms know rights. Developers use GNU GPL protect rights two steps: (1) assert copyright software, (2) offer License giving legal permission copy, distribute /modify . developers’ authors’ protection, GPL clearly explains warranty free software. users’ authors’ sake, GPL requires modified versions marked changed, problems attributed erroneously authors previous versions. devices designed deny users access install run modified versions software inside , although manufacturer can . fundamentally incompatible aim protecting users’ freedom change software. systematic pattern abuse occurs area products individuals use, precisely unacceptable. Therefore, designed version GPL prohibit practice products. problems arise substantially domains, stand ready extend provision domains future versions GPL, needed protect freedom users. Finally, every program threatened constantly software patents. States allow patents restrict development use software general-purpose computers, , wish avoid special danger patents applied free program make effectively proprietary. prevent , GPL assures patents used render program non-free. precise terms conditions copying, distribution modification follow.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_0-definitions","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"0. Definitions","title":"GNU General Public License","text":"“License” refers version 3 GNU General Public License. “Copyright” also means copyright-like laws apply kinds works, semiconductor masks. “Program” refers copyrightable work licensed License. licensee addressed “”. “Licensees” “recipients” may individuals organizations. “modify” work means copy adapt part work fashion requiring copyright permission, making exact copy. resulting work called “modified version” earlier work work “based ” earlier work. “covered work” means either unmodified Program work based Program. “propagate” work means anything , without permission, make directly secondarily liable infringement applicable copyright law, except executing computer modifying private copy. Propagation includes copying, distribution (without modification), making available public, countries activities well. “convey” work means kind propagation enables parties make receive copies. Mere interaction user computer network, transfer copy, conveying. interactive user interface displays “Appropriate Legal Notices” extent includes convenient prominently visible feature (1) displays appropriate copyright notice, (2) tells user warranty work (except extent warranties provided), licensees may convey work License, view copy License. interface presents list user commands options, menu, prominent item list meets criterion.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_1-source-code","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"1. Source Code","title":"GNU General Public License","text":"“source code” work means preferred form work making modifications . “Object code” means non-source form work. “Standard Interface” means interface either official standard defined recognized standards body, , case interfaces specified particular programming language, one widely used among developers working language. “System Libraries” executable work include anything, work whole, () included normal form packaging Major Component, part Major Component, (b) serves enable use work Major Component, implement Standard Interface implementation available public source code form. “Major Component”, context, means major essential component (kernel, window system, ) specific operating system () executable work runs, compiler used produce work, object code interpreter used run . “Corresponding Source” work object code form means source code needed generate, install, (executable work) run object code modify work, including scripts control activities. However, include work’s System Libraries, general-purpose tools generally available free programs used unmodified performing activities part work. example, Corresponding Source includes interface definition files associated source files work, source code shared libraries dynamically linked subprograms work specifically designed require, intimate data communication control flow subprograms parts work. Corresponding Source need include anything users can regenerate automatically parts Corresponding Source. Corresponding Source work source code form work.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_2-basic-permissions","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"2. Basic Permissions","title":"GNU General Public License","text":"rights granted License granted term copyright Program, irrevocable provided stated conditions met. License explicitly affirms unlimited permission run unmodified Program. output running covered work covered License output, given content, constitutes covered work. License acknowledges rights fair use equivalent, provided copyright law. may make, run propagate covered works convey, without conditions long license otherwise remains force. may convey covered works others sole purpose make modifications exclusively , provide facilities running works, provided comply terms License conveying material control copyright. thus making running covered works must exclusively behalf, direction control, terms prohibit making copies copyrighted material outside relationship . Conveying circumstances permitted solely conditions stated . Sublicensing allowed; section 10 makes unnecessary.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_3-protecting-users-legal-rights-from-anti-circumvention-law","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"3. Protecting Users’ Legal Rights From Anti-Circumvention Law","title":"GNU General Public License","text":"covered work shall deemed part effective technological measure applicable law fulfilling obligations article 11 WIPO copyright treaty adopted 20 December 1996, similar laws prohibiting restricting circumvention measures. convey covered work, waive legal power forbid circumvention technological measures extent circumvention effected exercising rights License respect covered work, disclaim intention limit operation modification work means enforcing, work’s users, third parties’ legal rights forbid circumvention technological measures.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_4-conveying-verbatim-copies","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"4. Conveying Verbatim Copies","title":"GNU General Public License","text":"may convey verbatim copies Program’s source code receive , medium, provided conspicuously appropriately publish copy appropriate copyright notice; keep intact notices stating License non-permissive terms added accord section 7 apply code; keep intact notices absence warranty; give recipients copy License along Program. may charge price price copy convey, may offer support warranty protection fee.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_5-conveying-modified-source-versions","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"5. Conveying Modified Source Versions","title":"GNU General Public License","text":"may convey work based Program, modifications produce Program, form source code terms section 4, provided also meet conditions: ) work must carry prominent notices stating modified , giving relevant date. b) work must carry prominent notices stating released License conditions added section 7. requirement modifies requirement section 4 “keep intact notices”. c) must license entire work, whole, License anyone comes possession copy. License therefore apply, along applicable section 7 additional terms, whole work, parts, regardless packaged. License gives permission license work way, invalidate permission separately received . d) work interactive user interfaces, must display Appropriate Legal Notices; however, Program interactive interfaces display Appropriate Legal Notices, work need make . compilation covered work separate independent works, nature extensions covered work, combined form larger program, volume storage distribution medium, called “aggregate” compilation resulting copyright used limit access legal rights compilation’s users beyond individual works permit. Inclusion covered work aggregate cause License apply parts aggregate.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_6-conveying-non-source-forms","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"6. Conveying Non-Source Forms","title":"GNU General Public License","text":"may convey covered work object code form terms sections 4 5, provided also convey machine-readable Corresponding Source terms License, one ways: ) Convey object code , embodied , physical product (including physical distribution medium), accompanied Corresponding Source fixed durable physical medium customarily used software interchange. b) Convey object code , embodied , physical product (including physical distribution medium), accompanied written offer, valid least three years valid long offer spare parts customer support product model, give anyone possesses object code either (1) copy Corresponding Source software product covered License, durable physical medium customarily used software interchange, price reasonable cost physically performing conveying source, (2) access copy Corresponding Source network server charge. c) Convey individual copies object code copy written offer provide Corresponding Source. alternative allowed occasionally noncommercially, received object code offer, accord subsection 6b. d) Convey object code offering access designated place (gratis charge), offer equivalent access Corresponding Source way place charge. need require recipients copy Corresponding Source along object code. place copy object code network server, Corresponding Source may different server (operated third party) supports equivalent copying facilities, provided maintain clear directions next object code saying find Corresponding Source. Regardless server hosts Corresponding Source, remain obligated ensure available long needed satisfy requirements. e) Convey object code using peer--peer transmission, provided inform peers object code Corresponding Source work offered general public charge subsection 6d. separable portion object code, whose source code excluded Corresponding Source System Library, need included conveying object code work. “User Product” either (1) “consumer product”, means tangible personal property normally used personal, family, household purposes, (2) anything designed sold incorporation dwelling. determining whether product consumer product, doubtful cases shall resolved favor coverage. particular product received particular user, “normally used” refers typical common use class product, regardless status particular user way particular user actually uses, expects expected use, product. product consumer product regardless whether product substantial commercial, industrial non-consumer uses, unless uses represent significant mode use product. “Installation Information” User Product means methods, procedures, authorization keys, information required install execute modified versions covered work User Product modified version Corresponding Source. information must suffice ensure continued functioning modified object code case prevented interfered solely modification made. convey object code work section , , specifically use , User Product, conveying occurs part transaction right possession use User Product transferred recipient perpetuity fixed term (regardless transaction characterized), Corresponding Source conveyed section must accompanied Installation Information. requirement apply neither third party retains ability install modified object code User Product (example, work installed ROM). requirement provide Installation Information include requirement continue provide support service, warranty, updates work modified installed recipient, User Product modified installed. Access network may denied modification materially adversely affects operation network violates rules protocols communication across network. Corresponding Source conveyed, Installation Information provided, accord section must format publicly documented (implementation available public source code form), must require special password key unpacking, reading copying.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_7-additional-terms","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"7. Additional Terms","title":"GNU General Public License","text":"“Additional permissions” terms supplement terms License making exceptions one conditions. Additional permissions applicable entire Program shall treated though included License, extent valid applicable law. additional permissions apply part Program, part may used separately permissions, entire Program remains governed License without regard additional permissions. convey copy covered work, may option remove additional permissions copy, part . (Additional permissions may written require removal certain cases modify work.) may place additional permissions material, added covered work, can give appropriate copyright permission. Notwithstanding provision License, material add covered work, may (authorized copyright holders material) supplement terms License terms: ) Disclaiming warranty limiting liability differently terms sections 15 16 License; b) Requiring preservation specified reasonable legal notices author attributions material Appropriate Legal Notices displayed works containing ; c) Prohibiting misrepresentation origin material, requiring modified versions material marked reasonable ways different original version; d) Limiting use publicity purposes names licensors authors material; e) Declining grant rights trademark law use trade names, trademarks, service marks; f) Requiring indemnification licensors authors material anyone conveys material (modified versions ) contractual assumptions liability recipient, liability contractual assumptions directly impose licensors authors. non-permissive additional terms considered “restrictions” within meaning section 10. Program received , part , contains notice stating governed License along term restriction, may remove term. license document contains restriction permits relicensing conveying License, may add covered work material governed terms license document, provided restriction survive relicensing conveying. add terms covered work accord section, must place, relevant source files, statement additional terms apply files, notice indicating find applicable terms. Additional terms, permissive non-permissive, may stated form separately written license, stated exceptions; requirements apply either way.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_8-termination","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"8. Termination","title":"GNU General Public License","text":"may propagate modify covered work except expressly provided License. attempt otherwise propagate modify void, automatically terminate rights License (including patent licenses granted third paragraph section 11). However, cease violation License, license particular copyright holder reinstated () provisionally, unless copyright holder explicitly finally terminates license, (b) permanently, copyright holder fails notify violation reasonable means prior 60 days cessation. Moreover, license particular copyright holder reinstated permanently copyright holder notifies violation reasonable means, first time received notice violation License (work) copyright holder, cure violation prior 30 days receipt notice. Termination rights section terminate licenses parties received copies rights License. rights terminated permanently reinstated, qualify receive new licenses material section 10.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_9-acceptance-not-required-for-having-copies","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"9. Acceptance Not Required for Having Copies","title":"GNU General Public License","text":"required accept License order receive run copy Program. Ancillary propagation covered work occurring solely consequence using peer--peer transmission receive copy likewise require acceptance. However, nothing License grants permission propagate modify covered work. actions infringe copyright accept License. Therefore, modifying propagating covered work, indicate acceptance License .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_10-automatic-licensing-of-downstream-recipients","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"10. Automatic Licensing of Downstream Recipients","title":"GNU General Public License","text":"time convey covered work, recipient automatically receives license original licensors, run, modify propagate work, subject License. responsible enforcing compliance third parties License. “entity transaction” transaction transferring control organization, substantially assets one, subdividing organization, merging organizations. propagation covered work results entity transaction, party transaction receives copy work also receives whatever licenses work party’s predecessor interest give previous paragraph, plus right possession Corresponding Source work predecessor interest, predecessor can get reasonable efforts. may impose restrictions exercise rights granted affirmed License. example, may impose license fee, royalty, charge exercise rights granted License, may initiate litigation (including cross-claim counterclaim lawsuit) alleging patent claim infringed making, using, selling, offering sale, importing Program portion .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_11-patents","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"11. Patents","title":"GNU General Public License","text":"“contributor” copyright holder authorizes use License Program work Program based. work thus licensed called contributor’s “contributor version”. contributor’s “essential patent claims” patent claims owned controlled contributor, whether already acquired hereafter acquired, infringed manner, permitted License, making, using, selling contributor version, include claims infringed consequence modification contributor version. purposes definition, “control” includes right grant patent sublicenses manner consistent requirements License. contributor grants non-exclusive, worldwide, royalty-free patent license contributor’s essential patent claims, make, use, sell, offer sale, import otherwise run, modify propagate contents contributor version. following three paragraphs, “patent license” express agreement commitment, however denominated, enforce patent (express permission practice patent covenant sue patent infringement). “grant” patent license party means make agreement commitment enforce patent party. convey covered work, knowingly relying patent license, Corresponding Source work available anyone copy, free charge terms License, publicly available network server readily accessible means, must either (1) cause Corresponding Source available, (2) arrange deprive benefit patent license particular work, (3) arrange, manner consistent requirements License, extend patent license downstream recipients. “Knowingly relying” means actual knowledge , patent license, conveying covered work country, recipient’s use covered work country, infringe one identifiable patents country reason believe valid. , pursuant connection single transaction arrangement, convey, propagate procuring conveyance , covered work, grant patent license parties receiving covered work authorizing use, propagate, modify convey specific copy covered work, patent license grant automatically extended recipients covered work works based . patent license “discriminatory” include within scope coverage, prohibits exercise , conditioned non-exercise one rights specifically granted License. may convey covered work party arrangement third party business distributing software, make payment third party based extent activity conveying work, third party grants, parties receive covered work , discriminatory patent license () connection copies covered work conveyed (copies made copies), (b) primarily connection specific products compilations contain covered work, unless entered arrangement, patent license granted, prior 28 March 2007. Nothing License shall construed excluding limiting implied license defenses infringement may otherwise available applicable patent law.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_12-no-surrender-of-others-freedom","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"12. No Surrender of Others’ Freedom","title":"GNU General Public License","text":"conditions imposed (whether court order, agreement otherwise) contradict conditions License, excuse conditions License. convey covered work satisfy simultaneously obligations License pertinent obligations, consequence may convey . example, agree terms obligate collect royalty conveying convey Program, way satisfy terms License refrain entirely conveying Program.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_13-use-with-the-gnu-affero-general-public-license","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"13. Use with the GNU Affero General Public License","title":"GNU General Public License","text":"Notwithstanding provision License, permission link combine covered work work licensed version 3 GNU Affero General Public License single combined work, convey resulting work. terms License continue apply part covered work, special requirements GNU Affero General Public License, section 13, concerning interaction network apply combination .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_14-revised-versions-of-this-license","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"14. Revised Versions of this License","title":"GNU General Public License","text":"Free Software Foundation may publish revised /new versions GNU General Public License time time. new versions similar spirit present version, may differ detail address new problems concerns. version given distinguishing version number. Program specifies certain numbered version GNU General Public License “later version” applies , option following terms conditions either numbered version later version published Free Software Foundation. Program specify version number GNU General Public License, may choose version ever published Free Software Foundation. Program specifies proxy can decide future versions GNU General Public License can used, proxy’s public statement acceptance version permanently authorizes choose version Program. Later license versions may give additional different permissions. However, additional obligations imposed author copyright holder result choosing follow later version.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_15-disclaimer-of-warranty","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"15. Disclaimer of Warranty","title":"GNU General Public License","text":"WARRANTY PROGRAM, EXTENT PERMITTED APPLICABLE LAW. EXCEPT OTHERWISE STATED WRITING COPYRIGHT HOLDERS /PARTIES PROVIDE PROGRAM “” WITHOUT WARRANTY KIND, EITHER EXPRESSED IMPLIED, INCLUDING, LIMITED , IMPLIED WARRANTIES MERCHANTABILITY FITNESS PARTICULAR PURPOSE. ENTIRE RISK QUALITY PERFORMANCE PROGRAM . PROGRAM PROVE DEFECTIVE, ASSUME COST NECESSARY SERVICING, REPAIR CORRECTION.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_16-limitation-of-liability","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"16. Limitation of Liability","title":"GNU General Public License","text":"EVENT UNLESS REQUIRED APPLICABLE LAW AGREED WRITING COPYRIGHT HOLDER, PARTY MODIFIES /CONVEYS PROGRAM PERMITTED , LIABLE DAMAGES, INCLUDING GENERAL, SPECIAL, INCIDENTAL CONSEQUENTIAL DAMAGES ARISING USE INABILITY USE PROGRAM (INCLUDING LIMITED LOSS DATA DATA RENDERED INACCURATE LOSSES SUSTAINED THIRD PARTIES FAILURE PROGRAM OPERATE PROGRAMS), EVEN HOLDER PARTY ADVISED POSSIBILITY DAMAGES.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"id_17-interpretation-of-sections-15-and-16","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"17. Interpretation of Sections 15 and 16","title":"GNU General Public License","text":"disclaimer warranty limitation liability provided given local legal effect according terms, reviewing courts shall apply local law closely approximates absolute waiver civil liability connection Program, unless warranty assumption liability accompanies copy Program return fee. END TERMS CONDITIONS","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/LICENSE.html","id":"how-to-apply-these-terms-to-your-new-programs","dir":"","previous_headings":"","what":"How to Apply These Terms to Your New Programs","title":"GNU General Public License","text":"develop new program, want greatest possible use public, best way achieve make free software everyone can redistribute change terms. , attach following notices program. safest attach start source file effectively state exclusion warranty; file least “copyright” line pointer full notice found. Also add information contact electronic paper mail. program terminal interaction, make output short notice like starts interactive mode: hypothetical commands show w show c show appropriate parts General Public License. course, program’s commands might different; GUI interface, use “box”. also get employer (work programmer) school, , sign “copyright disclaimer” program, necessary. information , apply follow GNU GPL, see . GNU General Public License permit incorporating program proprietary programs. program subroutine library, may consider useful permit linking proprietary applications library. want , use GNU Lesser General Public License instead License. first, please read .","code":" Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free software, and you are welcome to redistribute it under certain conditions; type 'show c' for details."},{"path":"https://pepijn-devries.github.io/ProTrackR/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Pepijn de Vries. Author, maintainer, data contributor.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"de Vries P (2024). ProTrackR: Manipulate Play 'ProTracker' Modules. R package version 0.4.0, https:://www.github.com/pepijn-devries/ProTrackR/, https://pepijn-devries.github.io/ProTrackR/.","code":"@Manual{, title = {ProTrackR: Manipulate and Play 'ProTracker' Modules}, author = {Pepijn {de Vries}}, year = {2024}, note = {R package version 0.4.0, https:://www.github.com/pepijn-devries/ProTrackR/}, url = {https://pepijn-devries.github.io/ProTrackR/}, }"},{"path":"https://pepijn-devries.github.io/ProTrackR/index.html","id":"protrackr","dir":"","previous_headings":"","what":"Manipulate and Play ProTracker Modules","title":"Manipulate and Play ProTracker Modules","text":"ProTracker music sequencer software 1990s Commodore Amiga (see screenshot version 2.3a right). R package designed read, process play ProTracker module audio files.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Manipulate and Play ProTracker Modules","text":"Get CRAN version Get development version R-Universe","code":"install.packages(\"ProTrackR\") install.packages(\"ProTrackR\", repos = c('https://pepijn-devries.r-universe.dev', 'https://cloud.r-project.org'))"},{"path":"https://pepijn-devries.github.io/ProTrackR/index.html","id":"usage","dir":"","previous_headings":"","what":"Usage","title":"Manipulate and Play ProTracker Modules","text":"package comes bundled tiny chiptune, can easily played like : plethora module files available -line well. can see can download file. also show can select audio sample (number 25) module calculate power spectrum: , play :","code":"library(ProTrackR) |> suppressMessages() data(\"mod.intro\") playMod(mod.intro, verbose = FALSE) elekfunk <- read.module(\"https://api.modarchive.org/downloads.php?moduleid=41529#elektric_funk.mod\") spec <- elekfunk |> PTSample(25) |> waveform() |> tuneR::powspec(wintime = 0.1, steptime = 0.001) image(log10(spec), col = hcl.colors(100, palette = \"Inferno\")) playMod(elekfunk, verbose = FALSE)"},{"path":"https://pepijn-devries.github.io/ProTrackR/index.html","id":"developmental-status","dir":"","previous_headings":"","what":"Developmental status","title":"Manipulate and Play ProTracker Modules","text":"decade since initial release package. Since ’s release lot changed R skill set. still plans package, requires drastic changes. Therefore, apply minimal maintenance package. Meanwhile work complete overhaul released due time new package. new package : similar features current package. implement modern R features try adhere tidyverse principles. implement rendering procedures C++ giving package speed boost. , please enjoy current package .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/index.html","id":"further-reading","dir":"","previous_headings":"","what":"Further reading","title":"Manipulate and Play ProTracker Modules","text":"reading inspiration please look following blog articles: Chiptunes R (1) Chiptunes R (2) Chiptunes R (3)","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"Convert pattern data text clipboard, originating modern MODPlug tracker convert PTPattern PTBlock object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"","code":"MODPlugToPTPattern(text = NULL, what = c(\"PTPattern\", \"PTBlock\"))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"text vector characters, representing MOD pattern data obtained OpenMPT. set NULL (default), text read system's clipboard. character string indicates type object returned. Can \"PTPattern\" \"PTBlock\".","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"Depending value argument , return either PTPattern PTBlock object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"Open MODPlug Tracker (https://openmpt.org) modern music tracker free. can handle ProTracker modules. function assists moving pattern data Open MPT R. Simply select copy pattern data system's clipboard use function import R PTPattern PTBlock object.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/MODPlugToPTPattern.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert MODPlug pattern into a PTPattern object — MODPlugToPTPattern","text":"","code":"if (FALSE) { ## This is what Mod Plug Pattern data looks like on ## the system's clipboard: modPlugPattern <- c(\"ModPlug Tracker MOD\", \"|C-601...A08|C-602...C40|A#403...F06|A#504......\", \"|...01...A08|C-602...C30|........A01|........A02\", \"|...01...A08|C-602......|........A01|C-604......\", \"|...........|C-602......|........A02|........A02\", \"|...01...A08|C-602......|........120|D-604......\", \"|...........|A#504...C08|........A02|........A02\", \"|...01...A08|C-602......|........220|D#604......\", \"|...........|A#504...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|F-604......\", \"|...........|A#604...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|D#604......\", \"|...........|G-604...C08|........A01|........A02\", \"|G-601......|C-602......|........A01|D-604......\", \"|........A08|F-604...C08|...........|........A02\", \"|F-601......|C-602......|...........|C-604......\", \"|........A08|A#504...C08|...........|........A02\", \"|C-601...A08|C-602...C40|A#403...F06|A#504......\", \"|...01...A08|C-602...C30|........A01|........A02\", \"|...01...A08|C-602......|........A01|D-604......\", \"|...........|C-602......|........A02|........A02\", \"|...01...A08|C-602......|........120|F-504......\", \"|...........|A#504...C08|........A02|........A02\", \"|...01...A08|C-602......|........220|G-504......\", \"|...........|A#504...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|A#504......\", \"|...........|A#604...C08|........A01|........A01\", \"|...01...A08|C-602......|........A01|...........\", \"|...........|G-604...C08|........A01|........A01\", \"|G-501......|C-602......|........A01|...........\", \"|........A08|F-504...C08|...........|........A01\", \"|A-501......|C-602......|...........|...........\", \"|........A08|G-504...C08|...........|........A01\", \"|E-601...A08|C-602...C40|D-503......|D-604......\", \"|...01...A08|C-602...C30|........A01|........A02\", \"|...01...A08|C-602......|........A01|E-604......\", \"|...........|C-602......|........A02|........A02\", \"|...01...A08|C-602......|........126|F#604......\", \"|...........|D-604...C08|........A02|........A02\", \"|...01...A08|C-602......|........226|G-604......\", \"|...........|E-604...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|A-604......\", \"|...........|D-604...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|G-604......\", \"|...........|D-604...C08|........A01|........A02\", \"|B-601......|C-602......|........A01|F#604......\", \"|........A08|D-604...C08|...........|........A02\", \"|A-601......|C-602......|...........|E-604......\", \"|........A08|E-504...C08|...........|........A02\", \"|D-601...A08|C-602...C40|C-503......|C-604......\", \"|...01...A08|C-602...C30|........A01|........A02\", \"|...01...A08|C-602......|........A01|D-604......\", \"|...........|C-602......|........A02|........A02\", \"|...01...A08|C-602......|........12B|E-604......\", \"|...........|G-604...C08|........A02|........A02\", \"|...01...A08|C-602......|........22B|F-604......\", \"|...........|G-604...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|G-604......\", \"|...........|E-604...C08|........A01|........A02\", \"|...01...A08|C-602......|........A01|F-604......\", \"|...........|C-604...C08|........A01|........A02\", \"|A-601......|C-602......|........A01|E-604......\", \"|........A08|G-604...C08|...........|........A02\", \"|G-601......|F-604...C08|...........|D-604......\", \"|........A08|C-604...C08|...........|........A02\") ## You could read it directly from the clipboard, ## by leaving text NULL (default). Here we provide ## the text specified above: pat <- MODPlugToPTPattern(modPlugPattern, \"PTPattern\") ## look it is a \"PTPattern\" object now: class(pat) ## we can also only import the first 10 lines as a ## PTBlock: blk <- MODPlugToPTPattern(modPlugPattern[1:10], \"PTBlock\") }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":null,"dir":"Reference","previous_headings":"","what":"Select and copy a range of PTCells into a PTBlock — PTBlock","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"Select copy range PTCells PTPattern PTBlock. allows flexible approach select modify PTCells paste modified cells back PTPattern.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"","code":"# S4 method for PTPattern,numeric,numeric PTBlock(pattern, row, track)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"pattern PTPattern object PTBlock needs selected. row numeric index indices rows needs copied pattern PTBlock. track numeric index indices tracks needs copied pattern PTBlock.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"Returns matrix selected rows tracks pattern. element matrix list holding single PTCell.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"objects ProTrackR package strict operations allowed, order guarantee validity compatibility original ProTracker. makes objects flexible. PTBlock formal S4 object, fact can hardly call object . just matrix, element holds list single PTCell. matrix flexible makes easier select modify cells. flexibility comes cost validity checked level PTCells. PTBlock can pasted back PTPattern pasteBlock method. point validity checked . modifications resulted violation ProTracker standards, able paste block pattern.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTBlock.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Select and copy a range of PTCells into a PTBlock — PTBlock","text":"","code":"data(\"mod.intro\") ## in most ProTrackR methods you can only select a single row or track. ## with a PTBlock your selection is more flexible. ## select rows 4 up to 8 and tracks 2 up to 4, from the first ## pattern table in mod.intro: block <- PTBlock(PTPattern(mod.intro, 1), 4:8, 2:4) ## 'block' is now a matrix with in each a list with a PTCell. ## These can now easily be accessed and modified: cell1 <- block[1, 1][[1]] print(cell1) #> [1] \"C-3 02 000\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-class.html","id":null,"dir":"Reference","previous_headings":"","what":"The PTCell class — PTCell-class","title":"The PTCell class — PTCell-class","text":"PTCell class smallest possible element PTPattern table. holds information note play, frequency, effect kind triggers jumps applied.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The PTCell class — PTCell-class","text":"PTCell class consists vector four raw values, specified 'Slots' section. cell tell PTSample played frequency (corresponding note octave). octave note specified, nothing played, sample started play PTTrack, sample continue playing. PTCell can also hold effect() codes can used add audio effects sample played, change speed/tempo patterns played, trigger jumps positions within PTPattern positions patternOrder table.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"The PTCell class — PTCell-class","text":"data vector class raw length 4. raw data stored identical way stored ProTracker module file. character representation easier understand, ProTrackR package necessary manipulate raw data directly. structure illustrated example. start character representation PTCell example: \"C-3 1B A08\". left-hand part string shows cell play note \"C\" octave 3. middle part shows PTSample number 0x1B = 27 played. right-hand part string shows effect \"A08\" applied (volume slide ). raw representation example \"10 d6 ba 08\", replace actual values symbols: \"sp pp se ee\". \"ss\" represents sample number, \"eee\" represents effect() code \"ppp\" represents period value. correct note octave can derived looking period value period_table (also implemented following methods: note(), octave() periodToChar()). period value 0x0d6 = 214 corresponds note \"C\" octave 3.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-class.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The PTCell class — PTCell-class","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-class.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The PTCell class — PTCell-class","text":"","code":"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\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Coerce to or replace PTCell — PTCell-method","title":"Coerce to or replace PTCell — PTCell-method","text":"method coerce set objects PTCell object. can also used select specific cells PTModule, PTPattern PTTrack objects replace selected PTCell.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Coerce to or replace PTCell — PTCell-method","text":"","code":"# S4 method for raw,missing,missing,missing PTCell(x) # S4 method for character,missing,missing,missing PTCell(x) # S4 method for PTModule,numeric,numeric,numeric PTCell(x, row, track, pattern) # S4 method for PTModule,numeric,numeric,numeric,PTCell PTCell(x, row, track, pattern) <- value # S4 method for PTPattern,numeric,numeric,missing PTCell(x, row, track) # S4 method for PTPattern,numeric,numeric,missing,PTCell PTCell(x, row, track) <- value # S4 method for PTTrack,numeric,missing,missing PTCell(x, row) # S4 method for PTTrack,numeric,missing,missing,PTCell PTCell(x, row) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Coerce to or replace PTCell — PTCell-method","text":"x Object (raw data, character string, PTTrack, PTPattern PTModule) coerce PTCell. See details required format x. row x PTTrack, PTPattern, PTModule, provide index [1,64] row needs coerced PTCell. track x PTPattern, PTModule, provide index [1,4] track needs coerced PTCell. pattern x PTModule, provide index pattern needs coerced PTCell. Note ProTracker uses indices patterns start zero, whereas R uses indices start one. Hence add one index obtained PTModule object (e.g., x$pattern.order) value object PTCell PTCell object specified indices object x needs replaced.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Coerce to or replace PTCell — PTCell-method","text":"PTCell used, PTCell object based x returned. PTCell<- used, object x returned selected PTCell replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Coerce to or replace PTCell — PTCell-method","text":"Method coerce x class PTCell. x raw data, consist vector 4 elements, formatted specified PTCell. x character string, formatted follows: \"NNO SS EEE\", NN note (instance \"C-\" \"#\", dash particular meaning may omitted, hash sign indicates sharp note). Use dash cell holds note. O octave (value 0, dash, note missing, otherwise 1, 2 3). SS sample index number, formatted two hexadecimal digits (example 1A). EEE three hexadecimal digit effect trigger code (details see PTCell). method case sensitive, can use upper lower case. White spaces ignored, can use many like. correct character input x example: \"#2 01 A0F\". blank character representation look like : \"--- 00 000\". x class PTTrack, PTPattern, PTModule, PTCell specified indices (row, track pattern) returned, can replaced.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Coerce to or replace PTCell — PTCell-method","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTCell-method.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Coerce to or replace PTCell — PTCell-method","text":"","code":"## This will create an empty PTCell (equivalent ## to new(\"PTCell\"): PTCell(raw(4)) #> [1] \"--- 00 000\" ## Use a character representation to create ## a new PTCell object. A cell with note ## B in octave 2, sample number 10 and with ## effect '105': cell <- PTCell(\"B-2 0A 105\") data(\"mod.intro\") ## replace PTCell at pattern number 1, track ## number 2, and row number 3: PTCell(mod.intro, 3, 2, 1) <- cell"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTModule-class.html","id":null,"dir":"Reference","previous_headings":"","what":"The PTModule class — PTModule-class","title":"The PTModule class — PTModule-class","text":"PTModule class provides container store modify use ProTracker module files.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTModule-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The PTModule class — PTModule-class","text":"MOD computer file format used primarily represent music. MOD file contains set instruments form samples, number patterns indicating samples played, list patterns play order. simplified structure module class visualised scheme . Details given slot descriptions . class designed hold relevant information ProTracker module (MOD) ProTracker 2.3a documentation used. ProTrackR package may compatible earlier later versions, tested. Use read.module write.module import export objects class PTModule.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTModule-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"The PTModule class — PTModule-class","text":"name vector length 20 class raw, representing name PTModule. name module can extracted replaced name method. pattern.order vector length 128 class raw. raw values represent indices PTPattern tables indicate order patterns need played. Note raw values conform indices used ProTracker, starting zero. R, indices objects start one. Users need compensate discrepancy theirselves. pattern order table can extracted replaced patternOrder method. pattern.order.length single value class raw. Indicates length visible (playable) part pattern order table. Use patternOrderLength method extract replace length pattern order table module. tracker.byte single raw value. Gives indication Tracker used produce module file. ProTracker modules, byte set 0x7f, also used PTModule objects. value changed. tracker.flag vector length 4 class raw, indicates version module, basically reflects many patterns module can hold. details, extracting replacing flag see trackerFlag method. samples List length 31 class \"PTSample\". patterns List class \"PTPattern\" (pattern tables). list least 1 element, can maximum 64 100 elements (depending state trackerFlag).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTModule-class.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"The PTModule class — PTModule-class","text":"https://en.wikipedia.org/wiki/MOD_(file_format) https://wiki.multimedia.cx/index.php?title=Protracker_Module","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTModule-class.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The PTModule class — PTModule-class","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTModule-class.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The PTModule class — PTModule-class","text":"","code":"## create an empty PTModule class object: mod.empty <- new(\"PTModule\") ## get an example PTModule class object ## provided with the ProTrackR package: data(\"mod.intro\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-class.html","id":null,"dir":"Reference","previous_headings":"","what":"The PTPattern class — PTPattern-class","title":"The PTPattern class — PTPattern-class","text":"PTPattern (simply pattern) table determines samples played notes octave, order effects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The PTPattern class — PTPattern-class","text":"PTPattern table (simply pattern) played, 64 rows (see green mark illustration example row) played subsequently specified speed/tempo. Note ProTracker uses row indices start zero. However, package uses indices starting one, conform R language definitions. table four columns (see purple outline illustration example column), representing four audio channels (PTTrack) Commodore Amiga. Samples listed row different tracks played simultaneously. element specific row track referred PTCell (simply cell). cell determines sample needs played note octave kind effect trigger applied. PTPattern-method, objects can coerced pattern table. method can also used extract replace patterns PTModule objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"The PTPattern class — PTPattern-class","text":"data matrix (64 rows, 16 columns) class raw. row contains raw concatenated data 4 PTCell objects, representing 4 audio channels/tracks (PTCell object holds 4 raw values, row holds 4 x 4 = 16 raw values). raw data formatted conform specifications given PTCell documentation.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-class.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The PTPattern class — PTPattern-class","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Coerce to or replace PTPattern — PTPattern-method","title":"Coerce to or replace PTPattern — PTPattern-method","text":"method coerce set objects PTPattern object. can also used select specific patterns PTModule objects replace selected PTPattern.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Coerce to or replace PTPattern — PTPattern-method","text":"","code":"# S4 method for raw,missing PTPattern(x) # S4 method for matrix,missing PTPattern(x) # S4 method for PTModule,numeric PTPattern(x, pattern) # S4 method for PTModule,numeric,PTPattern PTPattern(x, pattern) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Coerce to or replace PTPattern — PTPattern-method","text":"x Object (raw data, 64 16 matrix raw data, 64 4 matrix character strings, PTModule) coerce PTPattern. See details required format x. pattern x PTModule, provide index pattern needs coerced PTPattern. Note ProTracker uses indices patterns start zero, whereas R uses indices start one. Hence add one index obtained PTModule object (e.g., x$pattern.order). value object PTPattern PTPattern object specified index object x needs replaced.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Coerce to or replace PTPattern — PTPattern-method","text":"PTPattern used, PTPattern object based x returned. PTPattern<- used, object x returned selected PTPattern replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Coerce to or replace PTPattern — PTPattern-method","text":"Method coerce x class PTPattern. x 64 16 matrix raw data, row implicitly represents PTCell objects four tracks. PTCell consists four raw values. values row formatted accordingly, values cells track concatenated. See PTCell documentation details raw format PTCell object. x 64 16 matrix character representations PTCell objects, character representation must conform specifications documented PTCell. x class PTModule, PTPattern specified index (pattern) returned, can replaced.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Coerce to or replace PTPattern — PTPattern-method","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPattern-method.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Coerce to or replace PTPattern — PTPattern-method","text":"","code":"## This will create an 'empty' PTPattern with ## all 0x00 values, which is equivalent to ## new(\"PTPattern\"): PTPattern(as.raw(0x00)) #> [,1] [,2] [,3] [,4] #> [1,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [2,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [3,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [4,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [5,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [6,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [7,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [8,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [9,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [10,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [11,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [12,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [13,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [14,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [15,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [16,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [17,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [18,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [19,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [20,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [21,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [22,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [23,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [24,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [25,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [26,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [27,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [28,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [29,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [30,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [31,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [32,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [33,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [34,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [35,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [36,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [37,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [38,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [39,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [40,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [41,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [42,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [43,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [44,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [45,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [46,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [47,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [48,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [49,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [50,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [51,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [52,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [53,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [54,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [55,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [56,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [57,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [58,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [59,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [60,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [61,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [62,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [63,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [64,] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" ## Create a PTPattern based on repeated ## PTCell character representations: pat <- PTPattern(matrix(\"F#2 1A 20A\", 64, 4)) data(\"mod.intro\") ## Replace the first pattern in the patternOrder ## table in mod.intro with 'pat' (don't forget to ## add one (+1) to the index): PTPattern(mod.intro, patternOrder(mod.intro)[1] + 1) <- pat"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"Use PTPattern PTBlock create pattern table MODPlug flavour.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"","code":"PTPatternToMODPlug(x, to.clipboard = T)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"x Either PTPattern object PTBlock object Open MODPlug Tracker pattern created. .clipboard logical value, indicating whether result copied system's clipboard (TRUE) returned vector characters (FALSE).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"Returns invisible NULL argument .clipboard set TRUE. Returns Open MODPlug Tracker flavoured pattern table vector characters set FALSE.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"Open MODPlug Tracker (https://openmpt.org) modern music tracker free. can handle ProTracker modules. function assists moving pattern data R Open MPT.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTPatternToMODPlug.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert PTPattern data into a MODPlug pattern — PTPatternToMODPlug","text":"","code":"if (FALSE) { ## get some pattern data pattern <- PTPattern(mod.intro, 1) ## Now create a MODPlug pattern from this. ## The result is placed on the system clipboard. ## You can check by pasting it into a text ## editor, or better yet, the MODPlug Tracker. PTPatternToMODPlug(pattern) ## If you want to handle the pattern data ## in R: patModPlug <- PTPatternToMODPlug(pattern, F) ## We can do the same with a block: block <- PTBlock(pattern, 1:10, 2:3) PTPatternToMODPlug(block) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-class.html","id":null,"dir":"Reference","previous_headings":"","what":"The PTSample class — PTSample-class","title":"The PTSample class — PTSample-class","text":"class holds audio fragments meta-information, used PTModule objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The PTSample class — PTSample-class","text":"class holds audio fragments meta-information (-called samples), used PTModule objects. class extends tuneR::Wave class tuneR::tuneR. therewith inherits properties cool methods available tuneR::tuneR package. allows , instance, generate power spectra (tuneR::powspec) . can also plot waveform plot-Wave method. See tuneR::tuneR possibilities tuneR::Wave objects. want can also explicitly coerce PTSample tuneR::Wave objects like : (new(\"PTSample\"), \"Wave\"). PTSample class slots additional tuneR::Wave class, ProTracker requires additional information sample respect name, fine tune, volume loop positions. PTSample class restricts enherited tuneR::Wave class hold 8 bit, mono, pcm waves maximum 2*0xffff = 131070 samples, per ProTracker standards. length always even. PTSamples can imported exported using read.sample write.sample methods respectively. tuneR::Wave objects raw data can coerced PTSamples PTSample-method.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"The PTSample class — PTSample-class","text":"name vector length 22 class raw, representing name PTSample. often used include descriptive information PTModule. name sample can extracted replaced name method. finetune Single value class raw. loNybble raw value, represents sample fine tune value ranging -8 7. value used tweak playback sample rate, order tune . Negative values lower sample rate notes, positive values increase sample rate notes. Period values corresponding specific notes fine tune values stored period_table. fine tune value can extracted replace fineTune method. volume Single value class raw. raw data corresponds default playback volume sample. ranges 0 (silent) 64 (maximum volume). volume value can extracted replaced volume method. wloopstart vector length 2 class raw. raw data represent single unsigned number representing starting position loop sample. value 0 loop. value range 0 0xffff. get actual position bytes value needs multiplied 2 can therefore can even. sum loop start position loop length exceed sampleLength. value can extracted replaced loopStart method. wlooplen vector length 2 class raw. raw data represent single unsigned number representing length loop sample. get actual length bytes, value needs multiplied 2 can therefore even. value 2 loop. value range 2 2*0xffff (= 131070) can even (can 0 sample empty). sum loop start position loop length exceed sampleLength. value can extracted replaced loopLength method. left Object class numeric representing waveform left channel. integer values ranging 0 255. can extracted replaced waveform method. right Object class numeric representing right channel. slot inherited tuneR::Wave class numeric(0) PTSamples, mono. stereo Object class logical whether stereo representation. slot inherited tuneR::Wave class. PTSamples always mono, slot value FALSE. samp.rate Object class numeric representing sampling rate. bit Object class numeric representing bit-wise quality. slot inherited tuneR::Wave class. PTSamples always 8 bit quality, value slot always 8. pcm Object class logical indicating whether wave format PCM. slot inherited tuneR::Wave class, PTSamples value always TRUE.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-class.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The PTSample class — PTSample-class","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Coerce to or replace PTSample — PTSample-method","title":"Coerce to or replace PTSample — PTSample-method","text":"method coerce set objects PTSample object. can also used select specific samples PTModule objects replace selected PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Coerce to or replace PTSample — PTSample-method","text":"","code":"# S4 method for Wave,missing PTSample(x) # S4 method for raw,missing PTSample(x) # S4 method for PTModule,numeric PTSample(x, index) # S4 method for PTModule,numeric,PTSample PTSample(x, index) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Coerce to or replace PTSample — PTSample-method","text":"x Object (class tuneR::Wave, vector raw data, class PTModule) needs coerced PTSample object. latter case, object can also replaced. index positive integer index sample PTModule x needs returned replaced. value object PTSample PTSample object specified index object x needs replaced.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Coerce to or replace PTSample — PTSample-method","text":"PTSample used, PTSample object based x returned. PTSample<- used, object x returned selected PTSample replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Coerce to or replace PTSample — PTSample-method","text":"Method coerce x class PTSample. x tuneR::Wave object, method resample . However, sample rate adjusted samples exeeding maximum length 2*0xffff = 131070 clipped maximum length. x stereo sample, converted mono, averaging left right channel. x vector raw data, truncated maximum length 2*0xffff = 131070 exceeded. raw converted rawToSignedInt order represent 8 bit mono waveform. samples must even length (per ProTracker specifications), 0x00 value appended length odd. x class PTModule, PTSample specified index returned, replaced.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Coerce to or replace PTSample — PTSample-method","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTSample-method.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Coerce to or replace PTSample — PTSample-method","text":"","code":"## Create a raw data sine wave: raw_sine <- signedIntToRaw(round(sin(2*pi*(0:275)/276)*127)) data(\"mod.intro\") ## Replace sample number 1 from mod.intro ## with the sine wave: PTSample(mod.intro, 1) <- PTSample(raw_sine) ## Note that the replacement above ## could also (maybe more efficiently) ## be done with the 'waveform' method ## Restore the loop in sample number 1: loopLength(PTSample(mod.intro, 1)) <- 276"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-class.html","id":null,"dir":"Reference","previous_headings":"","what":"The PTTrack class — PTTrack-class","title":"The PTTrack class — PTTrack-class","text":"four audio channels Commodore Amiga represented tracks (PTTrack class) PTPattern.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The PTTrack class — PTTrack-class","text":"Commodore Amiga original chipset supported four audio channels. Meaning audio played simultaneously independently channels. Two channels (2 3) hardware-mixed fully right stereo outputs two (1 4) fully left stereo outputs. class represents single channel, reffered track. PTPattern composed four channels. ProTracker pattern consists 64 rows, PTTrack object also (implicitly) composed 64 PTCell objects. Use PTTrack-method construct coerce objects PTTrack-class object, replace object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"The PTTrack class — PTTrack-class","text":"data matrix (64 rows, 4 columns) class raw. row implicetely represents PTCell object, raw data formatted specified PTCell documentation. Use PTCell-method make element PTTrack object explictly class PTCell. Row numbers correspond row numbers PTPattern objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-class.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The PTTrack class — PTTrack-class","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-class.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The PTTrack class — PTTrack-class","text":"","code":"data(\"mod.intro\") ## Get track number 2 from pattern ## number 1 of mod.intro: chan1 <- PTTrack(mod.intro, 2, 1) ## Create a blank track: chan2 <- new(\"PTTrack\") ## Get two more tracks: chan3 <- PTTrack(mod.intro, 1, 2) chan4 <- PTTrack(mod.intro, 4, 3) ## combine the four tracks in a ## new PTPattern: patt <- PTPattern(cbind( as.character(chan1), as.character(chan2), as.character(chan3), as.character(chan4) ))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":null,"dir":"Reference","previous_headings":"","what":"Coerce to or replace PTTrack — PTTrack-method","title":"Coerce to or replace PTTrack — PTTrack-method","text":"method coerce set objects PTTrack object. can also used select specific tracks PTModule PTPattern objects replace selected PTTrack.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Coerce to or replace PTTrack — PTTrack-method","text":"","code":"# S4 method for raw,missing,missing PTTrack(x) # S4 method for matrix,missing,missing PTTrack(x) # S4 method for character,missing,missing PTTrack(x) # S4 method for PTModule,numeric,numeric PTTrack(x, track, pattern) # S4 method for PTModule,numeric,numeric,PTTrack PTTrack(x, track, pattern) <- value # S4 method for PTPattern,numeric,missing PTTrack(x, track) # S4 method for PTPattern,numeric,missing,PTTrack PTTrack(x, track) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Coerce to or replace PTTrack — PTTrack-method","text":"x Object (raw data, 64 4 matrix raw data, vector character strings, PTPattern PTModule) coerce PTTrack. See details required format x track x PTPattern, PTModule, provide index [1,4] track needs coerced PTTrack. pattern x PTModule, provide index pattern needs coerced PTTrack. Note ProTracker uses indices patterns start zero, whereas R uses indices start one. Hence add one index obtained PTModule object (e.g., x$pattern.order) value object PTTrack PTTrack object specified indices object x needs replaced.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Coerce to or replace PTTrack — PTTrack-method","text":"PTTrack used, PTTrack object based x returned. PTTrack<- used, object x returned selected PTTrack replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Coerce to or replace PTTrack — PTTrack-method","text":"Method coerce x class PTTrack. x 64 4 matrix raw data, row implicitly represents PTCell object formatted accordingly. See PTCell documentation details. x 64 element vector character representation PTCell objects, character representation must conform specifications documented PTCell. x class PTPattern, PTModule, PTTrack specified indices (track pattern) returned, can replaced.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Coerce to or replace PTTrack — PTTrack-method","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/PTTrack-method.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Coerce to or replace PTTrack — PTTrack-method","text":"","code":"## This will create an 'empty' PTTrack with all nul ## values, which is equivalent to new(\"PTTrack\"): PTTrack(as.raw(0x00)) #> [1] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [6] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [11] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [16] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [21] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [26] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [31] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [36] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [41] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [46] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [51] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [56] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" #> [61] \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" \"--- 00 000\" ## This will generate a PTTrack from a repeated ## character representation of a PTCell: chan <- PTTrack(rep(\"C-3 01 C20\", 64)) data(\"mod.intro\") ## This will replace the PTTrack at pattern ## number 1, track number 2 of mod.intro with chan: PTTrack(mod.intro, 2, 1) <- chan"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":null,"dir":"Reference","previous_headings":"","what":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"ProTrackR package can import export module files music tracker ProTracker Commodore Amiga machine. package can also render play module files. Furthermore, package provides means manipulate analyse modules.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"ProTracker popular music tracker sequence music Commodore Amiga machine. package offers opportunity import, export, manipulate play ProTracker module files. Even though file format considered archaic, still remains popular date. package intends contribute popularity therewith keeping legacy ProTracker Commodore Amiga alive. experience ProTracker (music tracker) promote ease use package. However, provided documentation exernal links help , starting scratch. good place start reading manual documentation PTModule, describes structure ProTracker module implemented package. also look documentation PTPattern, PTTrack, PTCell PTSample classes, elements PTModule.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":"current-issues-and-future-developments","dir":"Reference","previous_headings":"","what":"Current issues and future developments","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"development state package, please check README section GitHub. Currently, effect commands implemented, although common ones . work implementing remaining effect commands (see also section ). ProTracker also specific interpretations currently implemented correctly. Sample switching (module switches one sample number another, without specifying new note) also something implemented differently varying module players. package currently implement switches conform ProTracker specs. Period values, dictate fequency samples played, censored Amiga hardware software coded limits original ProTracker. Documentation limits ambiguous. made first attempt implement bounds current version package consulting Olav Sørensen (created ProTracker clone modern machines: https://16-bits.org/pt.php). really grateful input checks actual Amiga. also realise documentation package may bit cryptic points. like improve can, need fresh perspective users. please feel free provide constructive feedback can improve quality package.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":"protracker-effect-commands","dir":"Reference","previous_headings":"","what":"ProTracker Effect Commands","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"explained , effect commands composed three hexadecimal digits. first digit indicates type effect, trigger jump applied, latter two digits indicate magnitude effect. exception commands starting digit 'E', first two digits specify type effect last digit represents magnitude. available effect commands (codes ) listed magnitudes labelled 'x' 'xy'. overview shows commands used kind effect whether implemented (brackets) playing routines package. first words speed tempo ProTracker. two sides coin, affect overall speed patterns played. Speed defined number 'ticks' per pattern row tempo sets duration tick. increasing speed value, decreasing tempo, overall playing speed pattern table reduced. default tempo 125, duration tick equals vertical blank period monitor (1/50 seconds PAL 1/60 seconds NTSC video systems). can set Fxy command. Commodore Amiga chip responsible audio output (Paula), audio playback samples can controlled user two ways: playback rate sample can changed specifying 'period' values (see e.g. periodToSampleRate) specifying volume linearly scaled 0 (silent) 64 (maximum). Period volumes can changed start tick. effects affected speed setting, tempo. now, without ado, overview effect commands:","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":"test-cases","dir":"Reference","previous_headings":"","what":"Test cases","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"interpretation effect commands can tedious. often vary module players. Even ProTracker can quirky (unexpected) ways handling effect commands. package aims staying close ProTracker 'standards' possible. current version already implements effect commands common quirks comes interpretation. subjective estimate correctly play roughly 95% ProTracker modules ModArchive. Less common unexpected behaviour documented team behind OpenMPT, developed several test cases. table shows test cases package passes .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"basic information ProTracker: https://en.wikipedia.org/wiki/Protracker basic information music trackers general: https://en.wikipedia.org/wiki/Music_tracker tutorial ProTracker YouTube: https://www.youtube.com/playlist?list=PLVoRT-Mqwas9gvmCRtOusCQSKNQNf6lTc informal extensive technical documentation ProTracker: ftp://ftp.modland.com/pub/documents/format_documentation/Protracker%20effects%20(FireLight)%20(.mod).txt","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/ProTrackR-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Manipulate and play ProTracker Modules. A description of the package,\nProTracker effect commands and test cases. — ProTrackR-package","text":"Maintainer: Pepijn de Vries pepijn.devries@outlook.com (ORCID) [data contributor]","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":null,"dir":"Reference","previous_headings":"","what":"Append a PTPattern to a PTModule — appendPattern","title":"Append a PTPattern to a PTModule — appendPattern","text":"Appends specified PTPattern PTModule.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Append a PTPattern to a PTModule — appendPattern","text":"","code":"# S4 method for PTModule,PTPattern appendPattern(x, pattern)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Append a PTPattern to a PTModule — appendPattern","text":"x PTModule object PTPattern appended. pattern PTPattern object appended PTModule x.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Append a PTPattern to a PTModule — appendPattern","text":"Returns PTModule, PTPattern appended.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Append a PTPattern to a PTModule — appendPattern","text":"Depending trackerFlag, ProTracker module can hold either 64 100 pattern tables. long number pattern tables maximum, new pattern tables can added module function. patternOrder table hold maximum index available pattern tables module, otherwise, module valid. maximum index increases, appending pattern table, patternOrder table updated. appendPattern method automatically, replacing first non-unique index order table, outside current order table's length, new maximum index. possible, highest element order table set hold maximum index.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Append a PTPattern to a PTModule — appendPattern","text":"per ProTracker specification, pattern indices stored PTModule obtained patternOrder start 0. Whereas R starts indexing 1. Beware discrepancy.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Append a PTPattern to a PTModule — appendPattern","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/appendPattern.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Append a PTPattern to a PTModule — appendPattern","text":"","code":"data(\"mod.intro\") ## append an empty pattern to mod.intro mod.intro <- appendPattern(mod.intro, new(\"PTPattern\")) ## append a copy of pattern # 1 (this is pattern #0 in the ## patternOrder table) to mod.intro mod.intro <- appendPattern(mod.intro, PTPattern(mod.intro, 1))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":null,"dir":"Reference","previous_headings":"","what":"Character representation of ProTrackR objects — as.character","title":"Character representation of ProTrackR objects — as.character","text":"Create character representation PTCell, PTTrack PTPattern objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Character representation of ProTrackR objects — as.character","text":"","code":"# S4 method for PTCell as.character(x) # S4 method for PTTrack as.character(x) # S4 method for PTPattern as.character(x)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Character representation of ProTrackR objects — as.character","text":"x object following classes: PTCell, PTTrack PTPattern.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Character representation of ProTrackR objects — as.character","text":"Returns single character string x class PTCell. Returns vector length 64 type character x class PTTrack. Returns 64 4 matrix type character x class PTPattern.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Character representation of ProTrackR objects — as.character","text":"PTCell element PTTrack turn element PTPattern. PTPattern tells tracker sample play frequency four audio channels effects. PTCell essence holds information described documentation PTCell. Data objects stored objects raw form, save working memory comply ProTracker file specifications. raw data easy interpret, method provided make life (interpretation objects) easier. method generates character representation three objects. character representations can coerced back original classes following methods: PTCell-method, PTTrack-method PTPattern-method.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Character representation of ProTrackR objects — as.character","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.character.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Character representation of ProTrackR objects — as.character","text":"","code":"data(\"mod.intro\") as.character( PTCell(mod.intro, 1, 1, 1)) #> [1] \"C-3 01 A08\" as.character(PTTrack(mod.intro, 1, 1)) #> [1] \"C-3 01 A08\" \"--- 01 A08\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" #> [6] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" #> [11] \"--- 01 A08\" \"--- 00 000\" \"G-3 01 000\" \"--- 00 A08\" \"F-3 01 000\" #> [16] \"--- 00 A08\" \"C-3 01 A08\" \"--- 01 A08\" \"--- 01 A08\" \"--- 00 000\" #> [21] \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" #> [26] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"G-2 01 000\" \"--- 00 A08\" #> [31] \"A-2 01 000\" \"--- 00 A08\" \"E-3 01 A08\" \"--- 01 A08\" \"--- 01 A08\" #> [36] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" #> [41] \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"B-3 01 000\" #> [46] \"--- 00 A08\" \"A-3 01 000\" \"--- 00 A08\" \"D-3 01 A08\" \"--- 01 A08\" #> [51] \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" #> [56] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" #> [61] \"A-3 01 000\" \"--- 00 A08\" \"G-3 01 000\" \"--- 00 A08\" as.character(PTPattern(mod.intro, 1)) #> [,1] [,2] [,3] [,4] #> [1,] \"C-3 01 A08\" \"C-3 02 C40\" \"A#1 03 F06\" \"A#2 04 000\" #> [2,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [3,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"C-3 04 000\" #> [4,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [5,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 120\" \"D-3 04 000\" #> [6,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [7,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 220\" \"D#3 04 000\" #> [8,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [9,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [10,] \"--- 00 000\" \"A#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [11,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [12,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [13,] \"G-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"D-3 04 000\" #> [14,] \"--- 00 A08\" \"F-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [15,] \"F-3 01 000\" \"C-3 02 000\" \"--- 00 000\" \"C-3 04 000\" #> [16,] \"--- 00 A08\" \"A#2 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [17,] \"C-3 01 A08\" \"C-3 02 C40\" \"A#1 03 F06\" \"A#2 04 000\" #> [18,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [19,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D-3 04 000\" #> [20,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [21,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 120\" \"F-2 04 000\" #> [22,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [23,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 220\" \"G-2 04 000\" #> [24,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [25,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"A#2 04 000\" #> [26,] \"--- 00 000\" \"A#3 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [27,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [28,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [29,] \"G-2 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [30,] \"--- 00 A08\" \"F-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [31,] \"A-2 01 000\" \"C-3 02 000\" \"--- 00 000\" \"--- 00 000\" #> [32,] \"--- 00 A08\" \"G-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [33,] \"E-3 01 A08\" \"C-3 02 C40\" \"D-2 03 000\" \"D-3 04 000\" #> [34,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [35,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [36,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [37,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 126\" \"F#3 04 000\" #> [38,] \"--- 00 000\" \"D-3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [39,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 226\" \"G-3 04 000\" #> [40,] \"--- 00 000\" \"E-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [41,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"A-3 04 000\" #> [42,] \"--- 00 000\" \"D-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [43,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"G-3 04 000\" #> [44,] \"--- 00 000\" \"D-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [45,] \"B-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [46,] \"--- 00 A08\" \"D-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [47,] \"A-3 01 000\" \"C-3 02 000\" \"--- 00 000\" \"E-3 04 000\" #> [48,] \"--- 00 A08\" \"E-2 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [49,] \"D-3 01 A08\" \"C-3 02 C40\" \"C-2 03 000\" \"C-3 04 000\" #> [50,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [51,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D-3 04 000\" #> [52,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [53,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 12B\" \"E-3 04 000\" #> [54,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [55,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 22B\" \"F-3 04 000\" #> [56,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [57,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"G-3 04 000\" #> [58,] \"--- 00 000\" \"E-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [59,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [60,] \"--- 00 000\" \"C-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [61,] \"A-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [62,] \"--- 00 A08\" \"G-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [63,] \"G-3 01 000\" \"F-3 04 C08\" \"--- 00 000\" \"D-3 04 000\" #> [64,] \"--- 00 A08\" \"C-3 04 C08\" \"--- 00 000\" \"--- 00 A02\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract and replace raw data — as.raw","title":"Extract and replace raw data — as.raw","text":"Information PTCell, PTTrack PTPattern objects stored raw values. method can used extract replace raw data. PTModule objects can also converted raw data replaced .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract and replace raw data — as.raw","text":"","code":"# S4 method for PTCell as.raw(x) # S4 method for PTCell,raw as.raw(x) <- value # S4 method for PTTrack as.raw(x) # S4 method for PTTrack,matrix as.raw(x) <- value # S4 method for PTPattern as.raw(x) # S4 method for PTPattern,matrix as.raw(x) <- value # S4 method for PTModule as.raw(x)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract and replace raw data — as.raw","text":"x PTCell, PTTrack PTPattern object, raw data needs extracted replaced. PTModule object also allowed, object replaced. value raw data raw data object x needs replaced. x PTCell object, value vector four raw values (conform specifications provided documentation PTCell). x PTTrack object, value 64 4 matrix holding raw values (conform specifications provided documentation PTTrack). x PTPattern object, value 64 16 matrix holding raw values (conform specifications provided documentation PTPattern).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract and replace raw data — as.raw","text":".raw, length 4 vector, 64 4 matrix 64 16 matrix raw data returned, x class PTCell, PTTrack PTPattern, respectively. x PTModule object, raw data returned format ProTracker file format. .raw<-, copy object x returned raw data replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract and replace raw data — as.raw","text":"PTCell element PTTrack turn element PTPattern. PTPattern tells tracker sample play frequency four audio channels effects. PTCell essence holds information described documentation PTCell. Data objects stored objects raw form, save working memory comply ProTracker file specifications (see documentation classes details). method can used extract replace raw data. PTModule object complex structure can also converted raw data (way stored ProTracker module file). However, object replaced raw data.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract and replace raw data — as.raw","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/as.raw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract and replace raw data — as.raw","text":"","code":"data(\"mod.intro\") ## Get the raw data of the PTCell at ## pattern #1, track #1 and row #1 ## of mod.intro: as.raw(PTCell(mod.intro, 1, 1, 1)) #> [1] 00 d6 1a 08 ## idem for PTTrack #1 of pattern #1: as.raw(PTTrack(mod.intro, 1, 1)) #> [,1] [,2] [,3] [,4] #> [1,] 00 d6 1a 08 #> [2,] 00 00 1a 08 #> [3,] 00 00 1a 08 #> [4,] 00 00 00 00 #> [5,] 00 00 1a 08 #> [6,] 00 00 00 00 #> [7,] 00 00 1a 08 #> [8,] 00 00 00 00 #> [9,] 00 00 1a 08 #> [10,] 00 00 00 00 #> [11,] 00 00 1a 08 #> [12,] 00 00 00 00 #> [13,] 00 8f 10 00 #> [14,] 00 00 0a 08 #> [15,] 00 a0 10 00 #> [16,] 00 00 0a 08 #> [17,] 00 d6 1a 08 #> [18,] 00 00 1a 08 #> [19,] 00 00 1a 08 #> [20,] 00 00 00 00 #> [21,] 00 00 1a 08 #> [22,] 00 00 00 00 #> [23,] 00 00 1a 08 #> [24,] 00 00 00 00 #> [25,] 00 00 1a 08 #> [26,] 00 00 00 00 #> [27,] 00 00 1a 08 #> [28,] 00 00 00 00 #> [29,] 01 1d 10 00 #> [30,] 00 00 0a 08 #> [31,] 00 fe 10 00 #> [32,] 00 00 0a 08 #> [33,] 00 aa 1a 08 #> [34,] 00 00 1a 08 #> [35,] 00 00 1a 08 #> [36,] 00 00 00 00 #> [37,] 00 00 1a 08 #> [38,] 00 00 00 00 #> [39,] 00 00 1a 08 #> [40,] 00 00 00 00 #> [41,] 00 00 1a 08 #> [42,] 00 00 00 00 #> [43,] 00 00 1a 08 #> [44,] 00 00 00 00 #> [45,] 00 71 10 00 #> [46,] 00 00 0a 08 #> [47,] 00 7f 10 00 #> [48,] 00 00 0a 08 #> [49,] 00 be 1a 08 #> [50,] 00 00 1a 08 #> [51,] 00 00 1a 08 #> [52,] 00 00 00 00 #> [53,] 00 00 1a 08 #> [54,] 00 00 00 00 #> [55,] 00 00 1a 08 #> [56,] 00 00 00 00 #> [57,] 00 00 1a 08 #> [58,] 00 00 00 00 #> [59,] 00 00 1a 08 #> [60,] 00 00 00 00 #> [61,] 00 7f 10 00 #> [62,] 00 00 0a 08 #> [63,] 00 8f 10 00 #> [64,] 00 00 0a 08 ## idem for PTPattern #1: as.raw(PTPattern(mod.intro, 1)) #> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] #> [1,] 00 d6 1a 08 00 d6 2c 40 01 e0 3f 06 00 #> [2,] 00 00 1a 08 00 d6 2c 30 00 00 0a 01 00 #> [3,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [4,] 00 00 00 00 00 d6 20 00 00 00 0a 02 00 #> [5,] 00 00 1a 08 00 d6 20 00 00 00 01 20 00 #> [6,] 00 00 00 00 00 f0 4c 08 00 00 0a 02 00 #> [7,] 00 00 1a 08 00 d6 20 00 00 00 02 20 00 #> [8,] 00 00 00 00 00 f0 4c 08 00 00 0a 01 00 #> [9,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [10,] 00 00 00 00 00 78 4c 08 00 00 0a 01 00 #> [11,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [12,] 00 00 00 00 00 8f 4c 08 00 00 0a 01 00 #> [13,] 00 8f 10 00 00 d6 20 00 00 00 0a 01 00 #> [14,] 00 00 0a 08 00 a0 4c 08 00 00 00 00 00 #> [15,] 00 a0 10 00 00 d6 20 00 00 00 00 00 00 #> [16,] 00 00 0a 08 00 f0 4c 08 00 00 00 00 00 #> [17,] 00 d6 1a 08 00 d6 2c 40 01 e0 3f 06 00 #> [18,] 00 00 1a 08 00 d6 2c 30 00 00 0a 01 00 #> [19,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [20,] 00 00 00 00 00 d6 20 00 00 00 0a 02 00 #> [21,] 00 00 1a 08 00 d6 20 00 00 00 01 20 01 #> [22,] 00 00 00 00 00 f0 4c 08 00 00 0a 02 00 #> [23,] 00 00 1a 08 00 d6 20 00 00 00 02 20 01 #> [24,] 00 00 00 00 00 f0 4c 08 00 00 0a 01 00 #> [25,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [26,] 00 00 00 00 00 78 4c 08 00 00 0a 01 00 #> [27,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [28,] 00 00 00 00 00 8f 4c 08 00 00 0a 01 00 #> [29,] 01 1d 10 00 00 d6 20 00 00 00 0a 01 00 #> [30,] 00 00 0a 08 01 40 4c 08 00 00 00 00 00 #> [31,] 00 fe 10 00 00 d6 20 00 00 00 00 00 00 #> [32,] 00 00 0a 08 01 1d 4c 08 00 00 00 00 00 #> [33,] 00 aa 1a 08 00 d6 2c 40 01 7d 30 00 00 #> [34,] 00 00 1a 08 00 d6 2c 30 00 00 0a 01 00 #> [35,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [36,] 00 00 00 00 00 d6 20 00 00 00 0a 02 00 #> [37,] 00 00 1a 08 00 d6 20 00 00 00 01 26 00 #> [38,] 00 00 00 00 00 be 4c 08 00 00 0a 02 00 #> [39,] 00 00 1a 08 00 d6 20 00 00 00 02 26 00 #> [40,] 00 00 00 00 00 aa 4c 08 00 00 0a 01 00 #> [41,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [42,] 00 00 00 00 00 be 4c 08 00 00 0a 01 00 #> [43,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [44,] 00 00 00 00 00 be 4c 08 00 00 0a 01 00 #> [45,] 00 71 10 00 00 d6 20 00 00 00 0a 01 00 #> [46,] 00 00 0a 08 00 be 4c 08 00 00 00 00 00 #> [47,] 00 7f 10 00 00 d6 20 00 00 00 00 00 00 #> [48,] 00 00 0a 08 01 53 4c 08 00 00 00 00 00 #> [49,] 00 be 1a 08 00 d6 2c 40 01 ac 30 00 00 #> [50,] 00 00 1a 08 00 d6 2c 30 00 00 0a 01 00 #> [51,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [52,] 00 00 00 00 00 d6 20 00 00 00 0a 02 00 #> [53,] 00 00 1a 08 00 d6 20 00 00 00 01 2b 00 #> [54,] 00 00 00 00 00 8f 4c 08 00 00 0a 02 00 #> [55,] 00 00 1a 08 00 d6 20 00 00 00 02 2b 00 #> [56,] 00 00 00 00 00 8f 4c 08 00 00 0a 01 00 #> [57,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [58,] 00 00 00 00 00 aa 4c 08 00 00 0a 01 00 #> [59,] 00 00 1a 08 00 d6 20 00 00 00 0a 01 00 #> [60,] 00 00 00 00 00 d6 4c 08 00 00 0a 01 00 #> [61,] 00 7f 10 00 00 d6 20 00 00 00 0a 01 00 #> [62,] 00 00 0a 08 00 8f 4c 08 00 00 00 00 00 #> [63,] 00 8f 10 00 00 a0 4c 08 00 00 00 00 00 #> [64,] 00 00 0a 08 00 d6 4c 08 00 00 00 00 00 #> [,14] [,15] [,16] #> [1,] f0 40 00 #> [2,] 00 0a 02 #> [3,] d6 40 00 #> [4,] 00 0a 02 #> [5,] be 40 00 #> [6,] 00 0a 02 #> [7,] b4 40 00 #> [8,] 00 0a 02 #> [9,] a0 40 00 #> [10,] 00 0a 02 #> [11,] b4 40 00 #> [12,] 00 0a 02 #> [13,] be 40 00 #> [14,] 00 0a 02 #> [15,] d6 40 00 #> [16,] 00 0a 02 #> [17,] f0 40 00 #> [18,] 00 0a 02 #> [19,] be 40 00 #> [20,] 00 0a 02 #> [21,] 40 40 00 #> [22,] 00 0a 02 #> [23,] 1d 40 00 #> [24,] 00 0a 02 #> [25,] f0 40 00 #> [26,] 00 0a 01 #> [27,] 00 00 00 #> [28,] 00 0a 01 #> [29,] 00 00 00 #> [30,] 00 0a 01 #> [31,] 00 00 00 #> [32,] 00 0a 01 #> [33,] be 40 00 #> [34,] 00 0a 02 #> [35,] aa 40 00 #> [36,] 00 0a 02 #> [37,] 97 40 00 #> [38,] 00 0a 02 #> [39,] 8f 40 00 #> [40,] 00 0a 02 #> [41,] 7f 40 00 #> [42,] 00 0a 02 #> [43,] 8f 40 00 #> [44,] 00 0a 02 #> [45,] 97 40 00 #> [46,] 00 0a 02 #> [47,] aa 40 00 #> [48,] 00 0a 02 #> [49,] d6 40 00 #> [50,] 00 0a 02 #> [51,] be 40 00 #> [52,] 00 0a 02 #> [53,] aa 40 00 #> [54,] 00 0a 02 #> [55,] a0 40 00 #> [56,] 00 0a 02 #> [57,] 8f 40 00 #> [58,] 00 0a 02 #> [59,] a0 40 00 #> [60,] 00 0a 02 #> [61,] aa 40 00 #> [62,] 00 0a 02 #> [63,] be 40 00 #> [64,] 00 0a 02 ## replace raw data of PTCell 1, 1, 1 ## with that of PTCell 2, 1, 1: as.raw(PTCell(mod.intro, 1, 1, 1)) <- as.raw(PTCell(mod.intro, 2, 1, 1))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":null,"dir":"Reference","previous_headings":"","what":"Clear all samples from module — clearSamples","title":"Clear all samples from module — clearSamples","text":"Remove PTSamples PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Clear all samples from module — clearSamples","text":"","code":"# S4 method for PTModule clearSamples(mod)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Clear all samples from module — clearSamples","text":"mod PTModule object samples needs removed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Clear all samples from module — clearSamples","text":"Returns copy object mod samples removed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Clear all samples from module — clearSamples","text":"Conform original ProTracker, method removes patterns PTSamples module. keep patterns (PTPattern) patternOrder info.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Clear all samples from module — clearSamples","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSamples.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Clear all samples from module — clearSamples","text":"","code":"data(mod.intro) ## 'clear.mod' is a copy of 'mod.intro' without the ## samples. It still holds all pattern tables and ## pattern order info. clear.mod <- clearSamples(mod.intro)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":null,"dir":"Reference","previous_headings":"","what":"Clear all pattern info from module — clearSong","title":"Clear all pattern info from module — clearSong","text":"Remove patterns (PTPattern) patternOrder info PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Clear all pattern info from module — clearSong","text":"","code":"# S4 method for PTModule clearSong(mod)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Clear all pattern info from module — clearSong","text":"mod PTModule object pattern (order) info needs removed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Clear all pattern info from module — clearSong","text":"Returns copy object mod pattern (order) info removed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Clear all pattern info from module — clearSong","text":"Conform original ProTracker, method removes patterns (PTPattern) patternOrder info module. keep audio PTSamples.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Clear all pattern info from module — clearSong","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/clearSong.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Clear all pattern info from module — clearSong","text":"","code":"data(mod.intro) ## 'clear.mod' is a copy of 'mod.intro' without the ## pattern (order) info. It still has the audio samples. clear.mod <- clearSong(mod.intro)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":null,"dir":"Reference","previous_headings":"","what":"Remove a PTPattern table from a PTModule object — deletePattern","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"method removes PTPattern PTModule object updates patternOrder table accordingly.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"","code":"# S4 method for PTModule,numeric deletePattern(x, index)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"x PTModule PTPattern needs removed. index numeric index PTPattern table needs removed. index 1 patternLength. possible delete multiple patterns simultaneously method. PTModule always hold least 1 pattern table, therefore, last PTPattern table deleted.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"Returns PTModule selected PTPattern deleted.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"method safely removes PTPattern PTModule object, guarding validity PTModule object. therefore also updates patternOrder table, renumbering indices listed . index removed object replaced zero patternOrder table.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"per ProTracker specification, pattern indices stored PTModule obtained patternOrder start 0. Whereas R starts indexing 1. Beware discrepancy.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/deletePattern.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Remove a PTPattern table from a PTModule object — deletePattern","text":"","code":"data(\"mod.intro\") print(mod.intro) #> #> PTModule Object: #> \tModule name:\t\t\tintro\t\t\t #> \tNumber of samples:\t\t4\t\t #> \tNumber of patterns:\t\t4\t\t #> \tPattern order table length:\t9\t ## delete pattern #2 from mod.intro: mod.intro <- deletePattern(mod.intro, 2) print(mod.intro) #> #> PTModule Object: #> \tModule name:\t\t\tintro\t\t\t #> \tNumber of samples:\t\t4\t\t #> \tNumber of patterns:\t\t3\t\t #> \tPattern order table length:\t9"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or replace effect/trigger codes — effect","title":"Extract or replace effect/trigger codes — effect","text":"3 right-hand symbols character representation PTCell represent effect trigger code. method can used extract replace code.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or replace effect/trigger codes — effect","text":"","code":"# S4 method for PTCell effect(x) # S4 method for PTCell,character effect(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or replace effect/trigger codes — effect","text":"x PTCell effect code needs extracted. value character string containing three hexadecimal digit effect code. hexadecimal codes accepted, produce meaningful effects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract or replace effect/trigger codes — effect","text":"effect, character string three hexadecimal digit effect code returned. effect<-, copy object x effect code value returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract or replace effect/trigger codes — effect","text":"PTCell represented character string, last three symbols represent hexadecimal effect trigger code. general first three symbols indicates type effect trigger, whereas latter two generally indicate magnitude position effects triggers. Effects can instance volume frequency slides. codes can also affect module tempo cause position jumps. replacing code, three digit hexadecimal character strings accepted, although codes represent valid effect trigger. See https://wiki.openmpt.org/Manual:_Effect_Reference#MOD_Effect_Commands valid list effect codes.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract or replace effect/trigger codes — effect","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/effect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract or replace effect/trigger codes — effect","text":"","code":"data(\"mod.intro\") ## the PTCell in row #1, of pattern #1, track #1 ## has effect code \"A08\", which is a volume slide down (0xA) ## with speed 0x8: effect(PTCell(mod.intro, 1, 1, 1)) #> [1] \"A08\" ## this is how you can change an effect: cell <- PTCell(\"C-2 01 000\") effect(cell) <- \"C20\" ## the above expression sets the volume (effect 0xC) ## to 50% (0x20 which is halve of the maximum 0x40)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":null,"dir":"Reference","previous_headings":"","what":"Fine tune a PTSample — fineTune","title":"Fine tune a PTSample — fineTune","text":"Extract replace fine tune value PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fine tune a PTSample — fineTune","text":"","code":"# S4 method for PTSample fineTune(sample) # S4 method for PTSample,numeric fineTune(sample) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fine tune a PTSample — fineTune","text":"sample PTSample fine tune value needs extracted replace. value numeric value ranging -8 7, representing fine tune.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fine tune a PTSample — fineTune","text":"fineTune fine tune value, represented integer value ranging -8 7, returned. fineTune<- PTSample sample, updated fine tune value, returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fine tune a PTSample — fineTune","text":"PTSamples can tuned fine tune values. values range -8 7 affect playback sample rate specific notes (see period_table). method can used extract value, safely replace .","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Fine tune a PTSample — fineTune","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fineTune.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fine tune a PTSample — fineTune","text":"","code":"data(\"mod.intro\") ## get the finetune of the first sample of mod.intro: fineTune(PTSample(mod.intro, 1)) #> [1] 0 ## Let's tweak the finetune of the first sample of ## mod.intro to -1: fineTune(PTSample(mod.intro, 1)) <- -1"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":null,"dir":"Reference","previous_headings":"","what":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"Try fix non-valid PTModule objects order meet ProTracker specs pass validity tests.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"","code":"# S4 method for PTModule,logical fix.PTModule(mod, verbose = T) # S4 method for PTModule,missing fix.PTModule(mod)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"mod PTModule object needs fixing. verbose default value TRUE, method prints progress report sink. set FALSE, progress report suppressed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"Returns copy object mod non-conformaties attempted fixed. (Attempted) fixes listed printed progress report.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"Almost file can read PTModule object (using read.module) validity ignored unexpected end file reached. package's object validity strickly testing compliance ProTracker specifications. many modules created trackers (often play just well ProTracker) desirable convert object ProTracker specs. method attempts , fixing aspect, also tested object validity functions. Note attempts guarantee success, `fixed' modules may play intended.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"current version, pattern data checked non-conformaties fixed.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/fix.PTModule.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Attempt to fix PTModule to ProTracker specs — fix.PTModule","text":"","code":"if (FALSE) { data(\"mod.intro\") ## Let's do something illegal and destroy mod.intro: mod.intro@pattern.order <- mod.intro@pattern.order[1:9] ## We should have used the 'patternOrder'-method to ## change the pattern order. Now we have broken the ## object: validObject(mod.intro, TRUE) ## No worries, we can fix it: mod.intro <- fix.PTModule(mod.intro) ## See, it's all OK again: validObject(mod.intro, TRUE) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/funk_table.html","id":null,"dir":"Reference","previous_headings":"","what":"ProTracker Funk Table — funk_table","title":"ProTracker Funk Table — funk_table","text":"Small list numbers used obscure audio effect ProTracker","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/funk_table.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"ProTracker Funk Table — funk_table","text":"numeric vector length 16 holding values used ProTracker funk repeat effects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/funk_table.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ProTracker Funk Table — funk_table","text":"dataset included completeness sake. yet used class, method function ProTrackR package. may well obsolete recent ProTracker versions.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/funk_table.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"ProTracker Funk Table — funk_table","text":"https://fossies.org/linux/uade/amigasrc/players/tracker/eagleplayers/mod32_protracker/PTK_versions.txt","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/funk_table.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ProTracker Funk Table — funk_table","text":"","code":"data(\"funk_table\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":null,"dir":"Reference","previous_headings":"","what":"The loop length of a PTSample — loopLength","title":"The loop length of a PTSample — loopLength","text":"Extract replace loop length PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"The loop length of a PTSample — loopLength","text":"","code":"# S4 method for PTSample loopLength(sample) # S4 method for PTSample loopLength(sample) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"The loop length of a PTSample — loopLength","text":"sample PTSample loop length needs extracted replace. value even numeric value giving loop length samples ranging 2 131070 (can 0 sample empty). sum loopStart loopLength exceed sampleLength. Use value either character \"\" logical FALSE, order turn loop together.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"The loop length of a PTSample — loopLength","text":"loopLength loop length (samples), represented even integer value ranging 0 131070, returned. loopLength<- PTSample sample, updated loop length value, returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The loop length of a PTSample — loopLength","text":"PTSamples can loops, marked starting position length loop (samples), details see PTSample. method can used extract loop length safely replace value.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The loop length of a PTSample — loopLength","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopLength.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The loop length of a PTSample — loopLength","text":"","code":"data(\"mod.intro\") ## get the loop length of the ## first sample of mod.intro: loopLength(PTSample(mod.intro, 1)) #> [1] 276 ## Let's change the length of ## the loop to 200 loopLength(PTSample(mod.intro, 1)) <- 200 ## Let's turn off the loop all together: loopLength(PTSample(mod.intro, 1)) <- FALSE"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":null,"dir":"Reference","previous_headings":"","what":"Looped waveform of a sample — loopSample","title":"Looped waveform of a sample — loopSample","text":"Generate looped waveform PTSample object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Looped waveform of a sample — loopSample","text":"","code":"# S4 method for PTSample loopSample(sample, times, n_samples)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Looped waveform of a sample — loopSample","text":"sample PTSample object needs looped. times positive integer value indicating number times sample loop repeated. argument ignored n_samples specified. n_samples positive integer value indicating desired length looped waveform number samples. argument overrules times argument.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Looped waveform of a sample — loopSample","text":"Returns waveform represented numeric vector values ranging 0 255. length n_samples argument specified.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Looped waveform of a sample — loopSample","text":"playing routines, can useful generate repeats sample loop. method returns waveform PTSample loop repeated times`' times length n_samples`'.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Looped waveform of a sample — loopSample","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopSample.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Looped waveform of a sample — loopSample","text":"","code":"data(\"mod.intro\") ## Loop sample number 4 10 times: wform <- loopSample(PTSample(mod.intro, 4), times = 10) plot(wform, type = \"l\") ## Loop sample number 4, such that its ## final length is 5000 samples: wform <- loopSample(PTSample(mod.intro, 4), n_samples = 5000) plot(wform, type = \"l\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":null,"dir":"Reference","previous_headings":"","what":"The loop start position of a PTSample — loopStart","title":"The loop start position of a PTSample — loopStart","text":"Extract replace loop start position PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"The loop start position of a PTSample — loopStart","text":"","code":"# S4 method for PTSample loopStart(sample) # S4 method for PTSample loopStart(sample) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"The loop start position of a PTSample — loopStart","text":"sample PTSample loop start position needs extracted replace. value even numeric value giving loop starting position samples ranging 0 131070. sum loopStart loopLength exceed sampleLength. Use value either character \"\" logical FALSE, order turn loop together.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"The loop start position of a PTSample — loopStart","text":"loopStart loop start position (samples), represented even integer value ranging 0 131070, returned. loopStart<- PTSample sample, updated loop start position ``value`', returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The loop start position of a PTSample — loopStart","text":"PTSamples can loops, marked starting position length loop (samples), details see PTSample. method can used extract loop starting position safely replace value.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The loop start position of a PTSample — loopStart","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopStart.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The loop start position of a PTSample — loopStart","text":"","code":"data(\"mod.intro\") ## get the loop start position of the ## first sample of mod.intro: loopStart(PTSample(mod.intro, 1)) #> [1] 762 ## Let's change the starting position of ## the loop to 500 loopStart(PTSample(mod.intro, 1)) <- 500 ## Let's turn off the loop all together: loopStart(PTSample(mod.intro, 1)) <- FALSE"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":null,"dir":"Reference","previous_headings":"","what":"Get PTSample loop state — loopState","title":"Get PTSample loop state — loopState","text":"Determines whether loop specified PTSample object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get PTSample loop state — loopState","text":"","code":"# S4 method for PTSample loopState(sample)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get PTSample loop state — loopState","text":"sample PTSample object loop state needs determined.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get PTSample loop state — loopState","text":"Returns logical value indicating whether loop (TRUE) (FALSE) specified sample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get PTSample loop state — loopState","text":"loop state explicitly stored PTSample object. can derived loopStart position loopLength. method provided convenient method get state. Use either loopStart loopLength change state.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get PTSample loop state — loopState","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/loopState.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get PTSample loop state — loopState","text":"","code":"data(\"mod.intro\") ## Get the loop status of sample number 1 ## (it has a loop): loopState(PTSample(mod.intro, 1)) #> [1] TRUE ## Get the loop status of sample number 2 ## (it has no loop): loopState(PTSample(mod.intro, 2)) #> [1] FALSE"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/mod.intro.html","id":null,"dir":"Reference","previous_headings":"","what":"Example of a PTModule object — mod.intro","title":"Example of a PTModule object — mod.intro","text":"PTModule object included package example.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/mod.intro.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Example of a PTModule object — mod.intro","text":"PTModule object containing 4 PTSample objects (27 empty PTSample objects, adding 31 samples PTModule hold) 4 PTPattern objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/mod.intro.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Example of a PTModule object — mod.intro","text":"PTModule object based original ProTracker module file composed late nineteen nineties. used example many ProTrackR methods can use test code. can also exported back original ProTracker module file using write.module.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/mod.intro.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Example of a PTModule object — mod.intro","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/mod.intro.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Example of a PTModule object — mod.intro","text":"","code":"data(\"mod.intro\") print(mod.intro) #> #> PTModule Object: #> \tModule name:\t\t\tintro\t\t\t #> \tNumber of samples:\t\t4\t\t #> \tNumber of patterns:\t\t4\t\t #> \tPattern order table length:\t9\t plot(mod.intro) #> Error in as.double(y): cannot coerce type 'S4' to vector of type 'double' if (FALSE) { playSample(mod.intro) ## Save as an original module file, ## which can be played with ProTracker (or several modern audio players): write.module(mod.intro, \"intro.mod\") }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":null,"dir":"Reference","previous_headings":"","what":"ModArchive helper functions — modArchive","title":"ModArchive helper functions — modArchive","text":"https://ModArchive.org largest online archive module files. functions assist accessing archive.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ModArchive helper functions — modArchive","text":"","code":"modArchive.info(mod.id, api.key) modArchive.download(mod.id, ...) modArchive.search.mod( search.text, search.where = c(\"filename_or_songtitle\", \"filename_and_songtitle\", \"filename\", \"songtitle\", \"module_instruments\", \"module_comments\"), format.filter = c(\"unset\", \"669\", \"AHX\", \"DMF\", \"HVL\", \"IT\", \"MED\", \"MO3\", \"MOD\", \"MTM\", \"OCT\", \"OKT\", \"S3M\", \"STM\", \"XM\"), size.filter = c(\"unset\", \"0-99\", \"100-299\", \"300-599\", \"600-1025\", \"1025-2999\", \"3072-6999\", \"7168-100000\"), genre.filter = \"deprecated\", page, api.key ) modArchive.request.count(api.key) modArchive.max.requests(api.key) modArchive.view.by( view.query, view.by = c(\"view_by_list\", \"view_by_rating_comments\", \"view_by_rating_reviews\", \"view_modules_by_artistid\", \"view_modules_by_guessed_artist\"), format.filter = c(\"unset\", \"669\", \"AHX\", \"DMF\", \"HVL\", \"IT\", \"MED\", \"MO3\", \"MOD\", \"MTM\", \"OCT\", \"OKT\", \"S3M\", \"STM\", \"XM\"), size.filter = c(\"unset\", \"0-99\", \"100-299\", \"300-599\", \"600-1025\", \"1025-2999\", \"3072-6999\", \"7168-100000\"), page, api.key ) modArchive.search.genre( genre.filter = c(\"unset\", \"Alternative\", \"Gothic\", \"Grunge\", \"Metal - Extreme\", \"Metal (general)\", \"Punk\", \"Chiptune\", \"Demo Style\", \"One Hour Compo\", \"Chillout\", \"Electronic - Ambient\", \"Electronic - Breakbeat\", \"Electronic - Dance\", \"Electronic - Drum and Bass\", \"Electronic - Gabber\", \"Electronic - Hardcore\", \"Electronic - House\", \"Electronic - IDM\", \"Electronic - Industrial\", \"Electronic - Jungle\", \"Electronic - Minimal\", \"Electronic - Other\", \"Electronic - Progressive\", \"Electronic - Rave\", \"Electronic - Techno\", \"Electronic (general)\", \"Trance - Acid\", \"Trance - Dream\", \"Trance - Goa\", \"Trance - Hard\", \"Trance - Progressive\", \"Trance - Tribal\", \"Trance (general)\", \"Big Band\", \"Blues\", \"Jazz - Acid\", \"Jazz - Modern\", \"Jazz (general)\", \"Swing\", \"Bluegrass\", \"Classical\", \"Comedy\", \"Country\", \"Experimental\", \"Fantasy\", \"Folk\", \"Fusion\", \"Medieval\", \"New Ages\", \"Orchestral\", \"Other\", \"Piano\", \"Religious\", \"Soundtrack\", \"Spiritual\", \"Video Game\", \"Vocal Montage\", \"World\", \"Ballad\", \"Disco\", \"Easy Listening\", \"Funk\", \"Pop - Soft\", \"Pop - Synth\", \"Pop (general)\", \"Rock - Hard\", \"Rock - Soft\", \"Rock (general)\", \"Christmas\", \"Halloween\", \"Hip-Hop\", \"R and B\", \"Reggae\", \"Ska\", \"Soul\"), format.filter = c(\"unset\", \"669\", \"AHX\", \"DMF\", \"HVL\", \"IT\", \"MED\", \"MO3\", \"MOD\", \"MTM\", \"OCT\", \"OKT\", \"S3M\", \"STM\", \"XM\"), size.filter = c(\"unset\", \"0-99\", \"100-299\", \"300-599\", \"600-1025\", \"1025-2999\", \"3072-6999\", \"7168-100000\"), page, api.key ) modArchive.search.artist(search.artist, page, api.key) modArchive.search.hash(search.hash, api.key) modArchive.random.pick( genre.filter = c(\"Alternative\", \"Gothic\", \"Grunge\", \"Metal - Extreme\", \"Metal (general)\", \"Punk\", \"Chiptune\", \"Demo Style\", \"One Hour Compo\", \"Chillout\", \"Electronic - Ambient\", \"Electronic - Breakbeat\", \"Electronic - Dance\", \"Electronic - Drum and Bass\", \"Electronic - Gabber\", \"Electronic - Hardcore\", \"Electronic - House\", \"Electronic - IDM\", \"Electronic - Industrial\", \"Electronic - Jungle\", \"Electronic - Minimal\", \"Electronic - Other\", \"Electronic - Progressive\", \"Electronic - Rave\", \"Electronic - Techno\", \"Electronic (general)\", \"Trance - Acid\", \"Trance - Dream\", \"Trance - Goa\", \"Trance - Hard\", \"Trance - Progressive\", \"Trance - Tribal\", \"Trance (general)\", \"Big Band\", \"Blues\", \"Jazz - Acid\", \"Jazz - Modern\", \"Jazz (general)\", \"Swing\", \"Bluegrass\", \"Classical\", \"Comedy\", \"Country\", \"Experimental\", \"Fantasy\", \"Folk\", \"Fusion\", \"Medieval\", \"New Ages\", \"Orchestral\", \"Other\", \"Piano\", \"Religious\", \"Soundtrack\", \"Spiritual\", \"Video Game\", \"Vocal Montage\", \"World\", \"Ballad\", \"Disco\", \"Easy Listening\", \"Funk\", \"Pop - Soft\", \"Pop - Synth\", \"Pop (general)\", \"Rock - Hard\", \"Rock - Soft\", \"Rock (general)\", \"Christmas\", \"Halloween\", \"Hip-Hop\", \"R and B\", \"Reggae\", \"Ska\", \"Soul\"), format.filter = c(\"unset\", \"669\", \"AHX\", \"DMF\", \"HVL\", \"IT\", \"MED\", \"MO3\", \"MOD\", \"MTM\", \"OCT\", \"OKT\", \"S3M\", \"STM\", \"XM\"), size.filter = c(\"unset\", \"0-99\", \"100-299\", \"300-599\", \"600-1025\", \"1025-2999\", \"3072-6999\", \"7168-100000\"), api.key )"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ModArchive helper functions — modArchive","text":"mod.id integer code used module identifier ModArchive database. mod.id can obtained performing search modArchive.search.mod. downloading module, make sure identifier represents MOD file, types result error. api.key ModArchive functions require personal secret API key. key can obtained ModArchive forum. See `ModArchive API Key' section instructions obtain key. ... arguments passed read.module. search.text character string used terms search ModArchive. search.character string indicating module files search search.text. See usage section available options. format.filter File format filter used search ModArchive. See usage section possible options. Default \"unset\" (meaning search file format). Note `MOD' format supported package. size.filter File size filter used search ModArchive. Needs character string representation file size category specified ModArchive.org. See usage section possible options. Default \"unset\" (meaning search file size). Note maximum file size module approximately 4068 kilobytes, meaning largest file size category irrelevant `MOD' files. Also note category names inconsistant, literal catagories used ModArchive genre.filter Genre filter used overviews ModArchive. Needs character string representation genre specified ModArchive.org. See usage section possible options. argument deprecated function modArchive.search since ProTrackR version 0.3.4, functions still accept argument. page Many ModArchive returns paginated tables. argument omitted, first page returned. Use integer value return specific page. total number pages search view returned attribute returned base::data.frame. view.query query used combination view.argument. Use queries combination view.follows: view_by_list: Use single capital starting letter browse modules name view_by_rating_comments: Provide (user) rating wish browse modules view_by_rating_reviews: Provide (reviewer) rating wish browse modules view_modules_by_artistid: Provide artist id number wish browse /modules view_modules_by_guessed_artist: Provide artist guessed name wish browser /modules view.Indicate modArchive.view.function sort overview tables modules. See `usage' section possible options. search.artist character string representing (guessed) artist name id number ar looking archive. search.hash MD5 hash code specific module looking . See https://modarchive.org/?xml-api-usage-level3 details.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ModArchive helper functions — modArchive","text":"modArchive.info, modArchive.search.genre, modArchive.search.hash, modArchive.random.pick modArchive.view.return data.frame containing information modules ModArchive. Note data.frame formatted differently since ProTrackR 0.3.4, may cause backward compatibility issues. modArchive.download download module return PTModule object. modArchive.search.artist return data.frame containing information artists ModArchive. modArchive.request.count returns number ModArchive API request left month, provided key. modArchive.max.requests returns maximum monthly requests provided key.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ModArchive helper functions — modArchive","text":"modArchive.info function retrieve info specific module ModArchive. modArchive.search.mod, modArchive.search.genre modArchive.search.hash functions can used find specific modules archive. Use modArchive.random.pick get module info random module archive. Use modArchive.view.function browse archive specific aspects. Note ModArchive also contains file formats ProTracker's MOD format. package can handle MOD format. modArchive.download function download module archive. Use modArchive.search.artist find artist details archive. Use modArchive.request.count determine many request made current month specified key (see ModArchive API key' section details). Use modArchive.max.requeststo determine many request allowed make month provided key (seeModArchive API key' section details).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"modarchive-api-key","dir":"Reference","previous_headings":"","what":"ModArchive API key","title":"ModArchive helper functions — modArchive","text":"Since ProTrackR 0.3.4, ModArchive helper functions changed. earlier version, labile html scraper used, 0.3.4 later, replaced functions robustly use Application Programming Interface (API) provided ModArchive. downsides new approach: personal API key needs obtained ModArchive team; ProTrackR package relies yet another package (XML) parse XML files returned API. switch? Well, first , approach better supported ModArchive. personal API key used avoid excessive access imposing monthly request limit (keep mind ModArchive provides free services run volunteers). upside XML files lot lighter html files returned regular website. Therefore, new functions faster, reduce load ModArchive servers. XML files also allow easier access ModArchive functionality implemented ModArchive helper functions described . get personal API key? First, need register ModArchive Forums. follow instructions provided topic forum. info, see also API page ModArchive. want search module files without API key, one make use modLand collection instead.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"ModArchive helper functions — modArchive","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modArchive.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ModArchive helper functions — modArchive","text":"","code":"if (FALSE) { ## most of the example below will fail as they require a ## real modArchive API key. The key used in these example ## is just a dummy. See details on how to get a key ## in the section 'ModArchive API Key' in the manual. ## Search for the module that is also used as ## an example in this package: search.results <- modArchive.search.mod(\"*_-_intro.mod\", size.filter = \"0-99\", format.filter = \"MOD\", api.key = \"\") ## apparently there are multiple modules in ## database that have '_-_intro' in their ## file name or title. Select the wanted ## module from the list (the one with the ## word 'protrackr' in the instrument names): search.select <- subset(search.results, grepl(\"protrackr\", search.results$instruments)) ## get the same details, but now only for ## the specific module based on its ModArchive ID: modArchive.info(search.select$id, api.key = \"\") ## download the selected module from ModArchive.org: mod <- modArchive.download(search.select$id) ## here's a randomly picked module from the ModArchive: info.random <- modArchive.random.pick(api.key = \"\") ## use modArchive.view.by to list the 2nd page ## of MOD files that start with the letter 'A' info.list <- modArchive.view.by(\"A\", \"view_by_list\", \"MOD\", page = 2, api.key = \"\") ## list the modules of the artist with id number 89200: artist.mods <- modArchive.view.by(\"89200\", \"view_modules_by_artistid\", format.filter = \"MOD\", api.key = \"\") ## here's how you can list MOD files of a ## specific genre: list.genre <- modArchive.search.genre(\"Chiptune\", \"MOD\", api.key = \"\") ## get module info for a specific hash code mod.hash <- modArchive.search.hash(\"8f80bcab909f700619025bd7f2975749\", \"\") ## find modarchive artist info, search for artist name ## or artist id: artist.list <- modArchive.search.artist(\"89200\", api.key = \"\") ## How many requests did I make this month?: modArchive.request.count(\"\") ## How many requests am I allowed to make each month?: modArchive.max.requests(\"\") }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":null,"dir":"Reference","previous_headings":"","what":"ModLand helper functions — modLand","title":"ModLand helper functions — modLand","text":"https://modland.com largest online archive module files. functions assist accessing archive.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"ModLand helper functions — modLand","text":"","code":"modLand.search.mod(search.text) modLand.download.mod( format, author, title, mirror = c(\"modland.com\", \"ftp.modland.com\", \"antarctica.no\", \"ziphoid.com\", \"exotica.org.uk\"), ... )"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"ModLand helper functions — modLand","text":"search.text single length character vector, containing search text. Provided search pattern searched fields (mod format, author title). Prefixes can added keywords inclusive exclusive searches. details see https://www.exotica.org.uk/wiki/Modland#Searching. Note modLand contains wide range tracker files, mod-files supported ProTrackR package. therefore advisable add keyword `mod' search string. format single length character vector, indicating tracker file format. ``Protracker`' option likely work package. author single length character vector, indicating module author name. Can obtained modLand.search.mod. title single length character vector, indicating module title. Can obtained modLand.search.mod. mirror single length character vector. contain one mirrors listed `usage' section. Select mirror site module file needs downloaded. ... Argument passed read.module.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"ModLand helper functions — modLand","text":"modLand.search.mod returns data.frame. data.frame contains search result row. data.frame contains number columns, containing character strings. column title' contains mod file name; column named author' contains author name; column named format' contains tracker file format (``Protracker' supported package); collumn collect' contains modLand collections mod included; column named url' contains download link ogg'-file generated modLand server mod file. Note ogg-files supported ProTrackR package. Use modLand.download.mod` download mod file. modLand.download.mod attempts download specified mod file return PTModule object. throw errors mod file available network problems...","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ModLand helper functions — modLand","text":"Like https://modarchive.org, modland provides access large collection module files. Compared modArchive, modLand provides limited searching features. However, require API key. functions documented provided convenience depend third party services. Note continuity services guaranteed. Use modLand.search.mod search modLand collection. Use modLand.download.mod download specific mod file S4 object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"ModLand helper functions — modLand","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modLand.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ModLand helper functions — modLand","text":"","code":"if (FALSE) { ## Search for a funky tune: modland <- modLand.search.mod(\"elekfunk mod\") ## The ogg file can be downloaded (in this case to the tempdir()), ## but it is not supported by the ProTrackR package... utils::download.file(modland$url[1], tempdir()) ## Instead, use the following approach to download the module: mod <- modLand.download.mod(modland$format[1], modland$author[1], modland$title[1]) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert a PTModule object into an audio Wave object — modToWave","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"Converts PTModule object tuneR::Wave object, can played, analysed, modified saved.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"","code":"# S4 method for PTModule modToWave( mod, video = c(\"PAL\", \"NTSC\"), target.rate = 44100, target.bit = 16, stereo.separation = 1, low.pass.filter = TRUE, tracks = 1:4, mix = TRUE, ... )"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"mod object class PTModule video video mode Commodore Amiga affects timing routines playback sample rate. mode can specified argument represented character string can either value 'PAL' 'NTSC'. PAL used default. target.rate positive integer sample rate target Wave. least 2000. Default value 44100 Hz, conform CD quality. 22050 Hz also produce decent sound quality saves working memory. target.bit Number bits target Wave. numeric value either 8, 16, 24 32. Default 16, conform CD quality (quality really improve higher bit values, original samples 8 bit quality). stereo.separation numeric value 0 1. set 1 (default), stereo channels (Amiga channels 1 4 left, channels 2 3 right) completely separated. set less 1, stereo channels mixed, number gives fraction separation channels. set 0, channels completely mixed mono Wave returned. low.pass.filter logical value indicating whether low pass filters applied generating wave data. Commodore Amiga hardware audio filters. One (low pass 6 db/Oct tuned 4.9 kHz) filters audio one (low pass 12 db/Oct tuned approximately 3.3 kHz) can turned effect command E00/E01 (see also ProTrackR documentation, section effect commands). filters applied low.pass.filter argument set TRUE target.rate set values > 4.9 kHz. want simulate typical Amiga sound, turn filters save processing time. tracks Either logical numeric values indicating 4 PTTracks converted. default 4 tracks selected. mix logical value indicating whether 4 Amiga channels mixed 2 (stereo) output channels. set TRUE (default) stereo tuneR::Wave object returned. set FALSE multi-channel tuneR::WaveMC object returned. stereo.separation argument ignored latter case. ... Additional arguments passed playingtable.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"tuneR::Wave object, generated mod object returned. tuneR::WaveMC object returned mix argument set FALSE.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"PTModule object can converted tuneR::Wave object, rows PTPattern objects module need put right order. method calling playingtable. rows pattern tables right order, selected PTTrack objects module looped function routines described applied track. Commodore Amiga chip responsible audio output (Paula), audio playback samples can controlled user two ways: playback rate sample can changed specifying 'period' values (see e.g. periodToSampleRate) specifying volume linearly scaled 0 (silent) 64 (maximum). , track, correct period volume values determined based note, effect command sample information module. , PTSample objects resampled, using period values volume values determined previous step. Next audio filters applied mimic original Commodore Amiga sound. Finaly, wave data separate track mixed one (mono) two (stereo) output channels. Converting ProTracker modules wave objects can time consuming. time required convert object obviously depends machine's capacities length module also complexity module. speed conversion reduce target sample rate turn low pass filter. modern machines, time required conversion generally less playback time module. can save resulting tuneR::Wave object calling tuneR::writeWave.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"audio can mixed package frequencies much greater Commodore Amiga's audio output rate, aliasing sound occur. results high frequency audio, produced Amiga. current version package filter artefacts. problem concerned producing accurate Amiga timbre.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/modToWave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert a PTModule object into an audio Wave object — modToWave","text":"","code":"if (FALSE) { data(mod.intro) wav <- modToWave(mod.intro) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":null,"dir":"Reference","previous_headings":"","what":"Get module file size — moduleSize","title":"Get module file size — moduleSize","text":"Get file size bytes PTModule object, saved original module file write.module.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get module file size — moduleSize","text":"","code":"# S4 method for PTModule moduleSize(x)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get module file size — moduleSize","text":"x PTModule object file size calculated.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get module file size — moduleSize","text":"Returns potential uncompressed module file size bytes represented number class object_size.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get module file size — moduleSize","text":"ProTracker module 1084 byte sized header containing (meta) information patterns, order audio samples. pattern holds exactly 1 Kb information length audio samples corresponds size bytes, 8 bit quality mono. function calculates file size PTModule object saved write.module.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get module file size — moduleSize","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/moduleSize.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get module file size — moduleSize","text":"","code":"## Calculate the file size for the example module 'mod.intro': data(\"mod.intro\") moduleSize(mod.intro) #> 9214 bytes ## Note that this is not the same as the size the object ## requires in R working memory: object.size(mod.intro) #> 99384 bytes ## In working memory it takes more memory to store the module, than in a ## file. This is because the S4 structure of the object consumes some ## memory. In addition, samples are of 8 bit quality, corresponding with ## a byte per sample. In the PTSample object it is stored as a ## vector of integer values. In R, integer values are 32 bit, which ## costs 4 times as much memory as the original 8 bit."},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":null,"dir":"Reference","previous_headings":"","what":"Obtain or replace the name of a PTModule or PTSample — name","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"name PTModule PTSample stored raw data. method returns name character string, can used assign new name PTModule PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"","code":"# S4 method for PTSample name(x) # S4 method for PTSample,character name(x) <- value # S4 method for PTModule name(x) # S4 method for PTModule,character name(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"x PTModule PTSample object obtain replace name. value character string used replace name PTModule PTSample x.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"name, name PTModule PTSample object character string returned. name<-, object x updated name returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"name PTModule PTSample stored vector raw data length 20 22 respectively. method provides means getting name character string safely redefine name PTModule PTSample object. , provided name (value) converted raw vector length 20 22 respectively. Long names may therefore get clipped.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/name.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Obtain or replace the name of a PTModule or PTSample — name","text":"","code":"data(\"mod.intro\") ## get the name of mod.intro: name(mod.intro) #> [1] \"intro\" ## I don't like the name, let's change it: name(mod.intro) <- \"I like this name better\" #> Warning: Name is too long and will be truncated. ## Note that the provided name was too long and is truncated: name(mod.intro) #> [1] \"I like this name bet\" ## print all sample names in the module: unlist(lapply(as.list(1:31), function(x) name(PTSample(mod.intro, x)))) #> [1] \"by pepijn de vries\" \"a.k.a. freeze ii\" \"created in the late\" #> [4] \"nineties on a\" \"commodore amiga 500\" \"\" #> [7] \"it was meant to be\" \"used in a bootblock\" \"intro, but never was.\" #> [10] \"now it serves as an\" \"example in the\" \"protrackr package\" #> [13] \"i wrote for the r\" \"language for\" \"statistical computing\" #> [16] \"\" \"\" \"\" #> [19] \"\" \"\" \"\" #> [22] \"\" \"\" \"\" #> [25] \"\" \"\" \"\" #> [28] \"\" \"\" \"\" #> [31] \"\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or replace a note — note","title":"Extract or replace a note — note","text":"Obtain note period value extract replace note PTCell object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or replace a note — note","text":"","code":"# S4 method for numeric note(x) # S4 method for PTCell note(x) # S4 method for PTCell,character note(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or replace a note — note","text":"x Either (vector ) numeric value(s), representing period value. can also PTCell object. value character string representing chromatic scale note wich current note needs replaced. folling values: \"C-\", \"C#\", \"D-\", \"D#\", \"E-\", \"F-\", \"F#\", \"G-\", \"G#\", \"-\", \"#\", \"B-\", \"--\". Right-hand dashes can omitted strings. upper lower case accepted. octave yet specified PTCell x, set 1. Assigning value \"--\" remove note octave object x.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract or replace a note — note","text":"note, character string representing note returned. note<-, copy PTCell object x note replaced value returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract or replace a note — note","text":"Period values used ProTracker set playback sample rate essence determine key sound played. method can used obtain note (key) associated period value (according ProTracker period_table, assuming zero fineTune). period value period_table, note associated period closest value table returned. note can also obtained replaced PTCell object.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract or replace a note — note","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/note.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract or replace a note — note","text":"","code":"data(\"mod.intro\") ## get the note of PTCell at pattern #3, track #2, ## row #1 from mod.intro (which is note \"C-\"): note(PTCell(mod.intro, 1, 2, 3)) #> [1] \"C-\" ## replace the note of PTCell at pattern #3, track #2, ## row #1 from mod.intro with \"A-\": note(PTCell(mod.intro, 1, 2, 3)) <- \"A-\" ## get the notes associated with the period ## values 200 up to 400: note(200:400) #> [1] \"D-\" \"C#\" \"C#\" \"C#\" \"C-\" \"C#\" \"C#\" \"C#\" \"C-\" \"C-\" \"C-\" \"C-\" \"C#\" \"C-\" \"C-\" #> [16] \"C-\" \"C-\" \"C-\" \"C-\" \"C-\" \"C-\" \"B-\" \"B-\" \"C-\" \"B-\" \"B-\" \"B-\" \"B-\" \"B-\" \"B-\" #> [31] \"B-\" \"B-\" \"B-\" \"A#\" \"A#\" \"A#\" \"A#\" \"A#\" \"B-\" \"A#\" \"A#\" \"A#\" \"A#\" \"A#\" \"A#\" #> [46] \"A#\" \"A#\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" \"A-\" #> [61] \"A-\" \"A-\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" \"G#\" #> [76] \"G#\" \"G#\" \"G#\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" \"G-\" #> [91] \"G-\" \"G-\" \"G-\" \"G-\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" #> [106] \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F#\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" #> [121] \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"F-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" #> [136] \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"E-\" \"D#\" #> [151] \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" #> [166] \"D#\" \"D#\" \"D#\" \"D#\" \"D#\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" #> [181] \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"D-\" \"C#\" \"C#\" \"C#\" #> [196] \"C#\" \"C#\" \"C#\" \"C#\" \"C#\" \"C#\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteManipulation.html","id":null,"dir":"Reference","previous_headings":"","what":"Raise or lower notes and octaves — noteUp","title":"Raise or lower notes and octaves — noteUp","text":"Methods raise lower notes PTCell, PTTrack PTPattern objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteManipulation.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Raise or lower notes and octaves — noteUp","text":"","code":"# S4 method for PTCell noteUp(x, sample.nr = \"all\") # S4 method for PTCell noteDown(x, sample.nr = \"all\") # S4 method for PTCell octaveUp(x, sample.nr = \"all\") # S4 method for PTCell octaveDown(x, sample.nr = \"all\") # S4 method for PTTrack noteUp(x, sample.nr = \"all\") # S4 method for PTTrack noteDown(x, sample.nr = \"all\") # S4 method for PTTrack octaveUp(x, sample.nr = \"all\") # S4 method for PTTrack octaveDown(x, sample.nr = \"all\") # S4 method for PTPattern noteUp(x, sample.nr = \"all\") # S4 method for PTPattern noteDown(x, sample.nr = \"all\") # S4 method for PTPattern octaveUp(x, sample.nr = \"all\") # S4 method for PTPattern octaveDown(x, sample.nr = \"all\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteManipulation.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Raise or lower notes and octaves — noteUp","text":"x PTCell, PTTrack PTPattern object notes need lowered raised. sample.nr single positive integer value, vector positive integers, listing indices samples, notes need lowered raised. character string equal \"\" also allowed (fact default), case notes sample indices raised lowered.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteManipulation.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Raise or lower notes and octaves — noteUp","text":"Returns object class object x, notes samples selected sample.nr raised lowered. case raised lowered notes lead notes ProTracker's range, returned notes remain unchanged.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteManipulation.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Raise or lower notes and octaves — noteUp","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteManipulation.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Raise or lower notes and octaves — noteUp","text":"","code":"## raise note from C-2 to C#2: noteUp(PTCell(\"C-2 01 000\")) #> [1] \"C#2 01 000\" ## lower note from C-2 to B-1: noteDown(PTCell(\"C-2 01 000\")) #> [1] \"B-1 01 000\" ## raise note from octave 2 to octave 3: octaveUp(PTCell(\"C-2 01 000\")) #> [1] \"C-3 01 000\" ## lower note from octave 2 to octave 1: octaveDown(PTCell(\"C-2 01 000\")) #> [1] \"C-1 01 000\" data(\"mod.intro\") ## Raise the notes of all cells in pattern ## number 2 of mod.intro: noteUp(PTPattern(mod.intro, 2)) #> [,1] [,2] [,3] [,4] #> [1,] \"C#3 01 A08\" \"C#3 02 C40\" \"B-1 03 F06\" \"B-2 04 000\" #> [2,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [3,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"C#3 04 000\" #> [4,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [5,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 120\" \"D#3 04 000\" #> [6,] \"--- 00 000\" \"F#3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [7,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 220\" \"E-3 04 000\" #> [8,] \"--- 00 000\" \"G#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [9,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [10,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [11,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [12,] \"--- 00 000\" \"F#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [13,] \"G#3 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [14,] \"--- 00 A08\" \"F#3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [15,] \"F#3 01 000\" \"C#3 02 000\" \"--- 00 000\" \"C#3 04 000\" #> [16,] \"--- 00 A08\" \"E-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [17,] \"C#3 01 A08\" \"C#3 02 C40\" \"B-1 03 F06\" \"B-2 04 000\" #> [18,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 A08\" #> [19,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"B-2 04 000\" #> [20,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"--- 00 A08\" #> [21,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 120\" \"F#2 04 000\" #> [22,] \"--- 00 000\" \"B-2 04 C08\" \"--- 00 A02\" \"--- 00 A08\" #> [23,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 220\" \"F#2 04 000\" #> [24,] \"--- 00 000\" \"B-2 04 C08\" \"--- 00 A01\" \"--- 00 A08\" #> [25,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"B-2 04 000\" #> [26,] \"--- 00 000\" \"F#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [27,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [28,] \"--- 00 000\" \"F#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [29,] \"G#2 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [30,] \"--- 00 A08\" \"F#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [31,] \"A#2 01 000\" \"C#3 02 000\" \"--- 00 000\" \"--- 00 000\" #> [32,] \"--- 00 A08\" \"G#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [33,] \"F-3 01 A08\" \"C#3 02 C40\" \"D#2 03 000\" \"D#3 04 000\" #> [34,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 000\" #> [35,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 A02\" #> [36,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"F-3 04 000\" #> [37,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 126\" \"F#3 04 000\" #> [38,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [39,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 226\" \"F-3 04 000\" #> [40,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"F#3 04 000\" #> [41,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"G#3 04 000\" #> [42,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [43,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [44,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [45,] \"B-3 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [46,] \"--- 00 A08\" \"C#3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [47,] \"A#3 01 000\" \"C#3 02 000\" \"--- 00 000\" \"D#3 04 000\" #> [48,] \"--- 00 A08\" \"F-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [49,] \"D#3 01 A08\" \"C#3 02 C40\" \"C#2 03 000\" \"F-3 04 000\" #> [50,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [51,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [52,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [53,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 12B\" \"C#3 04 000\" #> [54,] \"--- 00 000\" \"G#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [55,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 22B\" \"D#3 04 000\" #> [56,] \"--- 00 000\" \"C#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [57,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"C#3 04 000\" #> [58,] \"--- 00 000\" \"G#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [59,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [60,] \"--- 00 000\" \"C#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [61,] \"A#3 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [62,] \"--- 00 A08\" \"F-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [63,] \"G#3 01 000\" \"D#2 04 C08\" \"--- 00 000\" \"--- 00 000\" #> [64,] \"--- 00 A08\" \"C#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" ## Raise only the notes of sample number 4 ## in pattern number 2 of mod.intro: noteUp(PTPattern(mod.intro, 2), 4) #> [,1] [,2] [,3] [,4] #> [1,] \"C-3 01 A08\" \"C-3 02 C40\" \"A#1 03 F06\" \"B-2 04 000\" #> [2,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [3,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"C#3 04 000\" #> [4,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [5,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 120\" \"D#3 04 000\" #> [6,] \"--- 00 000\" \"F#3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [7,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 220\" \"E-3 04 000\" #> [8,] \"--- 00 000\" \"G#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [9,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [10,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [11,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [12,] \"--- 00 000\" \"F#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [13,] \"G-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [14,] \"--- 00 A08\" \"F#3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [15,] \"F-3 01 000\" \"C-3 02 000\" \"--- 00 000\" \"C#3 04 000\" #> [16,] \"--- 00 A08\" \"E-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [17,] \"C-3 01 A08\" \"C-3 02 C40\" \"A#1 03 F06\" \"B-2 04 000\" #> [18,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A08\" #> [19,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"B-2 04 000\" #> [20,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A08\" #> [21,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 120\" \"F#2 04 000\" #> [22,] \"--- 00 000\" \"B-2 04 C08\" \"--- 00 A02\" \"--- 00 A08\" #> [23,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 220\" \"F#2 04 000\" #> [24,] \"--- 00 000\" \"B-2 04 C08\" \"--- 00 A01\" \"--- 00 A08\" #> [25,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"B-2 04 000\" #> [26,] \"--- 00 000\" \"F#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [27,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [28,] \"--- 00 000\" \"F#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [29,] \"G-2 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [30,] \"--- 00 A08\" \"F#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [31,] \"A-2 01 000\" \"C-3 02 000\" \"--- 00 000\" \"--- 00 000\" #> [32,] \"--- 00 A08\" \"G#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [33,] \"E-3 01 A08\" \"C-3 02 C40\" \"D-2 03 000\" \"D#3 04 000\" #> [34,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 000\" #> [35,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 A02\" #> [36,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"F-3 04 000\" #> [37,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 126\" \"F#3 04 000\" #> [38,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [39,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 226\" \"F-3 04 000\" #> [40,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"F#3 04 000\" #> [41,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"G#3 04 000\" #> [42,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [43,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [44,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [45,] \"B-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [46,] \"--- 00 A08\" \"C#3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [47,] \"A-3 01 000\" \"C-3 02 000\" \"--- 00 000\" \"D#3 04 000\" #> [48,] \"--- 00 A08\" \"F-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [49,] \"D-3 01 A08\" \"C-3 02 C40\" \"C-2 03 000\" \"F-3 04 000\" #> [50,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [51,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [52,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [53,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 12B\" \"C#3 04 000\" #> [54,] \"--- 00 000\" \"G#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [55,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 22B\" \"D#3 04 000\" #> [56,] \"--- 00 000\" \"C#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [57,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"C#3 04 000\" #> [58,] \"--- 00 000\" \"G#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [59,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [60,] \"--- 00 000\" \"C#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [61,] \"A-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [62,] \"--- 00 A08\" \"F-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [63,] \"G-3 01 000\" \"D#2 04 C08\" \"--- 00 000\" \"--- 00 000\" #> [64,] \"--- 00 A08\" \"C#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" ## Raise only the notes of samples number 2 and 4 ## in pattern number 2 of mod.intro: noteUp(PTPattern(mod.intro, 2), c(2, 4)) #> [,1] [,2] [,3] [,4] #> [1,] \"C-3 01 A08\" \"C#3 02 C40\" \"A#1 03 F06\" \"B-2 04 000\" #> [2,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [3,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"C#3 04 000\" #> [4,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [5,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 120\" \"D#3 04 000\" #> [6,] \"--- 00 000\" \"F#3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [7,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 220\" \"E-3 04 000\" #> [8,] \"--- 00 000\" \"G#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [9,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [10,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [11,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [12,] \"--- 00 000\" \"F#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [13,] \"G-3 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [14,] \"--- 00 A08\" \"F#3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [15,] \"F-3 01 000\" \"C#3 02 000\" \"--- 00 000\" \"C#3 04 000\" #> [16,] \"--- 00 A08\" \"E-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [17,] \"C-3 01 A08\" \"C#3 02 C40\" \"A#1 03 F06\" \"B-2 04 000\" #> [18,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 A08\" #> [19,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"B-2 04 000\" #> [20,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"--- 00 A08\" #> [21,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 120\" \"F#2 04 000\" #> [22,] \"--- 00 000\" \"B-2 04 C08\" \"--- 00 A02\" \"--- 00 A08\" #> [23,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 220\" \"F#2 04 000\" #> [24,] \"--- 00 000\" \"B-2 04 C08\" \"--- 00 A01\" \"--- 00 A08\" #> [25,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"B-2 04 000\" #> [26,] \"--- 00 000\" \"F#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [27,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [28,] \"--- 00 000\" \"F#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [29,] \"G-2 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [30,] \"--- 00 A08\" \"F#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [31,] \"A-2 01 000\" \"C#3 02 000\" \"--- 00 000\" \"--- 00 000\" #> [32,] \"--- 00 A08\" \"G#2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [33,] \"E-3 01 A08\" \"C#3 02 C40\" \"D-2 03 000\" \"D#3 04 000\" #> [34,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 000\" #> [35,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 A02\" #> [36,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"F-3 04 000\" #> [37,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 126\" \"F#3 04 000\" #> [38,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [39,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 226\" \"F-3 04 000\" #> [40,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"F#3 04 000\" #> [41,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"G#3 04 000\" #> [42,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [43,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [44,] \"--- 00 000\" \"D#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [45,] \"B-3 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [46,] \"--- 00 A08\" \"C#3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [47,] \"A-3 01 000\" \"C#3 02 000\" \"--- 00 000\" \"D#3 04 000\" #> [48,] \"--- 00 A08\" \"F-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [49,] \"D-3 01 A08\" \"C#3 02 C40\" \"C-2 03 000\" \"F-3 04 000\" #> [50,] \"--- 01 A08\" \"C#3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [51,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [52,] \"--- 00 000\" \"C#3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [53,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 12B\" \"C#3 04 000\" #> [54,] \"--- 00 000\" \"G#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [55,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 22B\" \"D#3 04 000\" #> [56,] \"--- 00 000\" \"C#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [57,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"C#3 04 000\" #> [58,] \"--- 00 000\" \"G#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [59,] \"--- 01 A08\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [60,] \"--- 00 000\" \"C#2 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [61,] \"A-3 01 000\" \"C#3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [62,] \"--- 00 A08\" \"F-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [63,] \"G-3 01 000\" \"D#2 04 C08\" \"--- 00 000\" \"--- 00 000\" #> [64,] \"--- 00 A08\" \"C#2 04 C08\" \"--- 00 000\" \"--- 00 A01\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract period value for a specific note — noteToPeriod","title":"Extract period value for a specific note — noteToPeriod","text":"Extracts ProTracker period value specific note.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract period value for a specific note — noteToPeriod","text":"","code":"noteToPeriod(note = \"C-3\", finetune = 0)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract period value for a specific note — noteToPeriod","text":"note character string representing note octave ProTracker period value needs determined finetune integer value ranging -8 7. value used tune audio sample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract period value for a specific note — noteToPeriod","text":"Returns numeric ProTracker period value corresponding note, octave fineTune(). Returns 0 note found table.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract period value for a specific note — noteToPeriod","text":"ProTracker uses period_table link period values certain octaves notes. function serves look corresponding period values specific notes octaves.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract period value for a specific note — noteToPeriod","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/noteToPeriod.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract period value for a specific note — noteToPeriod","text":"","code":"## Determine the period value corresponding with note 'A-3': noteToPeriod(\"A-3\") #> [1] 127 ## get the period values for notes 'A-3' and 'A#3' with finetune at -1: noteToPeriod(c(\"A-3\", \"A#3\"), -1) #> [1] 128 121 ## get the period values for note 'A-3' with finetune at 0 and 1: noteToPeriod(\"A-3\", 0:1) #> [1] 127 126"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the high or low nybble of a raw value — nybble","title":"Get the high or low nybble of a raw value — nybble","text":"Get high low nybble raw value return integer value [0,15].","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the high or low nybble of a raw value — nybble","text":"","code":"nybble(raw_dat, which = c(\"low\", \"high\")) loNybble(raw_dat) hiNybble(raw_dat)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the high or low nybble of a raw value — nybble","text":"raw_dat vector class raw high low nybble value needs extracted. character string indicating whether high low nybble returnd. either \"low\" (default) \"high\".","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the high or low nybble of a raw value — nybble","text":"vector length raw_dat holding integer values.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the high or low nybble of a raw value — nybble","text":"raw basically byte, composed 8 bits (zeros ones). nybble 4 bit value. Hence, raw value (byte) composed two nybbles. leftmost nybble raw value refered high nybble, rightmost nybble referred low nybble. functions return either high low nybbles raw data integer values [0,15]. ProTracker stores information nybbles function can used retrieve info.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the high or low nybble of a raw value — nybble","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybble.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the high or low nybble of a raw value — nybble","text":"","code":"## this will return 0x0f: hiNybble(as.raw(0xf3)) #> [1] 15 ## which is the same as: nybble(as.raw(0xf3), \"high\") #> [1] 15 ## this will return 0x03: loNybble(as.raw(0xf3)) #> [1] 3 ## which is the same as: nybble(as.raw(0xf3), \"low\") #> [1] 3"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":null,"dir":"Reference","previous_headings":"","what":"Get signed integer values from nybbles — nybbleToSignedInt","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"Get signed integer values one nybble.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"","code":"nybbleToSignedInt(raw_dat, which = c(\"low\", \"high\"))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"raw_dat raw data (either single value vector), nybble extracted converted. character string indicating whether \"low\" (default) \"high\" nybble raw_dat needs converted signed integer.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"Returns integer values length raw_dat, ranging -8 7.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"Nybbles 4 bit values, byte (8 bits) holds two nybbles. high nybble (left-hand side byte) low nybble (right-hand side byte). function extracts nybble raw data converts signed integer value ranging -8 7.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/nybbleToSignedInt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get signed integer values from nybbles — nybbleToSignedInt","text":"","code":"## generate some raw data: rdat <- as.raw(255*runif(100)) ## get signed integers of low nybbles: sintl <- nybbleToSignedInt(rdat) ## get signed integers of high nybbles: sinth <- nybbleToSignedInt(rdat, \"high\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or replace an octave — octave","title":"Extract or replace an octave — octave","text":"Obtain octave number period value extract replace note PTCell object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or replace an octave — octave","text":"","code":"# S4 method for numeric octave(x) # S4 method for PTCell octave(x) # S4 method for PTCell,numeric octave(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or replace an octave — octave","text":"x Either (vector ) numeric value(s), representing period value. can also PTCell object. value numeric value representing octave number object x needs replaced. 0, 1 3 valid octave numbers. Use zero disable note octave object x. Note octave can set PTCells note already defined.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract or replace an octave — octave","text":"octave, numeric value representing octave number returned. octave<-, copy PTCell object x octave number replaced value returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract or replace an octave — octave","text":"Period values used ProTracker set playback sample rate essence determine key octave sound played. method can used obtain octave number associated period value (according ProTracker period_table, assuming zero fineTune). period value period_table, octave number associated period closest value table returned. octave number can also obtained replaced PTCell object.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract or replace an octave — octave","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/octave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract or replace an octave — octave","text":"","code":"data(\"mod.intro\") ## get the octave number of PTCell at pattern #3, track #2, ## row #1 from mod.intro (which is number 3): octave(PTCell(mod.intro, 1, 2, 3)) #> [1] 3 ## replace the octave number of PTCell at pattern #3, track #2, ## row #1 from mod.intro with 2: octave(PTCell(mod.intro, 1, 2, 3)) <- 2 ## get the octave numbers associated with the period ## values 200 up to 400: octave(200:400) #> [1] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 #> [38] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 #> [75] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 #> [112] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 #> [149] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 #> [186] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":null,"dir":"Reference","previous_headings":"","what":"Paste a block of PTCell data into a PTPattern — pasteBlock","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"Paste block PTCell data PTPattern specified location.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"","code":"# S4 method for PTPattern,matrix,numeric,numeric pasteBlock(pattern, block, row.start, track.start)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"pattern PTPattern object block needs pasted. block PTBlock holding PTCell data needs pasted pattern. row.start positive integer value (ranging 1 64) indicating starting position (row) pattern paste block . track.start positive integer value (ranging 1 4) indicating starting position (track) pattern paste block .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"Returns copy pattern block pasted.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"PTBlock formal S4 class. matrix element holds list single PTCell object. explained PTBlock method documentation, allows flexible approach manipulating PTCell objects. pasteBlock method allows paste PTBlock back PTPattern. PTBlock pasted specified location span number tracks rows included PTBlock. PTCells pattern replaced block. Elements bock range pattern included pattern.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/pasteBlock.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Paste a block of PTCell data into a PTPattern — pasteBlock","text":"","code":"data(\"mod.intro\") block <- PTBlock(PTPattern(mod.intro, 1), 1:16, 1) ## Do some operations using lapply (the effect ## code is set to \"C10\"): block <- matrix(lapply(block, function(x) {(effect(x) <- \"C10\"); x}), nrow(block), ncol(block), byrow = TRUE) ## Paste block back on the same position: PTPattern(mod.intro, 1) <- pasteBlock(PTPattern(mod.intro, 1), block, 1, 1) ## You can also paste the block anywhere you like: PTPattern(mod.intro, 1) <- pasteBlock(PTPattern(mod.intro, 1), block, 49, 2)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the number of PTPattern tables in a PTModule — patternLength","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"Get number PTPattern tables PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"","code":"# S4 method for PTModule patternLength(x)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"x PTModule object number PTPattern tables need returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"Returns numeric value representing number PTPattern tables object x.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"number PTPattern tables PTModule object range 1 either 64 100. maximum depends trackerFlag PTModule object.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternLength.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the number of PTPattern tables in a PTModule — patternLength","text":"","code":"data(\"mod.intro\") ## Get the number of pattern tables in mod.intro: patternLength(mod.intro) #> [1] 4"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the pattern order table — patternOrder","title":"Get the pattern order table — patternOrder","text":"pattern order table vector numeric indices PTPattern tables, determines order patterns need played. method returns vector.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the pattern order table — patternOrder","text":"","code":"# S4 method for PTModule patternOrder(x, full = FALSE) # S4 method for PTModule,ANY,numeric patternOrder(x, full = FALSE) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the pattern order table — patternOrder","text":"x PTModule object pattern order table needs returned modified. full logical value indicating whether full (TRUE, default), visible (FALSE) part pattern order table returned. argument also affect new pattern order tables assigned (see value). value numeric vector (maximum length: 128) holding PTPattern indices minus 1 new pattern order table. full = TRUE, vector padded zeros length 128, patternOrderLength set length value. full = FALSE, value repplace part order table length value. remainder table changed. patternOrderLength also modified case.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the pattern order table — patternOrder","text":"patternOrder, vector numeric PTPattern indices returned. patternOrder<-, updated version object x returned, pattern order table modified based value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the pattern order table — patternOrder","text":"actual length vector containing pattern order 128 per ProTracker standards. part vector `visible' used determine order pattern tables played. method can used return either visible full (128) part table. can also used assign new patter order table. Note PTPattern indices start 0, per ProTracker standards, whereas R start indices 1. Hence, add 1 indices obtained patternOrder, order extract correct PTPattern PTModule. maximum index plus 1 full pattern order table equal number pattern tables (see patternLength) PTModule. assign new pattern order, lower maximum, PTPattern objects get lost (see also examples)!","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Get the pattern order table — patternOrder","text":"maximum number PTPatterns exceed either 64 100 (depending trackerFlag). means values order table also exceed values minus 1.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the pattern order table — patternOrder","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrder.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the pattern order table — patternOrder","text":"","code":"data(\"mod.intro\") ## get the visible part of the patternOrder table: patternOrder(mod.intro) #> [1] 0 0 1 1 2 2 3 3 2 ## get the full patternOrder table: patternOrder(mod.intro, full = TRUE) #> [1] 0 0 1 1 2 2 3 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [112] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ## add 1 to get extract the right PTPattern from ## mod.intro: first.pattern.played <- (PTPattern(mod.intro, patternOrder(mod.intro)[1] + 1)) ## set a different playing order: patternOrder(mod.intro) <- c(0:3, 0:3, 0:3) ## The assignment above uses a value that ## longer than the patternOrderLength. ## This means that a part ends up in the ## 'invisible' part of the order table: patternOrder(mod.intro) #> [1] 0 1 2 3 0 1 2 3 0 patternOrder(mod.intro, full = TRUE) #> [1] 0 1 2 3 0 1 2 3 0 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [112] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ## Let's do the same assignment, but update ## the visible part of the table as well: patternOrder(mod.intro, full = TRUE) <- c(0:3, 0:3, 0:3) ## note that the maximum of the order table plus 1 ## equals the patternLength of mod.intro (always the case ## for a valid PTModule object): max(patternOrder(mod.intro, full = TRUE) + 1) == patternLength(mod.intro) #> [1] TRUE ## Let's do something dangerous. If the replacement ## indices do not hold a maximum value that equals ## the patternLength minus 1, PTPatterns will get lost, ## in order to maintain the validity of mod.intro: patternOrder(mod.intro) <- rep(0, 12) #> Warning: Replacement pattern order contain less patterns than the original list. These patterns are now lost!"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the length of the pattern order table — patternOrderLength","title":"Get the length of the pattern order table — patternOrderLength","text":"pattern order table vector numeric indices PTPattern tables, determines order patterns need played. method returns visible length vector.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the length of the pattern order table — patternOrderLength","text":"","code":"# S4 method for PTModule patternOrderLength(x) # S4 method for PTModule,numeric patternOrderLength(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the length of the pattern order table — patternOrderLength","text":"x PTModule object length visible part pattern order table returned. value numeric value used set visible length pattern order table.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the length of the pattern order table — patternOrderLength","text":"patternOrderLength visible length pattern order table PTModule x returned numeric value, ranging 1 128. patternOrderLength<- updated version object x returned, visible length pattern order table set value. Note change pattern order table , part `visible'.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the length of the pattern order table — patternOrderLength","text":"actual length vector containing pattern order 128 per ProTracker standards. part vector `visible' used determine order pattern tables played. length returned method length visible part pattern order table. length visible part can also set method.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the length of the pattern order table — patternOrderLength","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/patternOrderLength.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the length of the pattern order table — patternOrderLength","text":"","code":"data(\"mod.intro\") ## get the length of the pattern order table: patternOrderLength(mod.intro) #> [1] 9 ## set the length of the pattern order table to 1: patternOrderLength(mod.intro) <- 1 ## note that the pattern order table remained intact: patternOrder(mod.intro, full = TRUE) #> [1] 0 0 1 1 2 2 3 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #> [112] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/paula_clock.html","id":null,"dir":"Reference","previous_headings":"","what":"Paula clock table — paula_clock","title":"Paula clock table — paula_clock","text":"Table provides audio output frequencies Commodore Amiga original chipset.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/paula_clock.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Paula clock table — paula_clock","text":"data.frame two columns: 'frequency' numeric value representing Paula's output rate Hz. 'video' character string representing two video modes.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/paula_clock.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Paula clock table — paula_clock","text":"Paula one custom chips original Commodore Amiga. chip dedicated (amongst tasks) controlling audio playback. chip's output rate depended video mode used: either 'PAL' 'NTSC'. table provides output rate video modes can used calculating sample rates.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/paula_clock.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Paula clock table — paula_clock","text":"https://en.wikipedia.org/wiki/Original_Chip_Set#Paula","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/paula_clock.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Paula clock table — paula_clock","text":"","code":"data(\"paula_clock\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the note and octave from period table — periodToChar","title":"Get the note and octave from period table — periodToChar","text":"functions return note octave closest provided period value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the note and octave from period table — periodToChar","text":"","code":"periodToChar(period)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the note and octave from period table — periodToChar","text":"period integer value period value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the note and octave from period table — periodToChar","text":"periodToChar returns character representing combination octave note closest period ProTracker period table.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the note and octave from period table — periodToChar","text":"ProTracker uses period_table link period values certain octaves notes. function serves look corresponding notes octaves specific period values.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the note and octave from period table — periodToChar","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/periodToChar.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the note and octave from period table — periodToChar","text":"","code":"## Note C# in octave 3 is closest to a period of 200 in the table: periodToChar(200) #> [1] \"D-3\" ## try with a range of period values: periodToChar(200:400) #> [1] \"D-3\" \"C#3\" \"C#3\" \"C#3\" \"C-3\" \"C#3\" \"C#3\" \"C#3\" \"C-3\" \"C-3\" \"C-3\" \"C-3\" #> [13] \"C#3\" \"C-3\" \"C-3\" \"C-3\" \"C-3\" \"C-3\" \"C-3\" \"C-3\" \"C-2\" \"B-2\" \"B-2\" \"C-3\" #> [25] \"B-2\" \"B-2\" \"B-2\" \"B-2\" \"B-2\" \"B-2\" \"B-2\" \"B-2\" \"B-2\" \"A#2\" \"A#2\" \"A#2\" #> [37] \"A#2\" \"A#2\" \"B-2\" \"A#2\" \"A#2\" \"A#2\" \"A#2\" \"A#2\" \"A#2\" \"A#2\" \"A#2\" \"A-2\" #> [49] \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" \"A-2\" #> [61] \"A-2\" \"A-2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" #> [73] \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G#2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" #> [85] \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"G-2\" \"F#2\" \"F#2\" #> [97] \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" \"F#2\" #> [109] \"F#2\" \"F#2\" \"F#2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" #> [121] \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"F-2\" \"E-2\" \"E-2\" #> [133] \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" #> [145] \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"E-2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" #> [157] \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" \"D#2\" #> [169] \"D#2\" \"D#2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" #> [181] \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" \"D-2\" #> [193] \"C#2\" \"C#2\" \"C#2\" \"C#2\" \"C#2\" \"C#2\" \"C#2\" \"C#2\" \"C#2\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/period_table.html","id":null,"dir":"Reference","previous_headings":"","what":"ProTracker Period Table — period_table","title":"ProTracker Period Table — period_table","text":"Table ProTracker period values corresponding, octave, tone fine tune","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/period_table.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"ProTracker Period Table — period_table","text":"data.frame fourteen columns: column named 'octave': integer value [1,3] column named 'finetune': integer value [-8, 7] used tune sample columns named 'C-' `B-': represent twelve (semi)tones. values columns period values corresponding tone, octave finetune.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/period_table.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"ProTracker Period Table — period_table","text":"Table ProTracker period values used calculating playback sampling rate samples specific tones. values actually used ProTracker, calculated directly due undocumented rounding inconsistencies. lookup table therefore requirement.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/period_table.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"ProTracker Period Table — period_table","text":"","code":"data(\"period_table\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":null,"dir":"Reference","previous_headings":"","what":"Play PTModule objects — playMod","title":"Play PTModule objects — playMod","text":"Converts PTModule objects audio tuneR::Waves, plays .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Play PTModule objects — playMod","text":"","code":"# S4 method for PTModule playMod(mod, wait = T, ...)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Play PTModule objects — playMod","text":"mod PTModule object played. wait logical value. set TRUE playing routine wait executing code playing finished. set FALSE, subsequent R code executed playing. ... Arguments passed modToWave.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Play PTModule objects — playMod","text":"tuneR::Wave object, generated mod object, returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Play PTModule objects — playMod","text":"Unfortunately, feasible create routine can directly interpret PTModule objects play simultaneously. Instead, audio first needs rendered can played. method therefore first calls modToWave playWave. Rendering may take time requires balance speed, quality accuracy. See documentation modToWave method control aspects.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Play PTModule objects — playMod","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playMod.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Play PTModule objects — playMod","text":"","code":"if (FALSE) { data(\"mod.intro\") ## play the module and capture the audio Wave wav <- playMod(mod.intro) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":null,"dir":"Reference","previous_headings":"","what":"Play audio samples — playSample","title":"Play audio samples — playSample","text":"Method play PTSamples samples PTModule objects audio.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Play audio samples — playSample","text":"","code":"# S4 method for PTSample playSample(x, silence = 0, wait = T, note = \"C-3\", loop = 1, ...) # S4 method for PTModule playSample(x, silence = 0, wait = T, note = \"C-3\", loop = 1, ...)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Play audio samples — playSample","text":"x Either PTSample PTModule object. latter case, samples module played order. silence Especially short samples, audio::play routine can bit buggy: playing audible noise, ticks parts samples end sample. adding silence sample, problem evaded. Use argument specify duration silence seconds. , x PTModule object, silence also inserted samples. wait logical value. set TRUE playing routine wait executing code playing finished. set FALSE, subsequent R code executed playing. note character string specifying note used calculating playback sample rate (using noteToSampleRate). start note (ranging ' G') optionally followed hash sign (#') note sharp (dash (-') ) finally octave number (ranging 1 3). valid notation instance 'F#3'. fineTune specified sample also used argument calculating playback rate. custom finetune can also passed argument noteToSampleRate. loop positive numeric indicating duration looped sample seconds. looped sample played least , even specified duration less sum loopStart position loopLength. See loopStart loopLength details set (disable) loop. ... arguments passed noteToSampleRate. Can used change video mode, finetune argument call method.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Play audio samples — playSample","text":"Returns nothing plays sample(s) audio.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Play audio samples — playSample","text":"method plays PTSamples samples PTModule objects, using audio::play method audio package. Default fineTune volume specified PTSample applied playing sample.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Play audio samples — playSample","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playSample.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Play audio samples — playSample","text":"","code":"if (FALSE) { data(\"mod.intro\") ## play all samples in mod.intro: playSample(mod.intro, 0.2, loop = 0.5) ## play a chromatic scale using sample number 3: for (note in c(\"A-2\", \"A#2\", \"B-2\", \"C-3\", \"C#3\", \"D-3\", \"D#3\", \"E-3\", \"F-3\", \"F#3\", \"G-3\", \"G#3\")) { playSample(PTSample(mod.intro, 3), note = note, silence = 0.05, loop = 0.4) } ## play the sample at a rate based on a specific ## video mode and finetune: playSample(PTSample(mod.intro, 3), video = \"NTSC\", finetune = -5) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":null,"dir":"Reference","previous_headings":"","what":"Play Wave objects — playWave","title":"Play Wave objects — playWave","text":"Use command line audio::play function audio package play tuneR::Wave objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Play Wave objects — playWave","text":"","code":"# S4 method for Wave playWave(wave, wait = T) # S4 method for WaveMC playWave(wave, wait = T)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Play Wave objects — playWave","text":"wave object class tuneR::Wave tuneR::WaveMC. Note playing routine implemented can play stereo waves. Multi-channel waves therefore converted stereo playing. wait logical value. set TRUE playing routine wait executing code playing finished. set FALSE, subsequent R code executed playing.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Play Wave objects — playWave","text":"Returns audio::$.audioInstance.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Play Wave objects — playWave","text":"tuneR package play-function relies external players, method provided convenient approach play samples R console, using audio package. Wave objects played rate specified object. course can also play Wave objects tuneR implementation tuneR::play, calling tuneR::play(wave).","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Play Wave objects — playWave","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playWave.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Play Wave objects — playWave","text":"","code":"if (FALSE) { data(mod.intro) ## PTSample objects can also be ## played with this function as they ## are a child of the Wave object: playWave(PTSample(mod.intro, 2)) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate a table for playing a PTModule object — playingtable","title":"Generate a table for playing a PTModule object — playingtable","text":"method generates table (data.frame) information pattern tables put right order comprehensive format.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate a table for playing a PTModule object — playingtable","text":"","code":"# S4 method for PTModule playingtable( mod, starting.position = 1, max.duration = 2 * 60, speed = 6, tempo = 125, video = c(\"PAL\", \"NTSC\"), play.once = T, verbose = T )"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate a table for playing a PTModule object — playingtable","text":"mod object class PTModule. starting.position numeric starting position index. Determines patternOrder table module start generating playingtable. max.duration numeric value indicating maximum length seconds pattern information returned. default set 120 seconds (2 minutes). modules can long, contain infinite loops position jumps, maximum duration required break routine generating table. speed Default speed use specified pattern data. See ProTrackR documentation info speed' tempo'. tempo Default tempo use specified pattern data. See ProTrackR documentation info speed' tempo'. video video mode Commodore Amiga affects timing routines. mode can specified argument represented character string can either value 'PAL' 'NTSC'. PAL used default. play.logical value. set TRUE, routine stop adding data table starting position (starting.position) reach . Warning: may work correctly last pattern contains pattern break. overruled maximum.duration reached end song. verbose logical value. Suppresses progress report printed base::sink set FALSE. default value TRUE.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generate a table for playing a PTModule object — playingtable","text":"Returns data.frame pattern rows put right order. Information contained returned table described 'Details' section","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generate a table for playing a PTModule object — playingtable","text":"method generates table (data.frame) information pattern tables (PTPattern) put right order, taking account pattern breaks, position jumps pattern loops (see also ProTrackR documentation, section effect commands). information put comprehensive format data.frame, following columns: row Row number index original PTPattern object. filter logical value indicating whether Amiga hardware audio filter either turned using effect command E00/E01 (see also ProTrackR documentation, section effect commands). speed Number 'ticks' per row set Fxy effect commands module. tempo tempo specified Fxy commands module. delay delay applied row specified EEx effect command module. effect.track1..4 effect code (raw) specified 4 tracks module. effect.mag.track1..4 effect magnitude (raw) specified 4 tracks module. sample.nr.track1..4 sample index number (numeric) specified 4 tracks module. note.track1..4 note (factor) specified four tracks module. position positions index number (numeric) patternOrder table module. duration Playback duration corresponding row seconds. cum_duration Cumulative playback duration corresponding row seconds.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Generate a table for playing a PTModule object — playingtable","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/playingtable.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate a table for playing a PTModule object — playingtable","text":"","code":"if (FALSE) { data(mod.intro) pt <- playingtable(mod.intro) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot a PTModule object — plot","title":"Plot a PTModule object — plot","text":"Plots waveforms (non-empty) PTSamples PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot a PTModule object — plot","text":"","code":"# S4 method for PTModule,missing plot(x, y, plot.loop.positions = T, ...)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot a PTModule object — plot","text":"x PTModule object waveforms PTSamples need plotted. y missing. Argument generic plotting method, use. plot.loop.positions logical value indicating whether loop positions need visualised. looped samples, starting ending positions marked vertical green red line, respectively. ... Arguments passed lattice::xyplot.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot a PTModule object — plot","text":"Returns object class trellis. See documentation lattice::xyplot details.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot a PTModule object — plot","text":"plotting routine based lattice::xyplot lattice-package. Plots (non-empty) waveform separate panel. Use arguments lattice::xyplot function customise plot.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Plot a PTModule object — plot","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/plot.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot a PTModule object — plot","text":"","code":"## get the example PTModule provided with the ProTrackR package data(\"mod.intro\") ## The most basic way to plot the module samples: plot(mod.intro) #> Error in as.double(y): cannot coerce type 'S4' to vector of type 'double' ## By using xyplot arguments, we can make it look nicer: plot(mod.intro, type = \"l\", layout = c(1,4), scales = list(x = list(relation = \"free\"))) #> Error in as.double(y): cannot coerce type 'S4' to vector of type 'double'"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/print.html","id":null,"dir":"Reference","previous_headings":"","what":"Print ProTrackR objects — print","title":"Print ProTrackR objects — print","text":"method print ProTrackR S4 class objects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/print.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Print ProTrackR objects — print","text":"","code":"# S4 method for PTCell print(x, ...) # S4 method for PTTrack print(x, ...) # S4 method for PTPattern print(x, ...) # S4 method for PTSample print(x, ...) # S4 method for PTModule print(x, ...)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/print.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Print ProTrackR objects — print","text":"x Either PTModule, PTPattern, PTTrack, PTCell PTSample object. ... arguments passed methods","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/print.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Print ProTrackR objects — print","text":"Depending class x, returns either nothing (NULL) character representation object x.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/print.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Print ProTrackR objects — print","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/print.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Print ProTrackR objects — print","text":"","code":"data(\"mod.intro\") print(mod.intro) #> #> PTModule Object: #> \tModule name:\t\t\tintro\t\t\t #> \tNumber of samples:\t\t4\t\t #> \tNumber of patterns:\t\t4\t\t #> \tPattern order table length:\t9\t print(PTPattern(mod.intro, 1)) #> [,1] [,2] [,3] [,4] #> [1,] \"C-3 01 A08\" \"C-3 02 C40\" \"A#1 03 F06\" \"A#2 04 000\" #> [2,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [3,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"C-3 04 000\" #> [4,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [5,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 120\" \"D-3 04 000\" #> [6,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [7,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 220\" \"D#3 04 000\" #> [8,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [9,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [10,] \"--- 00 000\" \"A#3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [11,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D#3 04 000\" #> [12,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [13,] \"G-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"D-3 04 000\" #> [14,] \"--- 00 A08\" \"F-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [15,] \"F-3 01 000\" \"C-3 02 000\" \"--- 00 000\" \"C-3 04 000\" #> [16,] \"--- 00 A08\" \"A#2 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [17,] \"C-3 01 A08\" \"C-3 02 C40\" \"A#1 03 F06\" \"A#2 04 000\" #> [18,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [19,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D-3 04 000\" #> [20,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [21,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 120\" \"F-2 04 000\" #> [22,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [23,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 220\" \"G-2 04 000\" #> [24,] \"--- 00 000\" \"A#2 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [25,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"A#2 04 000\" #> [26,] \"--- 00 000\" \"A#3 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [27,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [28,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A01\" \"--- 00 A01\" #> [29,] \"G-2 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"--- 00 000\" #> [30,] \"--- 00 A08\" \"F-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [31,] \"A-2 01 000\" \"C-3 02 000\" \"--- 00 000\" \"--- 00 000\" #> [32,] \"--- 00 A08\" \"G-2 04 C08\" \"--- 00 000\" \"--- 00 A01\" #> [33,] \"E-3 01 A08\" \"C-3 02 C40\" \"D-2 03 000\" \"D-3 04 000\" #> [34,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [35,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [36,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [37,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 126\" \"F#3 04 000\" #> [38,] \"--- 00 000\" \"D-3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [39,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 226\" \"G-3 04 000\" #> [40,] \"--- 00 000\" \"E-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [41,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"A-3 04 000\" #> [42,] \"--- 00 000\" \"D-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [43,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"G-3 04 000\" #> [44,] \"--- 00 000\" \"D-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [45,] \"B-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"F#3 04 000\" #> [46,] \"--- 00 A08\" \"D-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [47,] \"A-3 01 000\" \"C-3 02 000\" \"--- 00 000\" \"E-3 04 000\" #> [48,] \"--- 00 A08\" \"E-2 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [49,] \"D-3 01 A08\" \"C-3 02 C40\" \"C-2 03 000\" \"C-3 04 000\" #> [50,] \"--- 01 A08\" \"C-3 02 C30\" \"--- 00 A01\" \"--- 00 A02\" #> [51,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"D-3 04 000\" #> [52,] \"--- 00 000\" \"C-3 02 000\" \"--- 00 A02\" \"--- 00 A02\" #> [53,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 12B\" \"E-3 04 000\" #> [54,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A02\" \"--- 00 A02\" #> [55,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 22B\" \"F-3 04 000\" #> [56,] \"--- 00 000\" \"G-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [57,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"G-3 04 000\" #> [58,] \"--- 00 000\" \"E-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [59,] \"--- 01 A08\" \"C-3 02 000\" \"--- 00 A01\" \"F-3 04 000\" #> [60,] \"--- 00 000\" \"C-3 04 C08\" \"--- 00 A01\" \"--- 00 A02\" #> [61,] \"A-3 01 000\" \"C-3 02 000\" \"--- 00 A01\" \"E-3 04 000\" #> [62,] \"--- 00 A08\" \"G-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" #> [63,] \"G-3 01 000\" \"F-3 04 C08\" \"--- 00 000\" \"D-3 04 000\" #> [64,] \"--- 00 A08\" \"C-3 04 C08\" \"--- 00 000\" \"--- 00 A02\" print(PTTrack(mod.intro, 1, 1)) #> [1] \"C-3 01 A08\" \"--- 01 A08\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" #> [6] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" #> [11] \"--- 01 A08\" \"--- 00 000\" \"G-3 01 000\" \"--- 00 A08\" \"F-3 01 000\" #> [16] \"--- 00 A08\" \"C-3 01 A08\" \"--- 01 A08\" \"--- 01 A08\" \"--- 00 000\" #> [21] \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" #> [26] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"G-2 01 000\" \"--- 00 A08\" #> [31] \"A-2 01 000\" \"--- 00 A08\" \"E-3 01 A08\" \"--- 01 A08\" \"--- 01 A08\" #> [36] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" #> [41] \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"B-3 01 000\" #> [46] \"--- 00 A08\" \"A-3 01 000\" \"--- 00 A08\" \"D-3 01 A08\" \"--- 01 A08\" #> [51] \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" #> [56] \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" \"--- 01 A08\" \"--- 00 000\" #> [61] \"A-3 01 000\" \"--- 00 A08\" \"G-3 01 000\" \"--- 00 A08\" print(PTCell (mod.intro, 1, 1, 1)) #> [1] \"C-3 01 A08\" print(PTSample (mod.intro, 1)) #> #> PTSample Object: #> \tSample name:\t\t\tby pepijn de vries\t\t\t #> \tSample length (samples):\t1040\t #> \tSample length (seconds):\t0.0627478400121797\t #> \tSample volume (0-64):\t\t64\t\t #> \tLoop start position:\t\t762\t\t #> \tLoop length:\t\t\t276\t\t\t #> \tFinetune:\t\t\t0"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the vibrato table used by ProTracker — proTrackerVibrato","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"Gets vibrato table used ProTracker vibrato effects.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"","code":"proTrackerVibrato(x)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"x integer representing table index ranging 0 31. Values outside range can used, produce results valid context ProTracker.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"Returns integer sine value ranging 0 255 valid table index (x) provided. otherwise return sine value ranging -255 255.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"old Commodore Amiga computer built-mathematical functions, many programs machine used data tables. ProTracker vibrato effects sine function used. sine function called, sine values stored table. function returns integer sine values (ranging 0 255) function table index (ranging 0 31).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/proTrackerVibrato.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the vibrato table used by ProTracker — proTrackerVibrato","text":"","code":"## this will return the table as used in ProTracker proTrackerVibrato(0:31) #> [1] 0 24 49 74 97 120 141 161 180 197 212 224 235 244 250 253 255 253 250 #> [20] 244 235 224 212 197 180 161 141 120 97 74 49 24"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert raw vectors into a character string — rawToCharNull","title":"Convert raw vectors into a character string — rawToCharNull","text":"function converts raw data character string.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert raw vectors into a character string — rawToCharNull","text":"","code":"rawToCharNull(raw_dat)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert raw vectors into a character string — rawToCharNull","text":"raw_dat vector class raw converted character.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert raw vectors into a character string — rawToCharNull","text":"character string based raw data","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert raw vectors into a character string — rawToCharNull","text":"function rawToChar() fail vectors raw data embedded 0x00 data. function fail embedded 0x00 values. Instead, replace embedded 0x00 data white spaces. Note leading trailing 0x00 data omitted result.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert raw vectors into a character string — rawToCharNull","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToCharNull.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert raw vectors into a character string — rawToCharNull","text":"","code":"## generate some raw data with an embedded 0x00: some.raw.data <- as.raw(c(0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x00, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21)) if (FALSE) { ## this will fail: try(rawToChar(some.raw.data)) } ## this will succeed: rawToCharNull(some.raw.data) #> [1] \"hello world!\""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert a vector of raw data into a PTModule object — rawToPTModule","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"method treats vector raw data file, converts PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"","code":"# S4 method for raw rawToPTModule(x, ignore.validity = F)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"x vector raw data, conform ProTracker file specs. ignore.validity logical value. set TRUE method attempt decode raw data (x), even invalid. set FALSE (default) validity checked error thrown invalidity occurs.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"returns PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"Data read vector raw data file converted PTModule object. method can useful module files stored virtual Amiga Disk Files (adf), can read raw data, using AmigaFFH package. Use .raw achieve inverse.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToPTModule.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert a vector of raw data into a PTModule object — rawToPTModule","text":"","code":"if (FALSE) { ## convert the example mod into raw data data(\"mod.intro\") mod.raw <- as.raw(mod.intro) ## restore it as a PTModule-class object mod.restored <- rawToPTModule(mod.raw) ## In this case the result is identical to the original: identical(mod.restored, mod.intro) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert a raw vector into signed integers (short) — rawToSignedInt","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"function converts vector raw data signed integer values.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"","code":"rawToSignedInt(raw_dat)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"raw_dat vector raw data.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"vector length raw_dat, holding signed integer values.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"function converts vector raw data signed integer values [-128,127]. convert unsigned integers raw data use .raw(). inverse function see signedIntToRaw().","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToSignedInt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert a raw vector into signed integers (short) — rawToSignedInt","text":"","code":"## generate some raw data: some.raw.data <- as.raw(c(0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x90)) ## convert the raw data into a vector of signed intgers: rawToSignedInt(some.raw.data) #> [1] 104 101 108 108 111 -112"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"function converts raw data unsigned integer","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"","code":"rawToUnsignedInt(raw_dat)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"raw_dat vector class raw converted unsigned integer","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"single unsigned integer value based provided raw data","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"function converts vector raw data single unsigned integer. conversion raw data vector unsigned integers \\[0,255\\] use .integer(). inverse function see unsignedIntToRaw().","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/rawToUnsignedInt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert raw vector into a single unsigned integer value — rawToUnsignedInt","text":"","code":"## generate some raw data: some.raw.data <- as.raw(c(0x01, 0x1e, 0x3f)) ## convert raw data into an unsigned integer: rawToUnsignedInt(some.raw.data) #> [1] 73279 ## note the difference with as.integer(some.raw.data) #> [1] 1 30 63"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":null,"dir":"Reference","previous_headings":"","what":"Read a ProTracker module file — read.module","title":"Read a ProTracker module file — read.module","text":"Reads ProTracker module file coerces PTModule object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read a ProTracker module file — read.module","text":"","code":"# S4 method for character,logical read.module(file, ignore.validity = F) # S4 method for ANY,missing read.module(file, ignore.validity = F) # S4 method for ANY,missing read.module(file, ignore.validity = F) # S4 method for ANY,logical read.module(file, ignore.validity = F)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read a ProTracker module file — read.module","text":"file either filename file connection, allows reading binary data (see e.g., base::file base::url). ignore.validity logical value indicating whether validity PTModule ignored. set FALSE (default), validity read object checked; error thrown object valid. argument set TRUE, validity object checked potentially invalid object returned. validity check PTModule objects strict, can useful ignore check. way can try read broken module file, try fix becomes valid save (write.module) .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read a ProTracker module file — read.module","text":"Returns PTModule object read provided ProTracker file","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Read a ProTracker module file — read.module","text":"routine read ProTracker modules based referenced version ProTracker 2.3A. means routine may able read files produced later ProTracker versions, earlier versions back-compatibility issues. far successfully tested method modules composed ProTracker version 2.3A (believe one popular versions ProTracker back days). also able read .mod files Mod Archive.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Read a ProTracker module file — read.module","text":"https://wiki.multimedia.cx/index.php?title=Protracker_Module","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Read a ProTracker module file — read.module","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Read a ProTracker module file — read.module","text":"","code":"if (FALSE) { ## first create an module file from example data: data(\"mod.intro\") write.module(mod.intro, \"intro.mod\") ## read the module: mod <- read.module(\"intro.mod\") ## or create a connection yourself: con <- file(\"intro.mod\", \"rb\") ## note that you can also read from URL connections! mod2 <- read.module(con) ## don't forget to close the file: close(con) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":null,"dir":"Reference","previous_headings":"","what":"Read an audio file and coerce to a PTSample object — read.sample","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"Reads audio files \"wav\" \"mp3\" files, using tuneR::tuneR methods. Commodore Amiga native formats \"8svx\" \"raw\" can also read.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"","code":"# S4 method for character read.sample(filename, what = c(\"wav\", \"mp3\", \"8svx\", \"raw\"))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"filename character string representing filename read. character string indicating type file read. Can one following: \"wav\" (default), \"mp3\", \"8svx\" \"raw\". AmigaFFH package needs installed order read 8svx files.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"Returns PTSample object based file read.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"method provides wrapper tuneR::readWave tuneR::readMP3 methods tuneR::tuneR. also provides means import audio file formats native Commodore Amiga. Simple 8svx files (also known \"iff\" files) can read. uses AmigaFFH::read.iff method AmigaFFH::AmigaFFH package. also common practice store audio samples raw data Commodore Amiga, byte simply represented signed integer value waveform. audio coerced 8 bit mono maximum length 2*0xffff = 131070 bytes (= samples) per ProTracker standards.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"per ProTracker standards, sample even length (bytes). sample file odd length, raw 0x00 value added end.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/read.sample.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Read an audio file and coerce to a PTSample object — read.sample","text":"","code":"if (FALSE) { data(\"mod.intro\") ## create an audio file which we can then read: write.sample(PTSample(mod.intro, 2), \"snaredrum.iff\", \"8svx\") ## read the created sample: snare <- read.sample(\"snaredrum.iff\", \"8svx\") print(snare) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":null,"dir":"Reference","previous_headings":"","what":"Resample data — resample","title":"Resample data — resample","text":"Resample numeric data different rate.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Resample data — resample","text":"","code":"resample(x, source.rate, target.rate, ...)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Resample data — resample","text":"x numeric vector needs resampled. source.rate rate x sampled Hz (another unit, long unit target.rate). target.rate desired target sampling rate Hz (another unit, long unit source.rate). ... Arguments passed stats::approx. simulate Commodore Amiga hardware, best use 'method = \"constant\" resampling 8 bit samples.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Resample data — resample","text":"Returns resampled numeric vector length round(length(x) * target.rate / source.rate) based x.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Resample data — resample","text":"function resamples numeric data (.e., audio data) source sample rate target sample rate. core uses stats::approx function.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Resample data — resample","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/resample.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Resample data — resample","text":"","code":"some.data <- 1:100 ## assume that the current (sample) rate ## of 'some.data' is 100, and we want to ## resample this data to a rate of 200: resamp.data <- resample(some.data, 100, 200, method = \"constant\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":null,"dir":"Reference","previous_headings":"","what":"Get the length of a PTSample — sampleLength","title":"Get the length of a PTSample — sampleLength","text":"Gets length (samples = bytes) audio fragment stored PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get the length of a PTSample — sampleLength","text":"","code":"# S4 method for PTSample sampleLength(sample)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get the length of a PTSample — sampleLength","text":"sample PTSample object length needs returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get the length of a PTSample — sampleLength","text":"Returns numeric value representing number samples (bytes) PTSample object sample composed .","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get the length of a PTSample — sampleLength","text":"PTSamples 8 bit mono audio fragments. method returns length fragment expressed number samples (also equals number bytes).","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Get the length of a PTSample — sampleLength","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleLength.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get the length of a PTSample — sampleLength","text":"","code":"data(\"mod.intro\") ## Show the length of the second sample in mod.intro sampleLength(PTSample(mod.intro, 2)) #> [1] 1930"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or replace a sample number — sampleNumber","title":"Extract or replace a sample number — sampleNumber","text":"Extract replace PTSample index number PTCell object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or replace a sample number — sampleNumber","text":"","code":"# S4 method for PTCell sampleNumber(x) # S4 method for PTCell,numeric sampleNumber(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or replace a sample number — sampleNumber","text":"x PTCell object PTSample index number needs extracted replaced. value numeric replacement value index. Valid indices range 1 31. value 0 can also assigned, play sample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract or replace a sample number — sampleNumber","text":"sampleNumber, numeric value representing sample index number object x returned. sampleNumber<-, copy object x returned sample index number replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract or replace a sample number — sampleNumber","text":"PTSample index number PTCell object, indicates sample PTModule object needs played. method can used extract replace index PTCell object.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract or replace a sample number — sampleNumber","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleNumber.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract or replace a sample number — sampleNumber","text":"","code":"data(\"mod.intro\") ## get the sample index number of PTCell at pattern #3, ## track #2, row #1 from mod.intro (which is 2): sampleNumber(PTCell(mod.intro, 1, 2, 3)) #> [1] 2 ## replace the sample index number of PTCell at pattern #3, ## track #2, row #1 from mod.intro with 1: sampleNumber(PTCell(mod.intro, 1, 2, 3)) <- 1"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the sample rate for a note or period value — sampleRate","title":"Calculate the sample rate for a note or period value — sampleRate","text":"Calculate sample rate note ProTracker period value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the sample rate for a note or period value — sampleRate","text":"","code":"noteToSampleRate(note = \"C-3\", finetune = 0, video = c(\"PAL\", \"NTSC\")) periodToSampleRate(period, video = c(\"PAL\", \"NTSC\"))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the sample rate for a note or period value — sampleRate","text":"note character string representing note sample rate calculated. finetune integer value ranging -8 7. value used tune audio sample. video video mode used calculate sample rate. character string can either value 'PAL' 'NTSC'. PAL used default. period ProTracker integer value period value sample rate calculated.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate the sample rate for a note or period value — sampleRate","text":"Returns sample rate samples per seconds.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the sample rate for a note or period value — sampleRate","text":"timing Commodore Amiga depends video mode, either 'PAL' 'NTSC'. Therefore sample rates also depend modes. PAL mostly used Europe, Amiga popular Europe, PAL used default.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Calculate the sample rate for a note or period value — sampleRate","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/sampleRate.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the sample rate for a note or period value — sampleRate","text":"","code":"## calculate the sample rate for a ProTracker period value of 200 periodToSampleRate(200) #> [1] 17734.47 ## calculate the sample rate for a sample at note 'A-3' noteToSampleRate(\"A-3\") #> [1] 27928.31 ## note that the NTSC video system gives a slightly different rate: noteToSampleRate(\"A-3\", video = \"NTSC\") #> [1] 28185.39 ## fine tuning a sample will also give a slightly different rate: noteToSampleRate(\"A-3\", finetune = -1) #> [1] 27710.12"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"function converts signed integer ranging -8 7 either high low nybble byte, represented raw data.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"","code":"signedIntToNybble(int_dat, which = c(\"low\", \"high\"))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"int_dat single integer value vector integer data ranging -8 7. character string indicating whether nybble set \"low\" (default) \"high\" position raw data returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"Returns raw data length int_dat. returned raw data holds either low high nybbles (specified ) based provided signed integers.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"Nybbles 4 bit values, byte (8 bits) holds two nybbles. high nybble (left-hand side byte) low nybble (right-hand side byte). function converts signed integer value ranging -8 7 nybble sets either high low nybble raw data.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToNybble.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert a signed integer to a nybble in raw data. — signedIntToNybble","text":"","code":"## generate some integers in the right range: dati <- sample(-8:7, 100, replace = TRUE) ## Set the low nybbles of rawl based on dati: rawl <- signedIntToNybble(dati) ## Set the high nybbles of rawl based on dati: rawh <- signedIntToNybble(dati, \"high\")"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert signed integers (short) into a raw vector — signedIntToRaw","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"function converts signed integer values vector raw data.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"","code":"signedIntToRaw(int_dat)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"int_dat vector integer values, ranging -128 127.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"vector length int_dat, holding raw data.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"function converts signed integer values [-128,127] vector raw data. function fail values range (< -128 > 127). convert raw data vector unsigned integers use .integer(). inverse function see rawToSignedInt().","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/signedIntToRaw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert signed integers (short) into a raw vector — signedIntToRaw","text":"","code":"## generate some signed integers: some.integers <- c(-100, 40, 0, 30, -123) ## convert the signed integers into a vector of raw data: signedIntToRaw(some.integers) #> [1] 9c 28 00 1e 85"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":null,"dir":"Reference","previous_headings":"","what":"Tracker flag indicating version compatibility — trackerFlag","title":"Tracker flag indicating version compatibility — trackerFlag","text":"Method obtain tracker flag, indicates version compatibility ProTracker module (PTModule object).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Tracker flag indicating version compatibility — trackerFlag","text":"","code":"# S4 method for PTModule trackerFlag(x) # S4 method for PTModule trackerFlag(x) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Tracker flag indicating version compatibility — trackerFlag","text":"x PTModule object flag needs returned replaced. value character string representing tracker flag object x needs replaced . either \"M.K.\" \"M!K!\". Note current flag \"M!K!\" replaced \"M.K.\", PTPatterns may get lost latter supports less patterns.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Tracker flag indicating version compatibility — trackerFlag","text":"trackerFlag, tracker flag object x returned. trackerFlag<-, copy object x updated tracker flag returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Tracker flag indicating version compatibility — trackerFlag","text":"ProTrackR supports two tracker flags: \"M.K.\" \"M!K!\". M.K. presumably initials programmers Mahony Kaktus, unfortunately documentation matter ambiguous. case, modules flag \"M.K.\" can hold 64 patterns, whereas modules flag \"M!K!\" can hold 100 patterns. Use method obtain replace tracker flag PTModule.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Tracker flag indicating version compatibility — trackerFlag","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/trackerFlag.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Tracker flag indicating version compatibility — trackerFlag","text":"","code":"data(\"mod.intro\") ## the current trackerFlag of mod.intro is \"M.K.\", ## meaning that it can hold a maximum of 64 patterns: trackerFlag(mod.intro) #> [1] \"M.K.\" patternOrder(mod.intro, full = TRUE) <- 0:63 ## If we upgrade the trackerFlag of mod.intro to \"M!K!\" ## it can hold a maximum of 100 patterns!: trackerFlag(mod.intro) <- \"M!K!\" patternOrder(mod.intro, full = TRUE) <- 0:99 ## Now let's do something dangerous: ## current flag is \"M!K!\", by setting it ## back to \"M.K.\", patterns 65:100 are lost... trackerFlag(mod.intro) <- \"M.K.\" #> Warning: PTModule holds more patterns than M.K. flag allows. Higher patterns are removed!"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert unsigned integer into a raw vector — unsignedIntToRaw","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"function converts unsigned integer vector raw data.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"","code":"unsignedIntToRaw(int_dat, length.out = 1)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"int_dat single integer value. list vector values. provided, first element evaluated. Input data converted absolute integer values. length.Required length vector hold resulting. raw data. Defaults 1. value int_dat large convert raw data length length., data clipped.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"vector length length., holding raw data.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"function converts unsigned integer value vector (specified length, namely length.) raw data. inverse function use rawToUnsignedInt().","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/unsignedIntToRaw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert unsigned integer into a raw vector — unsignedIntToRaw","text":"","code":"## generate some unsigned integer: some.integer <- 43251 ## convert the unsigned integer into raw data: unsignedIntToRaw(some.integer, length.out = 4) #> [1] 00 00 a8 f3 if (FALSE) { ## note that the integer is too large to store as raw with length.out = 1: unsignedIntToRaw(some.raw.data, length.out = 1) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":null,"dir":"Reference","previous_headings":"","what":"Default playback volume of PTSample — volume","title":"Default playback volume of PTSample — volume","text":"Extract replace default volume PTSample.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Default playback volume of PTSample — volume","text":"","code":"# S4 method for PTSample volume(sample) # S4 method for PTSample,numeric volume(sample) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Default playback volume of PTSample — volume","text":"sample PTSample default volume needs extracted replace. value numeric value ranging 0 64, representing volume level.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Default playback volume of PTSample — volume","text":"volume volume value, represented integer value ranging 0 64, returned. volume<- PTSample sample, updated volume value, returned.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Default playback volume of PTSample — volume","text":"PTSamples default playback volume, ranging 0 (silent) 64 (maximum volume). method can used extract value, safely replace .","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Default playback volume of PTSample — volume","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/volume.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Default playback volume of PTSample — volume","text":"","code":"data(\"mod.intro\") ## get the volume of the first sample of mod.intro: volume(PTSample(mod.intro, 1)) #> [1] 64 ## Let's lower the volume of this sample to 32 ## (or as a hexadecimal: 0x20): volume(PTSample(mod.intro, 1)) <- 0x20"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or replace a PTSample waveform — waveform","title":"Extract or replace a PTSample waveform — waveform","text":"Extract replace waveform PTSample object. waveform represented vector numeric values ranging 0 255.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or replace a PTSample waveform — waveform","text":"","code":"# S4 method for PTSample waveform(sample, start.pos = 1, stop.pos = sampleLength(sample), loop = TRUE) # S4 method for PTSample waveform(sample) <- value"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or replace a PTSample waveform — waveform","text":"sample PTSample object waveform needs extracted replaced. start.pos numeric starting index, giving starting position waveform returned. Default value 1. index greater zero. stop.pos numeric stopping index, giving stopping position waveform returned. Default value sampleLength(sample) index greater start.pos. loop logical value indicating whether waveform modulated specified loop positions (see loopStart loopLength), waveform stop end sample (padded NA values beyond sample length). first set TRUE latter set FALSE. value vector numeric values ranging 0 255, representing waveform used replace object sample. length even exceed 2*0xffff = 131070. loopStart loopLength adjusted automatically range new waveform. Use NA generate empty/blank PTSample object.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract or replace a PTSample waveform — waveform","text":"waveform, waveform sample returned vector numeric values ranging 0 255. loop set FALSE starting position beyond sample length, NA values returned. loop set TRUE starting position beyond sample loop (present, see loopState), waveform modulated loop positions. waveform<-, copy object sample returned waveform replaced value.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Extract or replace a PTSample waveform — waveform","text":"Sample waveforms stored 8 bit signed short integer values ranging -128 +127 original ProTracker files. However, PTSample class extends tuneR::Wave class, waveforms represented integer values ranging 0 255 ProTrackR package. per ProTracker specifications, samples 8 bit mono quality can even length maximum 2*0xffff = 131070. method can used extract waveform replace .","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract or replace a PTSample waveform — waveform","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/waveform.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract or replace a PTSample waveform — waveform","text":"","code":"data(\"mod.intro\") ## Loop sample #1 of mod.intro beyond it's ## length of 1040 samples: wav1 <- waveform(PTSample(mod.intro, 1), 1, 5000) ## get the waveform from sample #2 ## of mod.intro: wav2 <- waveform(PTSample(mod.intro, 2)) ## create an echo effect using ## the extracted waveform: wav2 <- c(wav2, rep(128, 1000)) + c(rep(128, 1000), wav2)*0.25 - 25 ## assign this echoed sample to ## sample #2 in mod.intro: waveform(PTSample(mod.intro, 2)) <- wav2 ## Blank out sample #1 in mod.intro: waveform(PTSample(mod.intro, 1)) <- NA #> Warning: Sample loop start is outside the new range. It is set to 0. #> Warning: Sample loop end is outside the new range. It's set to its maximum."},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":null,"dir":"Reference","previous_headings":"","what":"Export an PTModule object as a ProTracker module file — write.module","title":"Export an PTModule object as a ProTracker module file — write.module","text":"Export PTModule object ProTracker module file, conform ProTracker 2.3A specifications.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Export an PTModule object as a ProTracker module file — write.module","text":"","code":"# S4 method for PTModule,ANY write.module(mod, file) # S4 method for PTModule,character write.module(mod, file)"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Export an PTModule object as a ProTracker module file — write.module","text":"mod valid PTModule object saved ProTracker *.mod file file either filename write , file connection, allows write binary data (see base::file).","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Export an PTModule object as a ProTracker module file — write.module","text":"Writes module file returns nothing.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Export an PTModule object as a ProTracker module file — write.module","text":"routine write ProTracker modules based referenced version ProTracker 2.3A. means routine may able write files ar compatible later earlier ProTracker versions.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Export an PTModule object as a ProTracker module file — write.module","text":"https://wiki.multimedia.cx/index.php?title=Protracker_Module","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Export an PTModule object as a ProTracker module file — write.module","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Export an PTModule object as a ProTracker module file — write.module","text":"","code":"if (FALSE) { ## get the PTModule object provided with the ProTrackR package data(\"mod.intro\") ## save the object as a valid ProTracker module file: write.module(mod.intro, \"intro.mod\") ## or create the connection yourself: con <- file(\"intro2.mod\", \"wb\") write.module(mod.intro, con) ## don't forget to close the connection after you're done: close(con) }"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":null,"dir":"Reference","previous_headings":"","what":"Write a PTSample object to an audio file — write.sample","title":"Write a PTSample object to an audio file — write.sample","text":"Write PTSample \"wav\", \"8svx\" \"raw\" audio file.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Write a PTSample object to an audio file — write.sample","text":"","code":"# S4 method for PTSample,character write.sample(sample, filename, what = c(\"wav\", \"8svx\", \"raw\"))"},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Write a PTSample object to an audio file — write.sample","text":"sample PTSample object needs exported audio file. filename character string representing filename audio needs saved. character string indicating type file exported. Can one following: \"wav\" (default), \"8svx\" \"raw\". AmigaFFH package needs installed order write 8svx files.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Write a PTSample object to an audio file — write.sample","text":"Saves audio file, returns nothing.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Write a PTSample object to an audio file — write.sample","text":"method provides wrapper tuneR::writeWave method tuneR::tuneR. also provides means export audio file formats native Commodore Amiga. PTSamples can exported simple (uncompressed) 8svx files also known \"iff\" files). addition can exported raw data, byte simply represents signed integer value waveform.","code":""},{"path":[]},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Write a PTSample object to an audio file — write.sample","text":"Pepijn de Vries","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/reference/write.sample.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Write a PTSample object to an audio file — write.sample","text":"","code":"if (FALSE) { data(\"mod.intro\") ## Export the second sample of mod.intro as a wav file: write.sample(PTSample(mod.intro, 2), \"snaredrum.wav\", \"wav\") ## Export the second sample of mod.intro as an 8svx file: write.sample(PTSample(mod.intro, 2), \"snaredrum.iff\", \"8svx\") ## Export the second sample of mod.intro as a raw file: write.sample(PTSample(mod.intro, 2), \"snaredrum.raw\", \"raw\") }"},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v040-release-date-2023-02-14","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.4.0 (Release date: 2023-02-14)","title":"ProTrackR v0.4.0 (Release date: 2023-02-14)","text":"Added pkgdown website README switched RMarkdown mode roxygen2 documentation","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v038-release-date-2023-08-22","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.8 (Release date: 2023-08-22)","title":"ProTrackR v0.3.8 (Release date: 2023-08-22)","text":"CRAN release: 2023-08-22 Updates comply latest CRAN policies Roxygen2 standards","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v037-release-date-2020-02-03","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.7 (Release date: 2020-02-03)","title":"ProTrackR v0.3.7 (Release date: 2020-02-03)","text":"CRAN release: 2020-02-03 Fixes modArchive functions, due changes API Fix structure examples pass CRAN tests. Fix validation functions order support changes latest version R","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v036-release-date-2019-02-06","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.6 (Release date: 2019-02-06)","title":"ProTrackR v0.3.6 (Release date: 2019-02-06)","text":"CRAN release: 2019-02-06 Added modLand helper functions. Reading writing 8svx samples read.sample write.sample now implemented using AmigaFFH package, robust implementation Interchange File Format handlers. Added ‘mix’ argument ‘modToWave’-method. set FALSE, method can now return individual channels (without mixing ). ‘playWave’-method updated also accepts multi-channel waves (WaveMC), order make compatible modification specified . Available documentation 4 channels mixed left right audio output channel respectively inconsistent. version assume channels 1 4 (0 3 using Amiga indexing) mixed left channel channels 2 3 (1 2 using Amiga indexing) mixed right channel. means output channels now swapped compared earlier versions package. bug implementation ‘porta note’ effects (3 5), now fixed. Added new implementation generic ‘.raw’ method, allows convert PTModule objects raw data. Also added ‘rawToPTModule’ method achieve inverse. Endianess set “big” instead “little” (whoops), luckily, consequences data read raw data. corrected code nonetheless Minor corrections manual","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v035-release-date-2017-10-14","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.5 (Release date: 2017-10-14)","title":"ProTrackR v0.3.5 (Release date: 2017-10-14)","text":"CRAN release: 2017-10-14 Added functions exchange pattern data MODPlug tracker. Endianness explicitely set “little” reading writing samples modules. data read written raw, affect package functioning. Removed unnecessary print statement PTBlock routine. Fixed bug ‘rawToCharNull’ function. Fixed bug ‘modToWave’ routine caused error rare conditions. Setting stereo.separation 0 handled correctly ‘modToWave’ routine. Channels mixed converting mono. now fixed.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v034-release-date-2016-11-25","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.4 (Release date: 2016-11-25)","title":"ProTrackR v0.3.4 (Release date: 2016-11-25)","text":"CRAN release: 2016-11-25 added “fix.PTModule” method attempts fix module object conform ProTracker specs… period limits porta effects fixed inverted logical interpretation ‘verbose’ argument, incorrect earlier versions. added modified several ‘modArchive’- functions, better support modarchive.org modified S4-object validation functions run faster. modified ‘write.module’-method write modules much faster fixed bug ‘read.module’-method modified read modules much faster. fixed bug ‘loopStart<-’-method fixed bug ‘loopLength<-’-method fixed bug ‘patternOrder<-’-method fixed bug ‘appendPattern’-method fixed bug ‘volume<-’-method fixed bug ‘waveform<-’- ‘waveform’-method","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v033-release-date-2016-03-26","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.3 (Release date: 2016-03-26)","title":"ProTrackR v0.3.3 (Release date: 2016-03-26)","text":"CRAN release: 2016-03-26 Minor correction manual.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v032-release-date-2016-03-25","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.2 (Release date: 2016-03-25)","title":"ProTrackR v0.3.2 (Release date: 2016-03-25)","text":"Minor corrections manual.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v031-release-date-2016-03-25","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.3.1 (Release date: 2016-03-25)","title":"ProTrackR v0.3.1 (Release date: 2016-03-25)","text":"Modified playing routine porta effects can’t slide period values note B-3 856. Period values cut-values processing effects well. Thanks must go Olav Sørensen (created Protracker v2.3D clone modern machines, https://16-bits.org/pt.php) confirming software hardware limits. Resampling routine modToWave-method rewritten. faster now. 9xy command now implemented emulates ProTracker ‘offset bug’. Therewith, player routine now passes ‘ptoffset.mod’ test. Bug resampling samples ‘modToWave’- routine fixed. ‘modArchive’ functions added package. Effect commands ‘E4x’ ‘E7x’ now implemented player routine. Implementation effect command ‘5xy’ fixed. previous release, generated wave data ended range mixing procedure. now fixed. ‘playWave’-method modified returns ‘audioInstance’-object (audio package) allowing control playback. Minor corrections/improvements manual Mixing tracks turned fixed","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v023-release-date-2015-11-07","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.2.3 (Release date: 2015-11-07)","title":"ProTrackR v0.2.3 (Release date: 2015-11-07)","text":"CRAN release: 2015-11-07 Minor corrections manual pass CRAN checks.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v022-release-date-2015-11-07","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.2.2 (Release date: 2015-11-07)","title":"ProTrackR v0.2.2 (Release date: 2015-11-07)","text":"Minor corrections manual pass CRAN checks.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v021-release-date-2015-11-07","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.2.1 (Release date: 2015-11-07)","title":"ProTrackR v0.2.1 (Release date: 2015-11-07)","text":"‘clearSamples’-method added package. ‘clearSong’-method added package. ‘modToWave’-method added package ‘playingtable’-method added package ‘playMod’-method added package ‘playWave’-method added package ‘resample’-function added package avoid ‘seewave’ dependency (available platforms). ‘waveform’-method now includes additional arguments: ‘start.pos’, ‘stop.pos’ ‘loop’ removed ‘utils’ import… ‘name’ method, PTSample objects, incorrectly returned raw representation sample name instead character representation. now fixed. ‘playSample’ printing names additional (…) arguments previous release. meant test behaviour intended release. removed. section ProTracker effect commands added manual minor corrections made manual","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v013-release-date-2015-09-25","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.1.3 (Release date: 2015-09-25)","title":"ProTrackR v0.1.3 (Release date: 2015-09-25)","text":"CRAN release: 2015-09-26 minor fixes pass CRAN checks.","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v012-release-date-2015-09-25","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.1.2 (Release date: 2015-09-25)","title":"ProTrackR v0.1.2 (Release date: 2015-09-25)","text":"Minor fixes pass CRAN checks. ‘playSample’ method, ‘finetune’ argument now correctly passed ‘noteToSampleRate’ function. , possible play finetune specified sample. Correction validity check objects S4 class ‘PTSample’: wlooplen allowed value zero sample empty. prototype S4 class ‘PTSample’ changed set wlooplen value zero. slot descriptions wloopstart wlooplen ‘PTSample’ documentation contained errors corrected. ‘loopLength<-’, ‘PTSample-method’ ‘read.sample’ methods modified handle adjustments ‘PTSample’ class. Removed superfluous argument ‘value’ ‘patternLength’ method","code":""},{"path":"https://pepijn-devries.github.io/ProTrackR/news/index.html","id":"protrackr-v011-release-date-2015-09-25","dir":"Changelog","previous_headings":"","what":"ProTrackR v0.1.1 (Release date: 2015-09-25)","title":"ProTrackR v0.1.1 (Release date: 2015-09-25)","text":"First release: Provided basis importing, exporting manipulating ProTracker modules. Basic playing routine, playing samples module (module ).","code":""}]
de Vries P (2024). ProTrackR: Manipulate and Play 'ProTracker' Modules. -R package version 0.3.9, https:://www.github.com/pepijn-devries/ProTrackR/, https://pepijn-devries.github.io/ProTrackR/. +R package version 0.4.0, https:://www.github.com/pepijn-devries/ProTrackR/, https://pepijn-devries.github.io/ProTrackR/.
@Manual{, title = {ProTrackR: Manipulate and Play 'ProTracker' Modules}, author = {Pepijn {de Vries}}, year = {2024}, - note = {R package version 0.3.9, https:://www.github.com/pepijn-devries/ProTrackR/}, + note = {R package version 0.4.0, https:://www.github.com/pepijn-devries/ProTrackR/}, url = {https://pepijn-devries.github.io/ProTrackR/}, }
install.packages("ProTrackR")
-Get development version on github +Get development version from R-Universe
Get development version on github
Get development version from R-Universe
install.packages("ProTrackR", repos = c('https://pepijn-devries.r-universe.dev', 'https://cloud.r-project.org'))
pkgdown
https://en.wikipedia.org/wiki/MOD_(file_format)
https://wiki.multimedia.cx/index.php?title=Protracker_Module
http://coppershade.org/articles/More!/Topics/Protracker_File_Format/
When replacing this code, all three digit hexadecimal character strings are accepted, although not all codes will represent a valid effect or trigger. See -http://coppershade.org/articles/More!/Topics/Protracker_Effect_Commands/ +https://wiki.openmpt.org/Manual:_Effect_Reference#MOD_Effect_Commands for a valid list of effect codes.
character