The 8-bit music sequencer written in GML
8Tones is a psudo 8-bit music sequencer (similar to Famitracker) written by @HypernovaTX back around 2015-2016 with Game Maker Studio 1.4 (GML). Initially it was a music maker made for Windows Phone 8.1, I also ported the application to both iOS and Android due to demand. Like Famitracker, it is a sequence tracker that produces 8-Bit music. Unlike true NES 8-bit (2A03)*, I coded this in 5 channels:
- 12.5% square
- 25% square wave
- 50% square wave
- Triangle wave
- Beat channel (consts of pre-made noise/DPCM beats)
* 2A03 is consist of: 2 square channels, 1 triangle channel, 1 noise channel, and 1 DPCM channel
In addition, this application also produces TXT file that can be imported to Famitracker (2A03 with MM5 expansion).
I finished the project in August 2016 but looking to add more features to it. Unfortunately in 2018, I have to cancel this project due to the following reasons:
- Game Maker's run time is highly inefficient, which result in latencies like timing and audio sample
- Microsoft discontinued Windows Mobile platform
- Yoyo Games no longer makes update for Game Maker Studio 1.4. Therefore Google Play and Apple iTunes Connect won't accepting these anymore since GMS 1.4 can only take older SDKs
- Financial hardships to maintain a server and acquire Game Maker Studio 2 Please understand that my codes were nowhere as good as it is back then compared to now, you will expect spaghetti code on this. However, I have plans to create a spiritual successor of this project in Javascript.
You are welcome to use continue this project as long as my name is being credited as the original author.
- A server that allows external POST requests (I don't recommend free hosting services like Byethost since they blocks it)
- It is best to run it with the latest version of PHP and MySQL/MariaDB (As for September 2020)
- In the GMX file, go to
o_online_loader
> Create Event >INIT
Code and change the 2 variables:
BASEURL = "https://TheServerURL.toconnect";
salt = "PUT SALT HERE";
- Start a server and create a database and a user that has read/write privileges.
- Create a table based on this query:
CREATE TABLE IF NOT EXISTS `share` (
`map` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`name` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`author` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`id` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`time_stamp` int(11) NOT NULL,
`password` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
KEY `id` (`id`),
FULLTEXT KEY `map` (`map`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
- Upload all of the PHP files to the server's root
public_html
directory. - Make sure to update all of SQL database connection settings in the first line for each of the PHP files:
$con = mysqli_connect("localhost","DB_USER","DB_USER_PASSWORD","DATABASE");
NOTE: Special thanks to Zack Banack for helping me on the backend PHP and MySQL.