You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+71-27Lines changed: 71 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,51 +1,84 @@
1
1
# Drum MIDI Remapper
2
2
3
-
A **.NET 8**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.
3
+
A cross-platform tool built with **.NET 8** for remapping MIDI drum notes between different standards and custom mappings. Designed for musicians and producers to adapt MIDI drum tracks for compatibility with various drum kits, DAWs, and hardware.
dotnet run --project src/CLI -- GuitarPro StevenSlate midis/test.mid
17
53
```
18
54
19
-
- Replace `GuitarPro`, `StevenSlate`, and `midis/test.mid` with your desired mappings and MIDI file.
20
-
21
-
---
22
-
23
-
## Requirements
55
+
### Windows (.NET MAUI GUI)
24
56
25
-
-[.NET 8.0 SDK or newer](https://dotnet.microsoft.com/download)
26
-
- Compatible with Windows, macOS, and Linux
57
+
```powershell
58
+
dotnet build -f net8.0-windows10.0.19041.0
59
+
dotnet run --project src/GUI -f net8.0-windows10.0.19041.0
60
+
```
27
61
28
-
---
62
+
### macOS (.NET MAUI GUI)
29
63
30
-
## Features
64
+
```bash
65
+
dotnet build -f net8.0-maccatalyst
66
+
dotnet run --project src/GUI -f net8.0-maccatalyst
67
+
```
31
68
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 8
36
-
- Modular architecture with Dependency Injection for easy extensibility
69
+
Replace `GuitarPro`, `StevenSlate`, and `midis/test.mid` with your desired mappings and MIDI file.
37
70
38
71
---
39
72
40
-
## Usage
73
+
## CLI Usage
41
74
42
75
Run the tool with:
43
76
44
77
```bash
45
78
dotnet run --project src/CLI -- <SourceMap><TargetMap><InputMidiFile>
46
79
```
47
80
48
-
-`<SourceMap>` and `<TargetMap>`: Mapping names (see **Available Mappings** below)
81
+
-`<SourceMap>` and `<TargetMap>`: Mapping names (see **Available Mappings** below)
49
82
-`<InputMidiFile>`: Path to the MIDI file to remap
50
83
51
84
The `--project src/CLI` option specifies the CLI project.
@@ -58,13 +91,15 @@ Mappings are stored as JSON files in the **Services/Resources/Maps/** directory.
58
91
59
92
Included mappings:
60
93
61
-
- GuitarPro
62
-
- LogicPro
63
-
- ProTools
94
+
- GuitarPro
95
+
- LogicPro
96
+
- ProTools
64
97
- StevenSlate
65
98
66
99
You can also create custom mappings by adding JSON files to the directory.
67
100
101
+
Feel free to add a new mapping by creating a JSON resource file and submitting a pull request.
102
+
68
103
---
69
104
70
105
## Configuration
@@ -90,7 +125,7 @@ Mapping files are JSON documents located in **Services/Resources/Maps/**. Edit o
90
125
}
91
126
```
92
127
93
-
-`"name"`: Identifier for the map
128
+
-`"name"`: Identifier for the map
94
129
- Values correspond to MIDI note numbers
95
130
96
131
> **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.
The screenshot shows the Drum MIDI Remapper application's main form. Users can upload a MIDI file and select both the source and target drum mapping standards from dropdown menus. The interface provides an intuitive workflow for remapping drum notes, with clear options for file selection and mapping configuration.
153
+
154
+
---
155
+
113
156
## Troubleshooting & FAQ
114
157
115
-
-**Build errors:** Ensure .NET 8 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/**.
158
+
-**Build errors:** Ensure .NET 8 SDK is installed and your environment is configured correctly.
159
+
-**Mapping not found:** Verify spelling and that JSON mapping files exist in **Services/Resources/Maps/**.
117
160
-**MIDI file issues:** Confirm your input file is a valid MIDI file and accessible.
118
161
119
162
---
@@ -124,9 +167,9 @@ Contributions are welcome! Please open issues or submit pull requests.
124
167
125
168
### Adding a New Mapping
126
169
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
170
+
1. Add a JSON mapping file to **Services/Resources/Maps/**
171
+
2. Follow the existing file format for your mapping
172
+
3. Update the `DrumMapType` enum in `Models/DrumMapType.cs` to include your new map
130
173
4. Submit a pull request
131
174
132
175
---
@@ -140,3 +183,4 @@ Contributions are welcome! Please open issues or submit pull requests.
0 commit comments