X-Git-Url: https://git.ao2.it/vidi-player.git/blobdiff_plain/81266999b597eeac96b846034444f4b240da72bb..f237d0aff3dfbd2d118dcadeaa34a2b1e7137664:/README.md diff --git a/README.md b/README.md index cf3995e..360b182 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,73 @@ -vidi-player creates a video timeline starting from a MIDI file. +vidi-timeline creates a video timeline starting from a MIDI file. The video clips are taken from a "VideoFont" in which each sample clip corresponds to a note. The samples are arranged following the time and value of the notes in the MIDI file. +vidi-timeline allows to create more easily videos like these: -Examples of use -=============== +* [Lasse Gjertsen - Hyperactive](https://youtu.be/o9698TqtY4A) +* [Vittorio Saggiomo - Mario Bros Column Chromatography](https://youtu.be/mxi3z2vDV_0) + + +How to create a VideoFont +========================= + +Synthetic VideoFont +------------------- Create a synthetinc VideoFont: - $ ./create_test_videofont.py videofont + $ ./create_test_videofont.py videofont/ + + +From a video recording +---------------------- + +A VideoFont can also be created by recording a video, and then splitting the +recording in samples, one sample per note. + +For an example of a master VideoFont see +[keyboard videofont master C4 B5](https://youtu.be/7Btp80LPqRs) + +A file like the one above can be analyzed with [Audacity][1] to find the start +and the end time of the individual samples: + +* use the `Analyze -> Sound Finder...` to find the samples; +* use the [`Pitch Detect" plugin`][2] to find the pitch of the samples and name + them accordingly; +* maybe add an interval named "rest" to represent the absence of sound; +* export the labels track with `File -> Export Labels...`; + +[1]: http://www.audacityteam.org/ +[2]: http://wiki.audacityteam.org/wiki/Nyquist_Analyze_Plug-ins#Pitch_Detect + +An example of such a file prodiced by audacity can be found in the `contrib/` +directory and it can be used as follows: + $ youtube-dl -t https://youtu.be/7Btp80LPqRs + $ ./contrib/ges-split-samples.py \ + "keyboard videofont master C4 B5-7Btp80LPqRs.mp4" \ + "contrib/keyboard videofont master C4 B5-samples.txt" \ + videofont/ > split.sh + $ mkdir videofont/ + $ sh split.sh && rm split.sh + + +Examples of use +=============== + +vidi-timeline.py +---------------- Play the timeline from a MIDI file using the samples from the VideoFont: - $ ./vidi-player.py examples/Beyer\ Op.\ 101\ -\ Exercise\ 008.midi videofont + $ ./vidi-timeline.py examples/Beyer\ Op.\ 101\ -\ Exercise\ 008.midi videofont/ Save the timeline to be edited somewhere else (e.g. in PiTiVi): - $ ./vidi-player.py examples/Beyer\ Op.\ 101\ -\ Exercise\ 008.midi videofont/ Beyer_008.xges + $ ./vidi-timeline.py examples/Beyer\ Op.\ 101\ -\ Exercise\ 008.midi videofont/ Beyer_008.xges Render the timeline to a video file: @@ -28,6 +75,24 @@ Render the timeline to a video file: $ ges-launch-1.0 --load Beyer_008.xges --outputuri Beyer_008.webm --format="video/webm:video/x-vp8:audio/x-vorbis" +vidi-player.py +-------------- + +Play a midi file in real time (if the CPU and the disk can keep up): + + $ ./vidi-player.py examples/Beyer\ Op.\ 101\ -\ Exercise\ 008.midi videofont/ + + +vidi-sampler.py +--------------- + +Play samples from the note hit on a midi controller: + + $ xset -r && vkeybd && xset r on & + $ ./vidi-sampler.py 'Virtual Keyboard' videofont/ + $ fg + + Similar projects ================ @@ -38,10 +103,10 @@ Midi-Vidi A similar concept called midi-vidi has been developed by Marcus Fischer: -* http://unrecnow.com/dust/325-midi-vidi-effect-demo/ -* https://vimeo.com/8049917 -* http://www.synthtopia.com/content/2009/12/09/midi-vidi-plugin-lets-you-control-video-via-midi-in-max-for-live/ -* http://www.maxforlive.com/library/device.php?id=120 +* +* +* +* Midi-Vidi is also a very cool name, it sound like the Italian "mi dividi" which means "you divide me". @@ -51,5 +116,5 @@ VidiBox An interactive video mashup app: -* http://www.vidibox.net/ -* https://twitter.com/vidibox +* +*