Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ninovanhooff/midi-master

MIDI Mastering tool for playdate
https://github.com/ninovanhooff/midi-master

playdate playdate-console

Last synced: 22 days ago
JSON representation

MIDI Mastering tool for playdate

Awesome Lists containing this project

README

        

# MIDI Master (Playdate)

A tool for mastering MIDI files. Masters can be played back as background music in a Playdate Lua SDK game.

[![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/X_TIjVMSLE8/0.jpg)](https://www.youtube.com/watch?v=X_TIjVMSLE8)

Click the image for a demo video on Youtube.

The resulting songs can be integrated into a Playdate game using the [Master Player](https://github.com/ninovanhooff/master-player) component

Masters are saved in the Data folder.
This folder is created when you first save a master. On Mac, the location of that folder is `~/Developer/PlaydateSDK/Disk/Data/com.ninovanhooff.midimaster`

## Differences between Simulator and hardware playback

There may be differences in playback between Simulator and hardware devices, this also includes
cases where songs sound better on hardware. Testing on hardware is always recommended.

## Add your own songs

### Using the MIDI Master pdx

Open the pdx folder (Mac: right-click the pdx and select "Show package contents").
Add your songs to the "songs" folder inside the pdx.

### When compiling MIDI Master from source

Add your songs to the Source/songs folder. Then compile the project.
In a terminal, navigate to the folder where this READMe.md file is located and execute (mac command):

`pdc Source midi_master.pdx && open midi_master.pdx`

## Controls

### Playdate controls

- dpad left/right: select parameter to adjust (volume, instrument, attack decay, sustain, release ...)
- dpad up/down: select channel a.k.a. track a.k.a instrument
- select dpad up to select the song title and press A to save the current master and load the next song
- A: increase selected parameter value
- B: Decrease selected parameter value
- Crank: scrobble song (rewind / fast forward)

### Keyboard controls

Keyboard controls can be used in simulator or when using the simulator to control the device.

See the bottom part of [ViewModel.lua](https://github.com/ninovanhooff/MIDI-Master/blob/main/Source/editor/EditorViewModel.lua)
for the mappings

## Add your own sampled instruments (for Developers)

MIDI Master comes with a few bundled sampled instruments. These are included as [Toyboxes](https://github.com/toyboxpy/toybox.py).
To add your own instrument, create a Toybox out of it.

Steps to add your own instrument to MIDI Master:

- Create your own instrument as a Toybox./ See these examples: [Choir Ah](https://github.com/ninovanhooff/master-player-choir-ah), [Drums Electric](https://github.com/ninovanhooff/master-player-drums-electric).
- Download the MIDI Master source code
- Download [Toybox](https://github.com/toyboxpy/toybox.py)
- Use Toybox to add your instrument to MIDI Master
- open [main.lua](https://github.com/ninovanhooff/MIDI-Master/blob/main/Source/main.lua) and add your instrument using the `masterplayer.addInstrument()` function
- compile MIDI Master