MIDISharingAdventure: Difference between revisions
Valentin97 (talk | contribs) |
Valentin97 (talk | contribs) No edit summary |
||
| (40 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
= MIDI Sharing Adventure = | |||
== 17-1-2026 Research moment == | == 17-1-2026 Research moment == | ||
Looking for interesting ways to share MIDI files, I stumbled on this page intended to download high quality MIDI files for learning how to play piano. | Looking for interesting ways to share MIDI files, I stumbled on this page intended to download high quality MIDI files for learning how to play piano. | ||
| Line 10: | Line 12: | ||
== 15-01-2026 == | == 15-01-2026 == | ||
On Steve's Party we sat | On Steve's Party we sat down at the synth and started just bleeping a blooping around. There are many ways to go but its nice that we share the same interest in generating sound waves and do something with them. | ||
== 19-01-2026 == | == 19-01-2026 == | ||
| Line 59: | Line 61: | ||
Valentin shares the observation of usb stick left in CDJs by djs, as a way to spread files among venues, radios etc. physically. | Valentin shares the observation of usb stick left in CDJs by djs, as a way to spread files among venues, radios etc. physically. | ||
= Prototype: MIDI-mapping (how does MIDI work?) = | |||
== 10-2-2026 == | |||
Sharing that our first USB stick made it to Antwerp. Valentin got the idea to make platform for tracking and sharing the files that are on the USB. Manetta points out that it is interesting that this is centralising a not-centralized system. Valentin proposes what if this system is semi-centralised so the usbs contain some instructions to acces and upload the content of them but not an 'easy' way but in a way that requires some technical knowledge. about servers/git/ or other methods for filesharing. | |||
== 24-2-2026 == | |||
Can we link MIDI-controllers and their assigned audio to each other through an online network? | |||
Like an etherpad but with MIDI controllers. | |||
* MIDI-controllers need to be linked to a computer, because it's having wifi. Or there should be midi devices that can go online. To make the devices compatible to each other so they can respond. | |||
* Is [https://sequencer.party/ sequencer.party] the tool that we're looking for? | |||
= Prototype 1: MIDI-mapping (how does MIDI work?) = | |||
Today we learned how to map signals from the synth keys and nobs plus the samplers button in TouchDesigner. We also learned to sample music from different devices (synth, computer). | Today we learned how to map signals from the synth keys and nobs plus the samplers button in TouchDesigner. We also learned to sample music from different devices (synth, computer). | ||
| Line 75: | Line 88: | ||
I have found this xPub graduation project as a nice reference for what a modular system could be: <br> | I have found this xPub graduation project as a nice reference for what a modular system could be: <br> | ||
[https://project.xpub.nl/modular-matter/ | [https://project.xpub.nl/modular-matter/ Modular Matter] by [https://pzwiki.wdka.nl/mediadesign/User:Ohjian Jian Haake [ohjian]] | ||
= Prototype 2: shadowshares = | = Prototype 2: shadowshares = | ||
| Line 133: | Line 145: | ||
* [https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API MIDI API to work with midi on the web] | * [https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API MIDI API to work with midi on the web] | ||
* [https://tilde.club/ tilde club - shared server > giving out username and pswd to acces and publish from homefolder] | * [https://tilde.club/ tilde club - shared server > giving out username and pswd to acces and publish from homefolder] | ||
= Prototype 3: WEB MIDI API test = | |||
[[File:Testing WEB MIDI API.png|frameless|600px]] | |||
In [https://hub.xpub.nl/sergio/~valentin/shadoshares.html this experiment] I followed [https://www.smashingmagazine.com/2018/03/web-midi-api/ this article] to start with. It has 3 steps to implement WEB MIDI API: | |||
* Check if browser supports WEBMIDI | |||
<code class="language-javascript"> | |||
if (navigator.requestMIDIAccess) { | |||
console.log('This browser supports WebMIDI!'); | |||
} else { | |||
console.log('WebMIDI is not supported in this browser.'); | |||
} | |||
</code> | |||
* Check if there is available MIDI device plugged in | |||
<code> | |||
navigator.requestMIDIAccess() | |||
.then(onMIDISuccess, onMIDIFailure); | |||
function onMIDISuccess(midiAccess) { | |||
console.log(midiAccess); | |||
var inputs = midiAccess.inputs; | |||
var outputs = midiAccess.outputs; | |||
} | |||
function onMIDIFailure() { | |||
console.log('Could not access your MIDI devices.'); | |||
} | |||
</code> | |||
* Listen to MIDI events from the device (key pressed, knob turned etc.) | |||
<code> | |||
function getMIDIMessage(message) { | |||
var command = message.data[0]; | |||
var note = message.data[1]; | |||
var velocity = (message.data.length > 2) ? message.data[2] : 0; // a velocity value might not be included with a noteOff command | |||
switch (command) { | |||
case 144: // noteOn | |||
if (velocity > 0) { | |||
noteOn(note, velocity); | |||
} else { | |||
noteOff(note); | |||
} | |||
break; | |||
case 128: // noteOff | |||
noteOff(note); | |||
break; | |||
// we could easily expand this switch statement to cover other types of commands such as controllers or sysex | |||
} | |||
} | |||
</code> | |||
Other links and documentation: | |||
* [https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API Mozilla's web MIDI documentation] | |||
* [https://studiocode.dev/webmidi-tester/ Web MIDI tester website] | |||
Next step would be to finish the third step and then through websocket create an environment to start sessions whhere remote MIDI devices could connect. (client-server communication) | |||
==02-3-2026== | |||
* https://en.wikipedia.org/wiki/Open_Sound_Control !!!!!! | |||
* https://www.cockos.com/ninjam/ | |||
* https://hexler.net/touchosc | |||
==10-3-2026== | |||
'''Discussion with Manetta''': | |||
Daan is sharing frustration about understanding web MIDI. Maneteea suggests to revisit the start of the project to stir the direction back to actually work with MIDI files and sharing MIDI files among valentin (aka me) and Daan. Valentin wants to explore how to export MIDI from Korg Monologue as a next step. | |||
Valentines discoveries along the way of connecting an analogue synth to [https://www.reaper.fm/ Reaper]. Reaper is a software which was released the first version in 2006 by [https://en.wikipedia.org/wiki/Cockos Cockos] under the [https://en.wikipedia.org/wiki/Proprietary_software Properiaty license]. >> would be nice to have conversation about this type of license because its not free however in practice it is free to use. | |||
'''PPQN''': | |||
''"Pulses per quarter note (PPQN), also known as pulses per quarter (PPQ), and ticks per quarter note (TPQN), is the smallest unit of time used for sequencing note and automation events."'' | |||
'''[https://en.wikipedia.org/wiki/MIDI_beat_clock MIDI beat clock]''': | |||
''"MIDI beat clock, or simply MIDI clock, is a clock signal that is broadcast via MIDI to ensure that several MIDI-enabled devices such as a synthesizer or music sequencer stay in synchronization. Clock events are sent at a rate of 24 pulses per quarter note. Those pulses are used to maintain a synchronized tempo for synthesizers that have beats-per-minute-dependent voices and also for arpeggiator synchronization. "'' | |||
[[File:REAPER's MIDI file export panel.png|frameless|600px]] | |||
==10-3-2026== | |||
For next tueaday: | |||
*share exploration from previous week | |||
*Try to share MIDI files in many ways and DOCUMENT !!! | |||
*look up online MIDI file sharing culture online | |||
[[File:Balint first midi export.mid|thumb]] | |||
[[File:Spectrum Vision - Kosmonaut.mp3|thumb]] | |||
<iframe width="384" height="60" style="border: none;" src="https://www.beepbox.co/player/#song=9n10sbk0l00e0bt1Ua3g0bj0br1i0o4T7v0u20f51562jb0s22nb2l3q0x20p41402d08H_SRJ5JIBxAAAAkh8IcE3c01c16c16b4zhmu9GYp23UArSzW000sOWlQCnFd7NhhhhUOYMnRTtKqflSGGGGGGGHCR-GEPq_kOdd7MZE_tSYOyyyzgEEEE8YPcPcQaaaaaaa9vCpCcQvAKqfCtSGiXbJaGGLq_ywXeq_KWUCtTy-PCaTI00CWCnTKqGrcLRJD8KyqbEBPbNdLpt403qGHtyqeEDyadyqWGGLProVxeKpCCuoHcL_-EXKFDYFDbFCXOp5SYPqGITtSdCqJIW-sgDeGGA-8PuY38cI"></iframe> | |||
==19-3-2026== | |||
==== experiment 1 ==== | |||
valentin tried to scp a midi file onto daan's user homefolder on sergio (pswd needed ) | |||
daan uses mobile MobaXTerm to visualisea nd navigate folders on the serverside | |||
daan tried to switch user su to xpub user so we both log in and exchange files there but we need pswd | |||
valentin cannot ssh to into public xpub folder because he's on a public network | |||
==== experiment 2 swiss trasfer ==== | |||
sent files via swiss transfer and we share email adresses via signal | |||
==== Heading text ==== | |||
experiment 3 | |||
just dropped the midi file onto signal chat >> whoah i can see the file sizze (9kb) | |||
so small | |||
==== experiment 4 ==== | |||
upload midi-files to wiki insaneeeee we can use the wiki to store and share midi files | |||
also works with mp3 | |||
upload to our wikipage (little img icon in the editing source) > a click on it leads to the dedicated page for the file > another click opens a media player to listen to the mp3 buyt not the midi > midi is downloaded (hell yeah) | |||
is sharing also includes to be able to interpret or is it enough that the file is stored on the comptuer? | |||
ca we link an image to it on the wiki? | |||
==== experiment 5 ==== | |||
so daan proposes to read out loud the midi notes and valent has to replicate it on his own computer | |||
requires to to be able read musical notes | |||
==== experiment 6 ==== | |||
to create a score by hand (image) and load? image into reaper? or just lay the paper onto the screen and just try to replicate the score in a DAW using a midi track and pentool | |||
==== experiment 7 ==== | |||
tried to upload midi file onto bandcamp and sound cloud >>> not possible - for bandcamp only .flac .wav or .aif is possible - all lossless form | |||
==== experiment 8 ==== | |||
tilde club - gmail account is not accepted | |||
what are you making public? | |||
==== experiment 9 ==== | |||
using beepbox to upload our own midi file >> share link >> download | |||
Also you would be able to edit files in there - this is a super good tool for creating music together from a distance | |||
==== experiment 10 ==== | |||
midi as encryption | |||
using midi bars to draw typography > share midi file > read message | |||
=== Links we explored === | |||
* https://www.reddit.com/r/synthesia/comments/qdkxou/creating_a_website_for_sharing_midi_files/ | |||
* [https://midishare.dev/ midishare ] | |||
* [https://www.midishow.com/en midishow] | |||
* Is [https://sequencer.party/ sequencer.party] | |||
* [https://project.xpub.nl/modular-matter/ Modular Matter] by [https://pzwiki.wdka.nl/mediadesign/User:Ohjian Jian Haake [ohjian]] | |||
* [https://simonrepp.com/faircamp/ fediverse music application - funkwhale, faircamp] | |||
* [https://worm-blossom.org/ Web MIDI app?] | |||
* [https://www.beepbox.co beepbox online midi sketch tool] | |||
* [https://twitter-archive.beepbox.co/ beepbox twitter thingy] | |||
* [https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API MIDI API to work with midi on the web] | |||
* [https://tilde.club/ tilde club - shared server > giving out username and pswd to acces and publish from homefolder] | |||
* https://www.smashingmagazine.com/2018/03/web-midi-api/ | |||
* [https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API Mozilla's web MIDI documentation] | |||
* [https://studiocode.dev/webmidi-tester/ Web MIDI tester website] | |||
* https://en.wikipedia.org/wiki/Open_Sound_Control !!!!!! | |||
* https://www.cockos.com/ninjam/ | |||
* https://hexler.net/touchosc | |||
* [https://en.wikipedia.org/wiki/Cockos Cockos] under the [https://en.wikipedia.org/wiki/Proprietary_software Properiaty license] | |||
* [https://www.reaper.fm/ Reaper] | |||
* [https://en.wikipedia.org/wiki/MIDI_beat_clock MIDI beat clock] | |||
Latest revision as of 17:01, 24 March 2026
MIDI Sharing Adventure
17-1-2026 Research moment
Looking for interesting ways to share MIDI files, I stumbled on this page intended to download high quality MIDI files for learning how to play piano. https://www.reddit.com/r/synthesia/comments/qdkxou/creating_a_website_for_sharing_midi_files/
midishow looks kinda scary with all it's ads
Discussions
15-01-2026
On Steve's Party we sat down at the synth and started just bleeping a blooping around. There are many ways to go but its nice that we share the same interest in generating sound waves and do something with them.
19-01-2026
Daan found a website where people can share MIDI files and scores. It is quite hard to submit your own sound. He points out that whatever we do it is important to store and share the sound we creating.
Some quesgtions that came up: How do we store and share the sounds we created?
Valentin proposes a way to start a prototype by thinking about each letter of the alphabet as a a sound, which is not a big think if we think about spoken lanuage (we assign specific letters to each sound to create the alphabet). My proposal is about reversing the evolution of orality to litercay - so literacy to orality - by assigning a specific sound to each letter. Just a quick idea is to find an instrument with each letter of the alphabet -> take a note e.g. C and play that note on each instrument (or synthetize them) -> assign sounds to letters -> and voila: recreated the vocal/orail repertoir of sounds our alphabet. This prototype can serve as a further exploration into encryption. (Save Bootleg Library (SBL))
Valentin also proposes a way to think about files as structured datapoints.
The most amazing website with all the instruments with pictures in alphabetic order :DDD
Alphorn Banjo Cello Djembe Ektara Flute Ghatam Imzad Jews' Harp Kalimba Langeleik Mandolin Ney Ocarina Panpipe Qairaq Rubboard Sitar Tuba Ud Vuvuzela Waterphone Xylophone Yamatogoto Zurna
20-01-2026
Valentin shares the observation of usb stick left in CDJs by djs, as a way to spread files among venues, radios etc. physically.
10-2-2026
Sharing that our first USB stick made it to Antwerp. Valentin got the idea to make platform for tracking and sharing the files that are on the USB. Manetta points out that it is interesting that this is centralising a not-centralized system. Valentin proposes what if this system is semi-centralised so the usbs contain some instructions to acces and upload the content of them but not an 'easy' way but in a way that requires some technical knowledge. about servers/git/ or other methods for filesharing.
24-2-2026
Can we link MIDI-controllers and their assigned audio to each other through an online network? Like an etherpad but with MIDI controllers.
- MIDI-controllers need to be linked to a computer, because it's having wifi. Or there should be midi devices that can go online. To make the devices compatible to each other so they can respond.
- Is sequencer.party the tool that we're looking for?
Prototype 1: MIDI-mapping (how does MIDI work?)
Today we learned how to map signals from the synth keys and nobs plus the samplers button in TouchDesigner. We also learned to sample music from different devices (synth, computer).
This way we could make a first prototype for assigning synthetic sounds to letters.
Mapping the MIDI keyboard's keys
MIDI keyboard input -> Select individual keys -> re-range their value to 0/1 -> export value to the assigned letter's aplha value -> perform :D
I have found this xPub graduation project as a nice reference for what a modular system could be:
Modular Matter by Jian Haake [ohjian]
Diving deeper into the habit of DJ's leaving their usb's in Pioneer sets after their set, it gave us the idea that this could be done intentionally. As a poetic reference to this habit of forgetting your usb. We wrote a README file which explains what the usb contains. We added some guidelines for people who want to push the usb further with newly added material. A Signal group with Valentin and Daan was created which people can access when finding the usb. Then added a command in the README, to share gps location of where they left the usb and a summary of what they added.
On Monday the 26th of January ʟɨʟɨȶԋ joined the Signal group.
27-1-2026 Feedback & notes during prototyping class
worked on two things
mapped alphabet to type the word "file sharing" valentin connected the midi output to touch designer will be shared next week, maybe with a new iteration
CDJ habit of DJs leaving USBs: dead drop prototype README script > put at a USB plus a playlist of songs! the USB is left at WORM somebody found it and took it home, and joined a signal group
plan to share more USBs to see if it can grow
i did put music that i bought and more pop songs from bigger labels that i downloaded illegaly
sharing notes about the music?? branching multiple USBs??
Manetta: are there other ways to enter the network? Kamo: could also be ok to not do that Manetta: one person could hold on to it / loose it, then it's gone Kamo: Could put out a 'teaser' that they are around, ( like an easter egg ) Daan: maybe a way to keep track of it, without showing it's content
3-2-2026
How do we go further? How do we carry on? We want to make several more and spread those around. Start gossips that there are shadowlibrary usb's for artists/dj's lingering around.
To do:
- Making a shadowshares logo
- Make laser engraved keychains to attach to usb's
- Acquire new usb's to spread around
- Get new gigs or dj-sets to spread it
- Contact artist friends so they can do it for you
- Make the new USBs az git repositories -> update the README.txt
10-2-2026
Links and things to explore:
- fediverse music application - funkwhale, faircamp
- Web MIDI app?
- beepbox online midi sketch tool
- beepbox twitter thingy
- MIDI API to work with midi on the web
- tilde club - shared server > giving out username and pswd to acces and publish from homefolder
Prototype 3: WEB MIDI API test
In this experiment I followed this article to start with. It has 3 steps to implement WEB MIDI API:
- Check if browser supports WEBMIDI
if (navigator.requestMIDIAccess) {
console.log('This browser supports WebMIDI!');
} else {
console.log('WebMIDI is not supported in this browser.');
}
- Check if there is available MIDI device plugged in
navigator.requestMIDIAccess()
.then(onMIDISuccess, onMIDIFailure);
function onMIDISuccess(midiAccess) {
console.log(midiAccess);
var inputs = midiAccess.inputs;
var outputs = midiAccess.outputs;
}
function onMIDIFailure() {
console.log('Could not access your MIDI devices.');
}
- Listen to MIDI events from the device (key pressed, knob turned etc.)
function getMIDIMessage(message) {
var command = message.data[0];
var note = message.data[1];
var velocity = (message.data.length > 2) ? message.data[2] : 0; // a velocity value might not be included with a noteOff command
switch (command) {
case 144: // noteOn
if (velocity > 0) {
noteOn(note, velocity);
} else {
noteOff(note);
}
break;
case 128: // noteOff
noteOff(note);
break;
// we could easily expand this switch statement to cover other types of commands such as controllers or sysex
}
}
Other links and documentation:
Next step would be to finish the third step and then through websocket create an environment to start sessions whhere remote MIDI devices could connect. (client-server communication)
02-3-2026
- https://en.wikipedia.org/wiki/Open_Sound_Control !!!!!!
- https://www.cockos.com/ninjam/
- https://hexler.net/touchosc
10-3-2026
Discussion with Manetta: Daan is sharing frustration about understanding web MIDI. Maneteea suggests to revisit the start of the project to stir the direction back to actually work with MIDI files and sharing MIDI files among valentin (aka me) and Daan. Valentin wants to explore how to export MIDI from Korg Monologue as a next step.
Valentines discoveries along the way of connecting an analogue synth to Reaper. Reaper is a software which was released the first version in 2006 by Cockos under the Properiaty license. >> would be nice to have conversation about this type of license because its not free however in practice it is free to use.
PPQN:
"Pulses per quarter note (PPQN), also known as pulses per quarter (PPQ), and ticks per quarter note (TPQN), is the smallest unit of time used for sequencing note and automation events."
"MIDI beat clock, or simply MIDI clock, is a clock signal that is broadcast via MIDI to ensure that several MIDI-enabled devices such as a synthesizer or music sequencer stay in synchronization. Clock events are sent at a rate of 24 pulses per quarter note. Those pulses are used to maintain a synchronized tempo for synthesizers that have beats-per-minute-dependent voices and also for arpeggiator synchronization. "
10-3-2026
For next tueaday:
- share exploration from previous week
- Try to share MIDI files in many ways and DOCUMENT !!!
- look up online MIDI file sharing culture online
File:Balint first midi export.mid File:Spectrum Vision - Kosmonaut.mp3
<iframe width="384" height="60" style="border: none;" src="https://www.beepbox.co/player/#song=9n10sbk0l00e0bt1Ua3g0bj0br1i0o4T7v0u20f51562jb0s22nb2l3q0x20p41402d08H_SRJ5JIBxAAAAkh8IcE3c01c16c16b4zhmu9GYp23UArSzW000sOWlQCnFd7NhhhhUOYMnRTtKqflSGGGGGGGHCR-GEPq_kOdd7MZE_tSYOyyyzgEEEE8YPcPcQaaaaaaa9vCpCcQvAKqfCtSGiXbJaGGLq_ywXeq_KWUCtTy-PCaTI00CWCnTKqGrcLRJD8KyqbEBPbNdLpt403qGHtyqeEDyadyqWGGLProVxeKpCCuoHcL_-EXKFDYFDbFCXOp5SYPqGITtSdCqJIW-sgDeGGA-8PuY38cI"></iframe>
19-3-2026
==== experiment 1 ====
valentin tried to scp a midi file onto daan's user homefolder on sergio (pswd needed )
daan uses mobile MobaXTerm to visualisea nd navigate folders on the serverside
daan tried to switch user su to xpub user so we both log in and exchange files there but we need pswd
valentin cannot ssh to into public xpub folder because he's on a public network
experiment 2 swiss trasfer
sent files via swiss transfer and we share email adresses via signal
Heading text
experiment 3 just dropped the midi file onto signal chat >> whoah i can see the file sizze (9kb) so small
==== experiment 4 ==== upload midi-files to wiki insaneeeee we can use the wiki to store and share midi files also works with mp3 upload to our wikipage (little img icon in the editing source) > a click on it leads to the dedicated page for the file > another click opens a media player to listen to the mp3 buyt not the midi > midi is downloaded (hell yeah)
is sharing also includes to be able to interpret or is it enough that the file is stored on the comptuer? ca we link an image to it on the wiki?
==== experiment 5 ==== so daan proposes to read out loud the midi notes and valent has to replicate it on his own computer requires to to be able read musical notes
==== experiment 6 ==== to create a score by hand (image) and load? image into reaper? or just lay the paper onto the screen and just try to replicate the score in a DAW using a midi track and pentool
experiment 7
tried to upload midi file onto bandcamp and sound cloud >>> not possible - for bandcamp only .flac .wav or .aif is possible - all lossless form
experiment 8
tilde club - gmail account is not accepted what are you making public?
==== experiment 9 ==== using beepbox to upload our own midi file >> share link >> download Also you would be able to edit files in there - this is a super good tool for creating music together from a distance
==== experiment 10 ==== midi as encryption using midi bars to draw typography > share midi file > read message
Links we explored
- https://www.reddit.com/r/synthesia/comments/qdkxou/creating_a_website_for_sharing_midi_files/
- midishare
- midishow
- Is sequencer.party
- Modular Matter by Jian Haake [ohjian]
- fediverse music application - funkwhale, faircamp
- Web MIDI app?
- beepbox online midi sketch tool
- beepbox twitter thingy
- MIDI API to work with midi on the web
- tilde club - shared server > giving out username and pswd to acces and publish from homefolder
- https://www.smashingmagazine.com/2018/03/web-midi-api/
- Mozilla's web MIDI documentation
- Web MIDI tester website
- https://en.wikipedia.org/wiki/Open_Sound_Control !!!!!!
- https://www.cockos.com/ninjam/
- https://hexler.net/touchosc
- Cockos under the Properiaty license
- Reaper
- MIDI beat clock