본문 바로가기
728x90
반응형

코딩

[Music21] 3. Music21 가이드 ( Stream : Hierarchies, Recursion, Flattening ) Music21 라이브러리 가이드 3 from music21 import * #Music21 User Guide 5,6 레퍼런스 정리 # 2차원 , 3차원 리스트 #User Guide 5는 2차원 , 3차원 리스트에 대해 설명한다. #아마 스트림과 리스트를 비교하려는 듯 하다. note1 = note.Note("C4") note1.duration.type = 'half' note2 = note.Note("F#4") note3 = note.Note("B-2") stream1 = stream.Stream() stream1.id = 'some notes' stream1.append(note1) stream1.append(note2) stream1.append(note3) biggerStream = stream... 더보기
[Music21] 2. Music21 가이드 ( Stream ) Music21 라이브러리 가이드 2 import music21 #Music21 User Guide 4 레퍼런스 정리 # 다수의 오브젝트를 리스트로 처리 note1 = music21.note.Note("C4") note2 = music21.note.Note("F#4") note1.duration.type = 'half' print(note1.duration.quarterLength) #음표의 옥타브 없이 음 자체만을 알려면 step 속성을 확인한다. print(note1.step) print(note2.step) #악보는 음의 시퀀스로 구성될텐데 , 리스트를 활용해서 표현하고 음을 다룰 수도 있다. noteList = [note1, note2] print(noteList) #객체로 표현되는 것이 보기 그렇.. 더보기
[Music21] 1. Music21 가이드 ( Note , Pitch , Duration ) Music21 라이브러리 가이드 1 import music21 #Music21 User Guide 1 ~ 3 레퍼런스 정리 # midi 파일 불러오는 법 #music21.converter.parse(datapath) 로 music21 객체 생성 datapath = "...Canon_in_D.mid" midi = music21.converter.parse(datapath) # midi 파일의 키 알아내기 print(midi.analyze('key')) #Canon의 경우 D 메이저 # note (음표) 객체 만들기 f = music21.note.Note("F5") #F5 즉 5옥타브의 파 음을 만들었다. 따라서 f.name은 F(파)를 octave는 5옥타브를 보여준다. print(f) print(f.na.. 더보기
[기타] 블로그에 Jupyter notebook 올리기 그동안 Jupyter notebook으로 작업을 하면서 다양한 Jupyter notebook 파일들을 티스토리 블로그에 올려야 했다. 인터넷을 통해 여러 가지 방법들을 찾았지만 , 뭔가 다들 내 블로그에 적용하기에는 2% 부족했었다. 지금까지 시도한 방법을 정리해 소개하고 혹시 다른 사람들도 나와 같은 문제점이 있다면 이 글을 읽고 해결하기 바라면서 글을 올린다. 방법 1 가장 기본적이고 찾아보면 첫 번째로 등장하는 방법이다. Jupyter notebook에서 File -> Print Preview -> Ctrl+U로 전체 html 소스코드 열기 -> Ctrl+A와 Ctrl+C로 전체를 복사해 내 티스토리 블로그 html 편집창에 그대로 붙여 넣기 위의 방법이 Jupyter notebook의 html 자.. 더보기
알고리즘 - Python / 백준 - 14921번 : 용액 합성하기 14921번: 용액 합성하기 (acmicpc.net) 14921번: 용액 합성하기 홍익대 화학연구소는 다양한 용액을 보유하고 있다. 각 용액은 -100,000,000부터 100,000,000사이의 특성 값을 갖는데, 같은 양의 두 용액을 혼합하면, 그 특성값은 두 용액의 특성값의 합이 된다. 당 www.acmicpc.net 풀이 오름차순으로 나열된 숫자들 중 2개를 더해서 가장 0에 가깝게 만드는 문제다. 문제를 딱 봤는데 어디서 본문제 같다. 알고리즘 - Python / 백준 - 2467번 : 용액 (tistory.com) 알고리즘 - Python / 백준 - 2467번 : 용액 2467번: 용액 (acmicpc.net) 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 10.. 더보기
알고리즘 - Python / 백준 - 1461번 : 도서관 1461번: 도서관 (acmicpc.net) 1461번: 도서관 세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책 www.acmicpc.net 풀이 수직선 상의 좌표에 책을 가져다 두어야 하고 , 한 번에 m개의 책을 들 수 있다. 이때 가장 적게 움직이면서 책을 가져다 두려면 얼마나 움직여야 하는지 구하는 문제다. 딱 봐도 그리디 스타일의 문제라고 생각하고 바로 예제를 뜯어보았다. 예제 1의 경우 [-39, -37, -29, -28, -6, 2, 11]이다. 마지막에는 책을 꽂고 원점으로 돌아올 필요가 없으므로 무조건 마지막에 좌우에서 가장 먼 부분의 책을 꽂는.. 더보기
알고리즘 - Python / 백준 - 13926번 : gcd(n, k) = 1 13926번: gcd(n, k) = 1 (acmicpc.net) 13926번: gcd(n, k) = 1 자연수 n이 주어졌을 때, gcd(n, k) = 1을 만족하는 자연수 1 ≤ k ≤ n 의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 자연수 n이 주어졌을 때 , n보다 작고 gcd(n,k) = 1을 만족하는 자연수 k의 개수를 구하는 문제다. gcd(a,b)는 a와 b의 최대공약수를 의미하고 이 최대 공약수가 1이라는 뜻은 두 수가 서로소라는 뜻이다. 그러면 어떠한 수 n과 1 ~ n 까지의 k가 서로소인지 아닌지 판별해야 한다. 이때 , 다음과 같은 과정을 통해 알아낼 수 있다. 1. 어떠한 수 n을 소인수 분해 한다. 2. n을 소인수 분해한 수들이 p1,p2,p3.... 더보기
알고리즘 - Python / 백준 - 1990번 : 소수인팰린드롬 1990번: 소수인팰린드롬 (acmicpc.net) 1990번: 소수인팰린드롬 151은 소수이면서 동시에 팰린드롬이기 때문에 소수인 팰린드롬이다. 팰린드롬이란 앞으로 읽어나 뒤로 읽으나 같은 수를 말한다. 예를 들어 1234는 앞으로 읽으면 1234지만, 뒤로 읽으면 4321이 되 www.acmicpc.net 풀이 팰린드롬인 수들 중 범위 내의 소수들을 출력하면 되는 문제다. 일단 생각해보니 범위 내의 소수를 구하고 그중에 팰린드롬을 검사할지 , 범위 내의 팰린드롬을 구하고 소수인지 판별할지 정해야 했다. 5 ~ 1억 사이의 소수를 구하려면 에라토스테네스로 해도 되고 , 밀러 라빈이나 루트 N 까지 숫자를 넣어 소수인지 아닌지 판별하는 방식으로 구해야 한다. 에라토스테네스의 체는 거의 선형 시간의 시간 .. 더보기
반응형