Mod for pxtone Collage that adds some shiny features

Overview

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).
There is a chance it could explode your ptCollage at any moment and it has not been tested extensively.
I would recommend not actually using this while composing right now.
If you must, save often and make some backups - if it randomly segfaults or something your unsaved changes will be very lost.

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 and 0.9.4.54 are fully supported.

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 but it can render higher than that)

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.

Colored Units

Each unit can have a different color, instead of them all being orange.
Currently hardcoded but will become customizeable.
Currently only applies in unit view; will be extended to keyboard view at some point.

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.
High performance impact.

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.

Misc other things

Drag and drop pxtone web URLs ("Drop URLs" option)

Planned Features

(Also see the Project page)

Performance improvements (custom note rendering is extremely unoptimized)

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

Maybe built in sf2 support so you won't need to use a VST?

Probably some more I can't think of.

Feel free to suggest more on the issue tracker!

Download

For "stable" releases (there are none right now), see 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/master/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.

You might also like...
Gm microoptimisation war crime - An experimental optimisation for Garry's Mod

Wat This attractively named repository contains a Garry's Mod module that performs a micro optimisation that makes use of LuaJIT's constant folding on

A Rust-based Garry's Mod module for fetching environment variables.

gm_environ Using Environment Variables in Garry's Mod. Installation Download a copy of the module from the releases (or compile from source) Move the

A curl(libcurl) mod for rust.

curl Master Dev A lightweight Curl-wrapper for using (mostly) HTTP from Rust. While there are a couple of Rust HTTP libraries like rust-http and its s

Cross-platform CLI Rimworld Mod manager. Still under development

rwm Inspired by Spoons rmm. This is a cross-platform Mod Manager for RimWorld intended to work with macOS, linux and Windows Up to now, you must have

Mod for Mega Man Battle Network Legacy Collection to restore the WWW base music in the postgame.

MMBNLC Postgame WWW Base Music mod This is a mod for Mega Man Battle Network Legacy Collection Vol. 2 adjusts the field music played in the WWW base i

A cross-platform graphical process/system monitor with a customizable interface and a multitude of features
A cross-platform graphical process/system monitor with a customizable interface and a multitude of features

A cross-platform graphical process/system monitor with a customizable interface and a multitude of features. Supports Linux, macOS, and Windows. Inspired by both gtop and gotop.

Rust library for regular expressions using "fancy" features like look-around and backreferences

fancy-regex A Rust library for compiling and matching regular expressions. It uses a hybrid regex implementation designed to support a relatively rich

Rust implementation of PowerSession, with new features and enhancements

PowerSession Record a Session in PowerShell. PowerShell version of asciinema based on Windows Pseudo Console(ConPTY) This is a new Rust implemented ve

Estratto is a powerful and user-friendly Rust library designed for extracting rich audio features from digital audio signals.
Estratto is a powerful and user-friendly Rust library designed for extracting rich audio features from digital audio signals.

estratto 〜 An Audio Feature Extraction Library estratto is a powerful and user-friendly Rust library designed for extracting rich audio features from

Comments
  • Drag and drop pxtone web URLs

    Drag and drop pxtone web URLs

    Allow dragging and dropping pxtone web song links (eg https://www.ptweb.me/play/Iw51) to load them into ptCollage, like how you can drag and drop .ptcop files

    enhancement 
    opened by PieKing1215 1
  • Allow inputting longer project names

    Allow inputting longer project names

    You can already hex edit a ptcop to give it a longer name, the 16 char limit is only enforced in the text field. The format stores the project name as a 32 bit length and that size char array (unlike unit names which are a fixed array padded with null)

    enhancement 
    opened by PieKing1215 0
  • Make a nicer mod settings UI

    Make a nicer mod settings UI

    A menu bar with a million drop down toggles is not particularly user friendly. Settings that don't need to be changed frequently should go into a big preferences dialog or something.

    enhancement 
    opened by PieKing1215 0
Owner
David M.
Programmer and game developer pursuing a Computer Science & Game Development double major at Worcester Polytechnic Institute.
David M.
Lightweight alternative Discord client with a smaller footprint and some fancy extensible features.

Dorion Dorion is an alternative Discord client aimed and lower-spec or storage-sensitive PCs that supports themes, plugins, and more! Table of Content

SpikeHD 20 Jan 2, 2023
Rust port of https://github.com/hunar4321/life_code with some fun features.

Smarticles A Rust port of Brainxyz's Artificial Life simulator with some fun features. A simple program to simulate primitive Artificial Life using si

Chevy Ray Johnston 15 Dec 24, 2022
Simple low-level web server to serve file uploads with some shell scripting-friendly features

http_file_uploader Simple low-level web server to serve file uploads with some shell scripting-friendly features. A bridge between Web's multipart/for

Vitaly Shukela 2 Oct 27, 2022
Some Steam patches, fixing broken Steam features on Asus Rog Ally

Ally Steam Patches Ally Steam Patches is a tool designed to enhance your Steam experience by applying patches to the Steam client. Installation To ins

MIkhail Kozlov 2 Jul 10, 2023
Some Steam patches, fixing broken Steam features on Asus Rog Ally

⚙️ Steam Patch Steam Patch is a tool designed to enhance your Steam experience by applying patches to the Steam client. ?? Installation To install Ste

MIkhail Kozlov 3 Jul 18, 2023
Threadless Module Stomping In Rust with some features

NovaLdr is a Threadless Module Stomping written in Rust, designed as a learning project while exploring the world of malware development. It uses advanced techniques like indirect syscalls and string encryption to achieve its functionalities. This project is not intended to be a complete or polished product but rather a journey into the technical aspects of malware, showcasing various techniques and features.

null 139 Oct 23, 2023
Adds back-and-forth jumping between current and previous focused windows to Sway.

sway-focus-back-and-forth Implements back-and-forth movement between the current and the previous focused windows. It also can be seen as a fix to thi

Vinícius Müller 4 Aug 11, 2022
Mac App/CLI that automatically adds project logos to your locally cloned GitHub repos

Download the app Automatically adds project logos to your locally cloned GitHub repos. Youtube Video This repository contains the source code for the

Sam Denty 365 Dec 25, 2022
🌈 Brings back colour console to Win64 for Garry's Mod SRCDS

?? gmsv_concolormsg This module for Garry's Mod fixes x86-64 Windows 64-bit SRCDS not displaying colours. Why does it do that? Who knows! But it's eas

William 11 Oct 4, 2022
A Minecraft mod manager for the terminal.

Hopper A Minecraft mod manager for the terminal. Donate High-level Goals modrinth mod searching modrinth mod installation curseforge api too? per-inst

Tebibyte Media 17 Dec 24, 2022