MapleStory Finger Point

개발중 47

[3] Pyiano - 소리 멀티 출력 [끝]

그동안 건반을 치면 한 번에 하나의 소리만 출력됐다. 예를 들어 도를 치고 바로 레를 치면 도 소리가 멈추며 레 소리로 바로 넘어갔다. 멀티 작업이 되지 않았던 것이다. 알고 보니 저번에 소리 파일을 재생하는 코드를 개별로 설정만 해주면 끝나는 문제였다. def click_C(self, event): self.C.setStyleSheet("background-color: #d1d1d1;") file = "audio/25.MP3" pygame.mixer.init(self.freq, self.bitsize, self.channels, self.buffer) pygame.mixer.music.load(file) pygame.mixer.music.play() 각 클릭 이벤트 함수마다 그냥 pygame 모듈에 설..

[2] Pyiano - 클릭 시 소리 출력

이번에는 간단하게 진행할 것이다. 지난번에는 건반 클릭 이벤트만 처리했는데, 누르면 피아노 소리가 나도록 설정해야 한다. 일단 먼저 피아노 소리 파일이 있어야 하는데 구글링 해보니 쉽게 찾을 수 있었다. 여기 있다. 출처 각각 mp3 파일과 wav 파일이 있는데, 파이썬에는 'wave'라는 모듈이 있어 wav 파일을 쉽게 읽고 쓸 수 있다. wave 모듈을 사용했는데, 왜인지 모르겠지만 재생이 되지 않아 부득이하게 그냥 간편한 pygame 모듈을 사용한다. 아 그리고 일단 loop 문은 지운 상태로 코드를 작성했다. 왜냐면 loop문이 끝나야 음악 파일이 재생이 된다.. import os import sys from PyQt5 import QtWidgets, QtGui, QtCore from pyiano..

[1] Pyiano - Ui 제작

어렸을 적 코흘리개였을 때, 난 피아노 학원에 다녔었다. 아마 체르니 90번까지 배웠던 기억이 난다. 그렇다. 체르니 90번은 없다. 그렇기 때문에 파이썬으로 피아노를 만들어 보려고 한다. 먼저 Qt Designer를 실행하여 기본 Ui 틀을 제작한다. ui파일을 다 제작하였으면 이제 파이썬 파일로 변환해준다. pyuic5 -x pyiano.ui -o pyiano.py 위의 명령을 cmd에서 실행해준다. 그럼 이제 이벤트 처리를 할 코드를 작성해야 한다. import sys from PyQt5 import QtWidgets, QtGui, QtCore from pyiano import Ui_MainWindow class Pyiano(Ui_MainWindow): def __init__(self): super..

파이썬 에러 메시지 쉽게 저장하기

프로그램을 만들고 실행했는데 이유 없이 종료된다면 어디서 에러가 발생했는지, 어떤 에러인지 알아야 한다. 파이썬의 traceback 모듈과 try except 구문이면 에러를 찾을 수 있다. import time import traceback def ErrorLog(error: str): current_time = time.strftime("%Y.%m.%d/%H:%M:%S", time.localtime(time.time())) with open("Log.txt", "a") as f: f.write(f"[{current_time}] - {error}\n") try: print(A) except Exception: err = traceback.format_exc() ErrorLog(str(err)) A가 무..

PyQt5 메뉴바 클릭 시 텍스트 변경해보기

PyQt5를 공부하면서 메뉴바를 가지고 이리저리 가지고 놀아보았는데, 클릭 시 텍스트가 바뀌면 어떨까 해서 한번 만들어보았다. 이번에는 PyQt5를 더 효율적이고 쉽게 사용할 수 있는 방법 중에 하나인 "Qt Designer"를 사용하여 만들어 보았다. Qt Designer를 처음 쓸 때는 어떻게 적용하는지 애를 먹었는데, 점점 사용법을 익히다 보니 GUI(Graphical User Interface)를 만들 때 이렇게 편할 수가 없다. Designer를 처음 실행하면 다음과 같은 화면이 나오게 되는데, 나는 Main Window를 선택하여 만들었다. Main Window를 선택하고 Create를 누르게 되면, 정품인증하고 싶어요 이제 자유롭게 GUI를 만들 수 있는 화면이 나온다. 내부 윈도우의 상단을..

Development/GUI 2020.09.21

Polar Plot (자유자재로) 그리기

파이썬으로 Polar Plot을 그리고 싶은데, 대부분의 자료들이 함수를 적용해서 정확히 어떻게 실행되는지를 모르겠다. 그냥 정리 겸 공부하는 느낌으로 정리해보려고 한다. Polar Plot이란 '극좌표계'라고도 한다. Polar plot을 사용하려면 먼저 matplotlib 모듈이 필요하다. 일단 나는 파이참을 사용하여 개발 중이다. 큰 작업이 아닌 작은 작업들을 할 때 유용한데, 특히 필요한 모듈이 있으면 곧바로 검색해서 import 할 수 있다. 약간 모듈들을 잠시 빌려 쓰는 느낌이라고 할까 각설하고 numpy 모듈 또한 필요하다. numpy는 C언어로 구현된 파이썬 라이브러리이다. 고성능의 수치 계산을 위해 제작되었다. 주로 각종 수학적 함수를 사용하기 위해 쓰인다. 코드 import numpy ..

Development/Graph 2020.09.09

PyQt5 이미지 스티칭 (image stitching)

Python으로 개발한 이미지 스티칭. 먼저 스티칭(stitching)이란 여러 개의 이미지, 또는 영상을 이어 붙이는 작업을 말한다. 요새 핫한 VR 카메라도 이 스티칭 기술을 통하여 자연스럽게 이어 붙여 영상을 만드는 것이라고 알고 있다. 우선 필요한 라이브러리들을 설명하자면 Opencv4.3, Opencv-contrib4.3, PyQt5, imutils 정도가 필요하다. 아 PyQt5는 그냥 내가 GUI 이쁘게 만들어서 인터페이스 창으로 실행하고 싶어서 썼다. 굳이 필요 없음 pyimagesearch 다음 페이지를 참고하여 만들어 보았다. https://www.pyimagesearch.com/2018/12/17/image-stitching-with-opencv-and-python/ Image Sti..