import Sound.Tidal.Context -- Define the frequencies for each note let c4 = 261.63 d4 = 293.66 e4 = 329.63 f4 = 349.23 g4 = 392.00 a4 = 440.00 b4 = 493.88 -- Create a list of frequencies for the octave let octave = [c4, d4, e4, f4, g4, a4, b4] -- Ask user for input let noteSequence = input "Enter the sequence of notes to play (e.g. C4 D4 E4 F4 G4 A4 B4): " -- Split the input string into a list of notes let notes = words noteSequence -- Play the note sequence using the octave mapM_ (\\x -> d1 $ sound $ "~sine" # speed (sig x)) $ map (\\x -> octave!!x) $ map (\\x -> case x of 'C4' -> 0 'D4' -> 1 'E4' -> 2 'F4' -> 3 'G4' -> 4 'A4' -> 5 'B4' -> 6) notes
위 코드는 사용자가 입력한 노트 시퀀스를 연주하기 위해 필요한 haskell 코드를 담고 있습니다. 먼저 옥타브의 각 노트를 변수로 정의합니다. 그리고 haskell의 input 함수를 사용하여 사용자로부터 노트 시퀀스를 입력받고, 이를 words 함수를 사용하여 리스트로 변환합니다. 이후에는 사용자가 입력한 노트 시퀀스를 연주하기 위해 맵핑과 반복 함수를 사용합니다. 마지막으로 반복문 사이에 sound 함수를 사용하여 소리를 재생합니다.