12.14. Reprezentowanie danych za pomocą plików muzycznych MIDI

Problem

Chcemy przedstawić zbiór punktów danych za pomocą fragmentów muzyki lub po prostu utworzyć muzykę w sposób programowy.

Rozwiązanie

Posługując się biblioteką midilib Jima Menarda, można bez trudu generować pliki muzyczne z poziomu języka Ruby. Biblioteka ta jest dostępna w postaci gemu midilib.

Poniżej zamieszczono prostą metodę wizualizacji listy liczb za pomocą dźwięków. Największa liczba jest mapowana na najwyższą nutę na klawiaturze pianina (nuta MIDI o wartości 108), natomiast najmniejsza liczba na najniższą nutę (nuta MIDI o wartości 21).

require 'rubygems' require 'midilib' # => false class Array def to_midi(file, note_length='eighth') midi_max = 108.0 midi_min ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.