Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wojciech-graj/tic-midi
A MIDI-to-TIC-80 cartridge converter.
https://github.com/wojciech-graj/tic-midi
audio convert converter lua midi python tic-80 tool tools
Last synced: about 1 month ago
JSON representation
A MIDI-to-TIC-80 cartridge converter.
- Host: GitHub
- URL: https://github.com/wojciech-graj/tic-midi
- Owner: wojciech-graj
- License: agpl-3.0
- Created: 2023-03-16T22:38:52.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-09-23T20:13:52.000Z (3 months ago)
- Last Synced: 2024-10-23T21:14:06.660Z (2 months ago)
- Topics: audio, convert, converter, lua, midi, python, tic-80, tool, tools
- Language: Python
- Homepage:
- Size: 65.4 KB
- Stars: 14
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TIC-MIDI
A MIDI-to-TIC-80 converter.
"The mission, the nightmares... they’re finally... over." - CT-5385 (presumably about switching to TIC-MIDI ;) )
### Features
- Utilizes up to all 4 audio channels simultaneously
- Has variable audio resolution to use more or less space in exchange for audio quality
- Can map midi tracks to sfx as dictated by the user, allowing for different instruments
- Has variable volume
- Sets tempo and speed to match input
- Can insert music into existing cart
- Can use any memory bank### Limitations
- Can only write a single file to a single track
- Disregards multiple MIDI channels
- Only considers the following MIDI messages: `set_tempo`, `note_on`, `note_off`
- Only uses the Master Volume TIC-80 command
- Does not generate sfx and waveforms### Usage
Make sure Python (3.9+) is available on your system.
Install the dependencies:
```sh
pip install -e .
```
OR
```sh
pip install 'mido>=1.2.0,<=1.3.2'
```Then, simply invoke the script:
```sh
python tic_midi.py input_file -o output_file
```To learn about the settings you can use, invoke the script with the `-h` flag:
```sh
python tic_midi.py -h
```When playing the music with your lua code, set `sustain=true` in your `music` function call, since the converter currently doesn't re-play notes when starting a new frame.
A sample MIDI file, and the cartridge produced with it, can be found in the `example` directory.
### Development setup
Install the development dependencies:
```sh
pip install -e '.[dev]'
```### License
```
Copyright (C) 2023-2024 Wojciech GrajThis program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero 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 Affero General Public License for more details.You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
```Portions of this software are copyright of their respective authors:
- [mido](https://github.com/mido/mido), Licensed under the [MIT License](https://opensource.org/licenses/MIT); Copyright (c) Ole Martin Bjørndalen