pip install amusing
Get the individual frames of the score into output directory outdir
:
from amusing.score import Amusing, Note
WIDTH_IN_PIXELS: int = 1820
NUMBER_OF_THREADS: int = 8
MUSESCORE_FILEPATH: str = 'score.mscx'
amusing = Amusing(width=WIDTH_IN_PIXELS,
outdir='frames',
threads=NUMBER_OF_THREADS)
amusing.read_score(MUSESCORE_FILEPATH)
amusing.add_job(measures=1,
subdivision=Note(16))
amusing.add_job(measures=[2, 3],
subdivision=Note(4).triplet())
amusing.add_job(measures=range(4, 7),
subdivision=Note(8).n_tuplet(5, 4))
amusing.generate_frames()
Delete all jobs:
amusing.delete_jobs()
Music Animation
Render video of the frequency spectrum using Morlet wavelet
from amusing.munim import Morlet
AUDIO_FILEPATH: str = 'example.mp3'
TO_VIDEO_FILEPATH: str = 'example.mp4'
morlet = Morlet(fps, width, height)
morlet.read_audio(AUDIO_FILEPATH)
morlet.transform()
morlet.render_video(TO_VIDEO_FILEPATH)
Using Short-time Fourier Transform (STFT)
from amusing.munim import STFT
morlet = STFT(fps, width, height)
morlet.read_audio(AUDIO_FILEPATH)
morlet.transform()
morlet.render_video(TO_VIDEO_FILEPATH)
from amusing.munim import Oscillate
oscillate = Oscillate(fps, width)
oscillate.read_audio(AUDIO_FILEPATH)
oscillate.render_video(TO_VIDEO_FILEPATH)
- programmatic animation of sheet music
- notes appearing consecutively
- uses MuseScore as notation software
- generates full resolution frames of the video
- not synchronized to audio
- audio visualization
- STFT
- linear spectrum
- Morlet (DWT)
- arbitrary spectrum
- implemented logarithmic
- 2D Oscilloscope
- STFT
- increase efficiency of making the score
- OMR, e. g. Audiveris
- programmatically combine frames to high quality video
- automatic synchronization to audio
- DWT where Wavelet function is a sample of the instrument sound
- Deconvolution of overtones
- automatic synchronization to audio
- add background interest