Skip to content

Commit b87a6de

Browse files
committed
Update ReadMe
1 parent c731fd6 commit b87a6de

File tree

1 file changed

+59
-40
lines changed

1 file changed

+59
-40
lines changed

README.md

Lines changed: 59 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Drum MIDI Remapper
22

3-
A .NET tool for remapping MIDI drum notes between different standards and custom mappings. Designed to help musicians and producers adapt MIDI drum tracks for compatibility with various drum kits, DAWs, and hardware.
3+
A **.NET 9** cross-platform tool for remapping MIDI drum notes between different standards and custom mappings. Designed to help musicians and producers adapt MIDI drum tracks for compatibility with various drum kits, DAWs, and hardware.
44

55
![Build Status](https://img.shields.io/github/actions/workflow/status/Abstractize/drum-midi-remapper/ci.yml?branch=main)
66
![License](https://img.shields.io/github/license/Abstractize/drum-midi-remapper)
@@ -13,56 +13,65 @@ A .NET tool for remapping MIDI drum notes between different standards and custom
1313
git clone https://github.com/Abstractize/drum-midi-remapper.git
1414
cd drum-midi-remapper
1515
dotnet build
16-
dotnet run --project src/ClI -- GuitarPro StevenSlate midis/test.mid
16+
dotnet run --project src/CLI -- GuitarPro StevenSlate midis/test.mid
1717
```
1818

19-
- Replace `GuitarPro`, `StevenSlate`, and `midis/test.mid` with your desired mapping and MIDI file.
19+
- Replace `GuitarPro`, `StevenSlate`, and `midis/test.mid` with your desired mappings and MIDI file.
20+
21+
---
2022

2123
## Requirements
2224

2325
- [.NET 9.0 SDK or newer](https://dotnet.microsoft.com/download)
2426
- Compatible with Windows, macOS, and Linux
2527

28+
---
29+
2630
## Features
2731

28-
- Remap MIDI drum notes using customizable mapping files
29-
- Support for popular drum mapping standards (e.g., General MIDI, Roland, Yamaha) and custom mappings
30-
- Batch processing of MIDI files
31-
- Command-line interface for easy automation
32-
- Cross-platform support via .NET
32+
- Remap MIDI drum notes using customizable JSON mapping files
33+
- Support for popular drum mapping standards (e.g., GuitarPro, StevenSlate, LogicPro, ProTools)
34+
- Batch processing of MIDI files via CLI
35+
- Cross-platform support powered by .NET 9
36+
- Modular architecture with Dependency Injection for easy extensibility
37+
38+
---
3339

3440
## Usage
3541

36-
Run the tool with the following command:
42+
Run the tool with:
3743

3844
```bash
39-
dotnet run --project src/ClI -- <SourceMap> <TargetMap> <InputMidiFile>
45+
dotnet run --project src/CLI -- <SourceMap> <TargetMap> <InputMidiFile>
4046
```
4147

42-
- `<SourceMap>` and `<TargetMap>`: Mapping names (see **Available Mappings**)
43-
- `<InputMidiFile>`: Path to your MIDI file
48+
- `<SourceMap>` and `<TargetMap>`: Mapping names (see **Available Mappings** below)
49+
- `<InputMidiFile>`: Path to the MIDI file to remap
4450

45-
The `--project src/ClI` option tells `dotnet` to run the CLI project directly.
51+
The `--project src/CLI` option specifies the CLI project.
52+
53+
---
4654

4755
## Available Mappings
4856

49-
Mappings are stored in the **Services/Resources/Maps/** directory. Specify the mapping name as a command-line argument when running the tool.
57+
Mappings are stored as JSON files in the **Services/Resources/Maps/** directory. Specify the mapping name as a command-line argument when running the tool.
58+
59+
Included mappings:
5060

51-
**Included mappings:**
52-
- GuitarPro
53-
- LogicPro
54-
- ProTools
61+
- GuitarPro
62+
- LogicPro
63+
- ProTools
5564
- StevenSlate
5665

57-
You can use these standards or create your own custom mapping.
66+
You can also create custom mappings by adding JSON files to the directory.
5867

59-
## Configuration
68+
---
6069

61-
Mappings are defined as JSON files in the **Services/Resources/Maps/** directory. You can create or modify mapping files to suit your needs. See the sample files for format and usage.
70+
## Configuration
6271

63-
### Example Mapping File
72+
Mapping files are JSON documents located in **Services/Resources/Maps/**. Edit or add files to customize drum note mappings.
6473

65-
Example (**Services/Resources/Maps/ExampleMap.json**):
74+
### Example Mapping File (`ExampleMap.json`)
6675

6776
```json
6877
{
@@ -81,43 +90,53 @@ Example (**Services/Resources/Maps/ExampleMap.json**):
8190
}
8291
```
8392

84-
Customize the `"name"` and MIDI note numbers as needed for your drum kit or standard.
93+
- `"name"`: Identifier for the map
94+
- Values correspond to MIDI note numbers
8595

86-
> **Note:** The numbers correspond to MIDI note numbers as used by the [DryWetMIDI](https://melanchall.github.io/drywetmidi/) library.
87-
> For a full list of MIDI note numbers and their corresponding drum sounds, refer to the [General MIDI Percussion Key Map](https://www.midi.org/specifications-old/item/gm-level-1-sound-set), your drum kit's documentation, or the [DryWetMIDI documentation](https://melanchall.github.io/drywetmidi/articles/notes.html).
96+
> **Note:** MIDI note numbers follow the [General MIDI Percussion Key Map](https://www.midi.org/specifications-old/item/gm-level-1-sound-set). This project uses [DryWetMIDI](https://melanchall.github.io/drywetmidi/) for MIDI handling.
97+
98+
---
8899

89100
## Example
90101

91-
**Input:** A MIDI file mapped for GuitarPro
92-
**Command:**
102+
**Input:** MIDI file mapped for GuitarPro
103+
**Command:**
104+
93105
```bash
94-
dotnet run --project src/ClI -- GuitarPro StevenSlate midis/test.mid
106+
dotnet run --project src/CLI -- GuitarPro StevenSlate midis/test.mid
95107
```
96-
**Output:** A MIDI file remapped for StevenSlate drums.
108+
109+
**Output:** MIDI file remapped for StevenSlate drums, saved in the current working directory.
110+
111+
---
97112

98113
## Troubleshooting & FAQ
99114

100-
- **Build errors:** Ensure you have the correct .NET SDK installed.
101-
- **Mapping not found:** Check the spelling and existence of your mapping file in **Services/Resources/Maps/**.
102-
- **MIDI file issues:** Verify your input file is a valid MIDI file.
115+
- **Build errors:** Ensure .NET 9 SDK is installed and your environment is configured correctly.
116+
- **Mapping not found:** Verify spelling and that JSON mapping files exist in **Services/Resources/Maps/**.
117+
- **MIDI file issues:** Confirm your input file is a valid MIDI file and accessible.
118+
119+
---
103120

104121
## Contributing
105122

106123
Contributions are welcome! Please open issues or submit pull requests.
107124

108125
### Adding a New Mapping
109126

110-
1. Create a new JSON mapping file in the **Services/Resources/Maps/** directory.
111-
2. Add your mapping details following the format shown above.
112-
3. Update the mapping enum in `Models/DrumMapType.cs` to include your new mapping.
113-
4. Submit a pull request with your changes.
127+
1. Add a JSON mapping file to **Services/Resources/Maps/**
128+
2. Follow the existing file format for your mapping
129+
3. Update the `DrumMapType` enum in `Models/DrumMapType.cs` to include your new map
130+
4. Submit a pull request
114131

115-
This helps keep all mappings organized and available for everyone.
132+
---
116133

117134
## Related Projects
118135

119-
- [DryWetMIDI](https://melanchall.github.io/drywetmidi/) - MIDI processing library used by this tool
136+
- [DryWetMIDI](https://melanchall.github.io/drywetmidi/) — MIDI processing library used by this tool
137+
138+
---
120139

121140
## License
122141

123-
MIT License
142+
MIT License

0 commit comments

Comments
 (0)