Skip to content

Scream Tracker 3 to Scream Tracker 2 module downgrader....don't ask-

License

Notifications You must be signed in to change notification settings

RepellantMold/Screamverter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Screamverter

standard-readme compliant

A command line tool to downgrade (that being a very heavy keyword) Scream Tracker 3 modules to Scream Tracker 2 modules, written in C99.

Table of Contents

Usage

./screamverter [-s] input.s3m output.stm

Important

These points are important for a decent conversion.

  • 4 channels preferably (it only converts the first four channels.)
  • Sample sizes cannot exceed 65535 (and no 16-bit samples.)
  • No panning or Adlib, Scream Tracker 2/Scream Tracker Music Interface Kit is mono.
  • Sample names are gonna truncated heavily to 12 characters if its file name field is blank.
  • You can only use effects A - J, with some caveats with the table shown below.
Effect Function in ST2/STMIK - in ST3/others Notes/Quirks (Effect memory does not exist in Scream Tracker 2, so a parameter of 0 will act like a no-op for any effect that normally has it. (e.g. volume slide, portamento slides, vibrato, etc.))
Axx Set speed - Set ticks per row It has a scaling factor (TODO: handle it) alongside setting ticks per row.
Bxx Set next order - Position jump It does not perform an immediate pattern break unlike most other trackers, so it's best to place it alongside a Pattern break.
Cxx Pattern break The parameter is ignored which is identical behavior to NoiseTracker.
Dxy Volume slide There's no fine slides, and y will take priority if both x and y are specified (which is backwards from how it's usually handled).
Exx Portamento down This effect can cause the note period to underflow, and there are no fine/extra-fine slides.
Fxx Portamento up This effect can cause the note period to overflow, ditto for fine/extra-fine slides.
Gxx Tone portamento It does not reset the sample volume unlike most other trackers.
Hxy Vibrato The depth is doubled compared to other trackers, this converter will attempt to adjust the depth accordingly.
Ixy Tremor A parameter of 0 will be a very fast tremor, like old Scream Tracker 3.
Jxy Arpeggio The effect behaves strangely since it tends to skip to y halfway through a row if x was 0, it's not commonly implemented this way however.
Kxx (No-op) This can be entered into the editor but it does not do anything, it also bugs out Scream Tracker 3 when importing so it's best to not use it!
Lxx (No-op) Ditto.
Mxx (No-op) Ditto.
Nxx (No-op) Ditto.
Oxx (No-op) Ditto.

Maintainers

@RepellantMold @cs127

Contributing

PRs accepted.

Small note: If editing the README, please conform to the standard-readme specification.

License

ISC © 2024 RepellantMold

Acknowledgements