challenge Tiny MML

文字列の入力をとり、音を鳴らすプログラムを作ってください。

入力はcがド、dがレ、eがミ、fがファ、gがソ、aがラ、bがシ、rが休符とします。この8文字以外の文字は入力に含まれていないと仮定して構いません。おのおのの音符・休符は八分音符・八分休符とします。

オクターブや音の長さの変更、同時発音などの機能は不要です。

サンプル入力(カエルの歌)

cdefedcrefgagfercrcrcrcrcdefedcr

Posted feedbacks - Emacs Lisp

1
2
3
4
5
6
7
8
(require 'cl)
(defvar *freq-table*
  '(?c "262" ?d "294" ?e "330" ?f "349" ?g "392" ?a "440" ?b "494" ?r "1"))
(defun tinymml-play (mml)
  (loop for c across mml do
        (call-process "beep" nil nil nil 
                      "-f" (plist-get *freq-table* c))))
(tinymml-play "cdefedcrefgagfercrcrcrcrcdefedcr")

Index

Feed

Other

Link

Pathtraq

loading...