vidi-player.git
8 years agoAdd vidi/MidiUtils.py to share some utilities to analyze midi files
Antonio Ospite [Mon, 5 Dec 2016 14:47:41 +0000 (15:47 +0100)]
Add vidi/MidiUtils.py to share some utilities to analyze midi files

8 years agoRename vidi-player.py to vidi-timeline.py
Antonio Ospite [Mon, 5 Dec 2016 14:40:29 +0000 (15:40 +0100)]
Rename vidi-player.py to vidi-timeline.py

The name vidi-timeline.py reflect better what the program actually does:
generate GES timelines.

This also frees the spot for a possible future vidi-player program,
based on GStreamer, which plays midi files live without having to
generate the GES pipeline beforehand.

8 years agovidi-player.py: add an option to add a background layer with the "rest" sample
Antonio Ospite [Mon, 5 Dec 2016 14:35:31 +0000 (15:35 +0100)]
vidi-player.py: add an option to add a background layer with the "rest" sample

Adding a background representing rests looks a lot better than having
a black screen flashing in and out.

8 years agovidi/Timeline.py: add support for adding clips on their own layers
Antonio Ospite [Mon, 5 Dec 2016 13:45:30 +0000 (14:45 +0100)]
vidi/Timeline.py: add support for adding clips on their own layers

This can be used for instance to add a "background" clip, in case of
a midi file with intervals of silence, the background clip could be the
videofont sample representing a rest.

8 years agovidi-player.py: fix a regression introduced in commit d2933a9ba8a8
Antonio Ospite [Mon, 5 Dec 2016 12:14:25 +0000 (13:14 +0100)]
vidi-player.py: fix a regression introduced in commit d2933a9ba8a8

In commit d2933a9ba8a8 (vidi-player.py: move the actual processing after
the arguments validation) there was a spurious change which broke
calling check_overlapping_notes(). Fix it.

8 years agoTODO: add an entry about audio fade-in and fade-out
Antonio Ospite [Fri, 2 Dec 2016 16:21:22 +0000 (17:21 +0100)]
TODO: add an entry about audio fade-in and fade-out

8 years agovidi/Player.py: use per message callbacks
Antonio Ospite [Fri, 2 Dec 2016 16:18:38 +0000 (17:18 +0100)]
vidi/Player.py: use per message callbacks

8 years agocreate_test_videofont.py: generate a "rest" sample with silence in it
Antonio Ospite [Fri, 2 Dec 2016 15:45:47 +0000 (16:45 +0100)]
create_test_videofont.py: generate a "rest" sample with silence in it

8 years agovidi-player.py: use a fixed width when printing the note names
Antonio Ospite [Thu, 1 Dec 2016 21:35:59 +0000 (22:35 +0100)]
vidi-player.py: use a fixed width when printing the note names

This improves alignment in the output and makes it slightly more
readable.

8 years agocreate_test_videofont.py: make the pipelines more configurable
Antonio Ospite [Thu, 1 Dec 2016 21:31:21 +0000 (22:31 +0100)]
create_test_videofont.py: make the pipelines more configurable

While at it also calculate the proper number of video buffers, this
produces more robust samples in which both the audio and the video
streams have the same length in seconds.

8 years agoUse webm for the videofont, it has better support than shroedinger
Antonio Ospite [Thu, 1 Dec 2016 21:07:37 +0000 (22:07 +0100)]
Use webm for the videofont, it has  better support than shroedinger

8 years agovidi-player.py: move the actual processing after the arguments validation
Antonio Ospite [Mon, 28 Nov 2016 12:44:55 +0000 (13:44 +0100)]
vidi-player.py: move the actual processing after the arguments validation

8 years agovidi-player.py: check that the output file exists before creating the pipeline
Antonio Ospite [Mon, 28 Nov 2016 12:42:29 +0000 (13:42 +0100)]
vidi-player.py: check that the output file exists before creating the pipeline

8 years agovidi-player.py: add missing newlines in error messages
Antonio Ospite [Mon, 28 Nov 2016 12:41:29 +0000 (13:41 +0100)]
vidi-player.py: add missing newlines in error messages

8 years agovidi/Player.py: move the stop() method after the play() method
Antonio Ospite [Mon, 28 Nov 2016 12:38:27 +0000 (13:38 +0100)]
vidi/Player.py: move the stop() method after the play() method

For consistency with the Timeline class.

8 years agoHandle KeyboardInterrupt in the main program, not in the Player class
Antonio Ospite [Mon, 28 Nov 2016 12:35:58 +0000 (13:35 +0100)]
Handle KeyboardInterrupt in the main program, not in the Player class

8 years agovidi/Timeline.py: add a stop() method
Antonio Ospite [Mon, 28 Nov 2016 12:34:15 +0000 (13:34 +0100)]
vidi/Timeline.py: add a stop() method

8 years agovidi/Timeline.py: move pipeline player initialization to the __init__ method
Antonio Ospite [Mon, 28 Nov 2016 12:32:17 +0000 (13:32 +0100)]
vidi/Timeline.py: move pipeline player initialization to the __init__ method

8 years agovidi/Player.py: rename the quit() method to stop()
Antonio Ospite [Mon, 28 Nov 2016 12:24:01 +0000 (13:24 +0100)]
vidi/Player.py: rename the quit() method to stop()

8 years agovidi/Player.py: move the signal callback initialization to the __init__ method
Antonio Ospite [Mon, 28 Nov 2016 12:22:13 +0000 (13:22 +0100)]
vidi/Player.py: move the signal callback initialization to the __init__ method

8 years agocreate_test_videofont.py: use FONT_DESC in LIVE_PIPELINE_TEMPLATE too
Antonio Ospite [Sun, 27 Nov 2016 22:51:09 +0000 (23:51 +0100)]
create_test_videofont.py: use FONT_DESC in LIVE_PIPELINE_TEMPLATE too

8 years agocreate_test_videofont.py: set the sample length in seconds
Antonio Ospite [Sun, 27 Nov 2016 15:08:31 +0000 (16:08 +0100)]
create_test_videofont.py: set the sample length in seconds

The duration of a sample in a video font should be at least as long as
the longest corresponding note in the midi file.

8 years agoFix converting paths to URIs
Antonio Ospite [Sun, 27 Nov 2016 15:05:47 +0000 (16:05 +0100)]
Fix converting paths to URIs

In particular this fixes adding clips with a filename which has to be
quoted when becoming part of a URI, like sample_F#5.mkv

8 years agoREADME.md: mention some examples of videos that could be made
Antonio Ospite [Fri, 25 Nov 2016 17:25:21 +0000 (18:25 +0100)]
README.md: mention some examples of videos that could be made

8 years agoInitial import
Antonio Ospite [Fri, 25 Nov 2016 16:11:27 +0000 (17:11 +0100)]
Initial import