본문 바로가기

전체 글20

[주관적인 화성학] 2. 7음계와 12음계의 탄생과 평균율 주의: 이 시리즈는 독자적으로 화성학을 연구하며 알게 된 것들을 바탕으로, 실제 화성학 이론을 주관적으로 해석한 내용입니다. 정식 화성학 이론과는 다를 수 있습니다. 7음계의 탄생 7음계란 도레미파솔라시를 말한다. 이 음들 간에 어떤 관계가 있는지 보자. 사실 저번 글에 썼던 말에 힌트가 있다. 파:라:도 = 도:미:솔 = 솔:시:레 = 4:5:6 이라는 관계가 있다.이걸 연비(連比)를 사용해 실제 옥타브를 고려한 비율을 살펴보면,도:레 = 8:9 (도:솔=2:3, 솔:레=4:3이므로)도:미 = 4:5도:파 = 3:4도:솔 = 2:3도:라 = 3:5 (도:파=3:4, 파:라=4:5이므로)도:시 = 8:15 (도:솔=2:3, 솔:시=4:5이므로)도:도 = 1:2 (한 옥타브)가 된다. (음악 이론도 결국은.. 2019. 3. 13.
[주관적인 화성학] 1. 화음의 기원 주의: 이 시리즈는 독자적으로 화성학을 연구하며 알게 된 것들을 바탕으로, 실제 화성학 이론을 주관적으로 해석한 내용입니다. 정식 화성학 이론과는 다를 수 있습니다. 어릴 때 피아노를 만지작거리다 우연히 작곡이라는 걸 시작하게 됐는데, 그렇게 야메로 작곡을 한지도 벌써 10년이 넘었다. 난 음악을 들을 때 코드 전개를 굉장히 유념해서 듣는데, 그러다 보니 자연스럽게 "코드란 이런 것이다"라는 나름의 규칙들을 만들어나가게 되었다. 그래서 그런 내용들을 한번 적어보려 한다. 간단한 정수비가 화음의 근원 먼저 화음의 원천(?)이 어디인지를 이야기를 하고 싶다. 조화로운 화음은 두 음의 진동수가 간단한 정수비를 이룰 때 발생한다. 간단한 정수비를 갖는 두 음을 발생시키는 방법은 어렵지 않다. 관을 예로 들겠다... 2019. 3. 13.
[C++] 영어에서 인접한 두 글자의 빈도수 구하기 단일 치환 암호를 풀 때 빈도수를 이용하면 효과적으로 해독할 수 있다. 그런데 한 글자의 빈도수를 세는 것만으로는 부족할 때가 많다. code.org에서는 단일 치환 암호를 알파벳 치환을 실시간으로 바꾸며 해독해볼 수 있다. 위의 사진은 원본 암호이고, 글자들을 빈도순으로 나열하고 나서 영어의 알파벳 빈도 순서와 1:1로 치환하면 다음과 같이 된다. Yah ogt ni tse giwsahtel bawkcatehr oy tse giyarsnoiabde eil oy tse certehi rmnhad ahu oy tse Padajf dner a ruadd gihepahlel feddoc rgi. 전혀 이해할 수가 없다. 이때 우리는 많이 쓰이는 특정 단어들의 패턴을 유추해서 그에 맞게 해독할 수가 있다. 예를.. 2019. 2. 10.
[C++ 강좌연구] 정적 바인딩 저번 글에 올렸던 문제의 코드이다. 12Derived d;Base *b = &d;cs 부모를 가리키는 포인터는 자식도 가리킬 수 있다고 했다.다음 예제를 보자. 123456789101112131415161718192021222324class Base {public: void Print() { cout 2019. 2. 2.
[C++ 강좌연구] 오버라이딩 다음 세 부분을 어떻게 설명할지 고민이다. 1. 오버라이딩2. 가상 함수3. 형변환 이 글에서는 오버라이딩을 먼저 설명해보겠다. 자식 클래스에서는 부모 클래스에서 선언된 것과 동일한 이름의 멤버를 사용할 수 있다. 123456789class Base {public: int a = 1;}; class Derived : public Base {public: int a = 2;};cs이렇게 써도 에러가 나지 않는다. 그럼 Base와 Derived 타입의 객체를 만들어 a 멤버변수를 출력해보자. 1234567int main() { Base b; Derived d; cout 2019. 2. 2.