Skip to content

Repository files navigation

ptcMod

Mod for pxtone Collage that adds some shiny features

READ THIS FIRST

The program is extremely invasive to ptCollage.
This project makes extensive use of unsafe code (read: raw memory manipulation, raw function calls into memory, ASM injection).
While I personally use it all the time with no issue, if something goes wrong your ptCollage could instantly crash without recovery.
Please save often and make some backups - if it randomly segfaults or something your unsaved changes will be very lost.

ptcMod may be flagged by antiviruses (ie. Trojan:Win32/Wacatac.B!ml) as a side effect of how it works. The way ptcMod injects into ptCollage is similar to how some viruses hook other processes, and some antiviruses will detect this. Obviously I can say this repo (PieKing1215/ptcMod) and official builds do not actually contain malware, but if you want to be sure, look over the code and build from source.

Support

The goal is to continuously support at least both ptCollage 0.9.2.5 and whatever the latest version is.
Currently 0.9.2.5 is fully supported and 0.9.4.54 has some simple things but not the newer custom rendering stuff (0.9.4.56 is also unsupported -> #22)

Basic usage

Have ptCollage.exe open and run the injector exe.
A popup should appear on ptCollage saying it injected, and a new menu option "PTC Mod" should appear in the menu bar.
You can edit the mod's settings there, or click "Uninject" to close ptcMod.
(ptcMod does not modify the actual ptCollage exe file, so you can also just close and reopen it to get rid of the mod)

Features

FPS Unlock

If enabled, removes the fps limiting present in ptc 0.9.2.5.
(note: the fps counter only goes to 99 in vanilla ptc, but this mod also patches it so it can display 3 digits)

Scroll Hook

Enables custom scrolling handling. Some other features require this, and will be grayed out if scroll hook is disabled.
Having this enabled means the window is redrawn each frame, which results in far more GPU usage.

Smooth Scroll

If enabled, the song is scrolled smoothly while playing instead of snapping to each measure.
Disable the vanilla "scroll" button in the player window to stop flickering.
Requires Scroll Hook.

Playhead

If enabled, draws a vertical line at the song's current position while playing.
Requires Scroll Hook.

Note Render Hook

Enables custom unit/keyboard view rendering that completely replaces vanilla note drawing.
Other rendering effects require this.

Use Separate Surface

If enabled, custom rendering is done to a separate buffer before being copied to the main window.
If disabled, custom rendering is done directly on the main window.
Makes no visible difference but performance may be better with one or the other depending on your system.
(eg. on my old windows enabled was better, but on linux via wine disabled seems better)
Requires Note Render Hook.

Key Notches

Adds a little indent to notes in the unit view whenever their key changes in the middle of a note (eg. porta).
Requires Note Render Hook.

Porta View

Enables visualization of note key affected by porta in the keyboard view.
High performance impact.
Requires Note Render Hook.

Colored Units

Each unit can have a different color, instead of them all being orange.
Currently hardcoded but will become customizeable.
Requires Note Render Hook.

Volume Fade

If enabled, when the song is playing notes will have varying transparency based on their volume and velocity.
Currently only applies in unit view; will be extended to keyboard view at some point.
Requires Note Render Hook.

Note Pulse

If enabled, notes will pulse whiteish when they are played.
Currently only applies in unit view; will be extended to keyboard view at some point.
Requires Scroll Hook & Note Render Hook.

Misc other things

Drag and drop pxtone web URLs ("Drop URLs" option) Volume Multiply tool (in custom "Tools" menu), like the vanilla volume add menu but multiplies (eg. you can put 0.5 to halve volume events in a range) Increased dialog box input field width (so you can type eg. "-12" even if you have a wider font)

Planned Features

(Also see the Project page)

Performance improvements

More scrolling options - like snap to beat, or only scroll when the playhead is close to the right of the screen.

Playhead timing adjustment (so you can compensate for latency)

Remove/raise the project title editor character limit since it saves/loads longer names just fine.

Increase the number of buffer measures after the end of the song so you can scroll further.

Smooth line/curve tool for volume panel.

Auto backup tool that automatically backs up the opened song at certain intervals or something.

Tempo change tool - enter a list of tempo changes and it will reposition notes/events to match.

VST support

Soundfont support

Probably some more I can't think of.

Feel free to suggest more on the issue tracker!

Download

There are no stable releases right now but if there were they would be here: Releases.
For dev builds: sign in to GitHub, go here, click the latest one, scroll down to "Artifacts" and download it.
Or download at https://nightly.link/PieKing1215/ptcMod/workflows/rust/main/ptcMod.zip
Unzip and run ptc-mod.exe to run.

License

pxtone © STUDIO PIXEL

This project contains no code from the original ptCollage or pxtone tools.

ptcMod licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Mod for pxtone Collage that adds some shiny features

Topics

Resources

Stars

9 stars

Watchers

4 watching

Forks

Releases

Used by

Contributors

Languages