Skip to content

활동

전자 기타 3 - 음정 옥타브

고급 | MakeCode, Python | 사운드, | 곱셈, 나눗셈, 변수, 사운드, 산술 연산자, 전기, 전자공학, 화성학

1단계: 만들어 보세요.

프로젝트 소개

옥타브 음정을 전체적으로 올리거나 내리는 방법을 사용해서 micro:bit 전자 기타를 개선해 보세요.

유선 헤드폰은 0 번 핀, GND 핀에 연결되어있고, 알루미늄 호일 조각들은 1 번 핀, 2 번 핀, GND 핀에 연결되어있는 그림

설명

  • 유선 헤드폰이나 스피커를 micro:bit 에 연결하면 소리를 들을 수 있습니다.
  • 알루미늄 호일 조각을 micro:bit 의 들과 연결합니다. 전자 기타 1, 전자 기타 2 프로젝트에서 연결했던 것과 같은 방법으로 연결하면 됩니다.
  • 이 번 프로그램에서는 출력할 음정과 박자를 하나 하나씩 순서대로 사용하는 것이 아니라, 멜로디에 들어있는 각 음정의 진동수(frequency)를 사용합니다. 음정의 진동수는 F(파), A(라), C(도), E(미) 등과 같은 변수에 정수값으로 저장됩니다.
  • 1번 핀, 2번 핀, GND 핀에 연결된 알루미늄 호일에 손을 대면, 화음 코드를 구성하는 음들을 하나씩 순서대로 출력할 것입니다. 이번 프로젝트에서는 출력되는 화음 코드를, A 버튼을 눌러 (진동수를 1/2배로 만드는 방법으로) 한 옥타브씩 내려 저음으로 바꿔 출력하거나, B 버튼을 눌러 (진동수를 2배로 만드는 방법으로) 한 옥타브씩 올려 고음으로 바꿔 출력할 수 있습니다.
  • 음정의 높이인 진동수(frequency)를 2배 올리면 한 옥타브씩 올라갑니다.: 예를 들어, 가운데 라(A) 음의 진동수는 440Hz(헤르츠) 이며, 높은 라(A)의 진동수는 880Hz 입니다. 헤르츠 단위는 1초에 진동하는 소리의 횟수를 의미하며, 440 Hz 는 1초에 440 번 소리가 진동한다는 것을 의미합니다. 이 원리는 기타 악보를 보고 음을 연주할 때에도 적용됩니다. 기타 목에 있는 여러 위치를 눌러 진동하는 기타 줄의 길이를 바꾸면, 기타 줄이 위 아래로 진동하는 진동수가 바뀌기 때문에 원하는 음으로 바꿔가며 출력할 수 있는 것입니다.
  • A 버튼을 누르면 각각의 음정 변수에 저장되어있는 진동수 값들을 1/2배로 만들고, B 버튼을 누르면 각각의 음정 변수에 저장되어있는 진동수 값들을 2배로 만듭니다. 그렇게 하면, 모든 음정들을 전체적으로 한 옥타브씩 내리거나 한 옥타브씩 올리는 효과로 나타납니다.

준비물

  • micro:bit 와 배터리 팩 (옵션)
  • 유선 헤드폰, 부저, 앰프 스피커
  • 악어 집게선 5개
  • 전자 기타나 전자 키보드를 만들기 위해 필요한 종이 판지, 알루미늄 호일, 글루 건, 가위

2단계: 프로그래밍 해보세요.

1from microbit import *
2import music
3F = 349
4A = 440
5C = 523
6E = 659
7
8while True:
9    if pin1.is_touched():
10        music.pitch(int(F), 500)
11        music.pitch(int(A), 500)
12        music.pitch(int(C), 500)
13    if pin2.is_touched():
14        music.pitch(int(A), 500)
15        music.pitch(int(C), 500)
16        music.pitch(int(E), 500)
17    if button_a.was_pressed():
18        F = F / 2
19        A = A / 2
20        C = C / 2
21        E = E / 2
22    if button_b.was_pressed():
23        F = F * 2
24        A = A * 2
25        C = C * 2
26        E = E * 2
27        

3단계: 더 좋게 만들어 보세요.

  • 기타 악기 모양으로 판지를 잘라내고 거기에 micro:bit 를 붙이면, 마이크로비트 기타를 들고 서서 연주할 수 있습니다.
  • 옥타브를 너무 높게 올리거나, 너무 낮게 낮추면 프로그램이 원하는 대로 제대로 동작하지 않을 수 있습니다. 너무 낮은 진동수의 소리나 너무 높은 진동수의 소리는 사람의 귀로 들을 수 없기 때문입니다. 그런 현상이 나타나지 않도록 프로그램을 수정해 보세요.
  • micro:bit 를 기울이는 방법을 사용해서 빠르기(bpm)를 더 빠르게 하거나 느리게 만들어 보세요.