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
+22-22Lines changed: 22 additions & 22 deletions
Original file line number
Diff line number
Diff line change
@@ -1,17 +1,23 @@
1
1
# MIDI-FX
2
2
3
-
MIDI-FX is a powerful tool for transforming and analyzing MIDI messages in creative ways. Its node graph architecture offers a high degree of flexibility, making it a valuable tool for enhancing musical performances.
3
+
MIDIFX is a Free and Open Source MIDI Effects Processor. It uses a node graph architecture to let you build your own effects by freely connecting nodes together.
4
4
5
5

6
6
7
-
### Highlights
7
+
### Things you can do with it
8
8
9
-
- Installable Web App (cross-platform + offline support)
- Analyze MIDI (e.g. visualize CC changes, identify chords)
12
-
- Web Serial API support (so you can receive MIDI from an Arduino)
9
+
- Change the note number, velocity, or channel of MIDI messages
10
+
- Convert Note Velocities into Continuous Change (MIDI CC) messages
11
+
- See the name of the chord you're playing
12
+
- See the value of a CC control as it changes
13
+
- Practice playing chords on your MIDI keyboard
14
+
- Wirelessly send MIDI messages between your devices via WebRTC
15
+
- Convert an Arduino's Serial output to MIDI messages
16
+
- ... and much more!
13
17
14
-
## How to use
18
+
> This project is in it's early stages. I'm interested in learning how it can evolve, so testing and feedback is very much appreciated.
19
+
20
+
## Setup
15
21
16
22
Simply head to the deployed version at [danferns.github.io/midi-fx](https://danferns.github.io/midi-fx/).
17
23
@@ -21,29 +27,23 @@ Most Chromium based browsers will work well. Firefox does not support the Serial
21
27
22
28
You will need to set up a virtual loopback device to forward the messages from MIDI-FX to your DAW and vice-versa. On Windows, you can accomplish this with [loopMIDI](https://www.tobias-erichsen.de/software/loopmidi.html).
23
29
24
-
## How it works
25
-
26
-
All nodes are implemented as their own Svelte components. This means that nodes can also access native Web APIs and customize their UI as needed.
27
-
28
-
Nodes can have multiple inputs and outputs. Each input is actually a function that is called for every MIDI message sent to it. Here's an input that simply logs the messages it receives:
30
+
Create a port in loopMIDI. In your DAW, make sure to enable this port.
29
31
30
-
```ts
31
-
(status:number, data1:number, data2:number) => {
32
-
console.log(`Status: ${status} Data 1: ${data1} Data 2: ${data2}`);
33
-
};
34
-
```
35
-
36
-
An output is a `Set` of inputs (the functions). When an input is connected to an output, it is added to the `Set` that the output represents.
32
+
## How to use
37
33
38
-
Under the hood, when a message is emitted through an output, all the inputs (the functions) in its `Set` are called, with the outgoing message bytes as their arguments.
34
+
MIDI FX will generally lie *between* your MIDI input device and your DAW or hardware synth, etc. Start by adding the `External Input` and `External Output` nodes. Connect them together to check that the MIDI messages pass through transparently. Next, try adding some node between them like the Delay or Transpose, to see how MIDI-FX transforms the messages.
39
35
40
36
## Contributing
41
37
42
-
Thank you for your interest in contributing to MIDI-FX! To make development a better experience for all of us, this project is undergoing a major refactor, due to which I'm currently not accepting contributions. Please check back in a few weeks for any updates!
38
+
Thank you for your interest in contributing to MIDI-FX! Contributions are very welcome. Here are some ways you can do it:
39
+
40
+
- Share MIDI FX presets or tips and tricks with the [Community](https://github.com/danferns/midi-fx/discussions/categories/show-and-tell).
41
+
- Provide feedback, feature requests or bug reports in the GitHub Issues
42
+
- Create a PR when there is a clear solution to the Issue
43
43
44
44
## License
45
45
46
-
Copyright (C) 2022 Daniel Fernandes
46
+
Copyright (C) 2022-2024 Daniel Fernandes
47
47
48
48
This program is free software: you can redistribute it and/or modify
49
49
it under the terms of the GNU General Public License as published by
0 commit comments