BGSMM

재즈화성학: 세컨더리 도미넌트 세븐스 (Secondary Dominant 7th) + 조성에 맞게 변화한 믹소리디언 스케일

세컨더리 도미넌트 세븐스 (차용화음) 논다이어토닉 코드 (Non-diatonic chord)입니다. 다이어토닉 코드에서는 긴장-해결 역할을 하는 코드가 V7 ↝ IM7 밖에 없습니다. 단조로워 질 수 있기 때문에 이를 피하기 위해 다른 키의 도미넌트 코드를 빌려와 긴장-해결감을 줄 수 있는데 이를 세컨더리 도미넌트...

자바스크립트: 오디오 음원의 음정(음높이, 피치) 조절하기 (외부 라이브러리 없이 AudioContext와 Buffer를 이용)

소개 HTML과 자바스크립트를 이용해 아래와 같이 숫자(Transpose)를 조절하면 서버 상에 있는 오디오 음원의 음정(pitch, 음높이)이 높아지거나 낮아지게 할 수 있습니다. https://youtube.com/shorts/a9LgiL-Evq4?feature=share 웹 페이지에서 다른 음높이의 오디오 음원을 재생하고 싶을 때 사용합니다...

Xcode: 코드 에디터에서 사용할 코드 스니펫(Code Snippet) 추가 및 플레이스홀더 만들기

플레이스홀더 플레이스홀더는 Xcode에서 매우 빈번하게 사용되는 기능입니다. 단독으로 사용하기보다는 주로 코드 스니펫 기능과 결합되어 많이 사용됩니다. “플레이스홀더”는 일반적으로 코드를 작성할 때 사용되는 임시적인 값 또는 표시물을 가리킵니다. 이는 주로 코드 작성 중에 아직 정확한 값을 알지 못할 때 사용됩니다. 플레이스홀더를 사용하면 코...

Swift: PDFView에서 터치한 곳의 문서상 좌표 알아내기

소개 PDFView에서 탭했을 때 확대 여부에 상관없이 실제 PDF 문서상의 좌표를 알아내고 싶을 때 사용하는 방법입니다, 스크린상에 터치했을 때 나오는 좌표를 실제 PDF 페이지에 알맞게 변환하여 사용합니다. 확대/축소 및 스크롤 위치 여부에 상관없이 일정한 좌표값을 받을 수 있습니다.   방법 Step 1: UITapGestur...

Swift: iOS 프로젝트의 인앱 결제(In App Purchase; IAP) 기초 예제

사전 작업 애플 개발자 계정(유료)가 필요하며, 수익 창출이 허가가 되어야 합니다. 수익 창출 후 App Store Connect에서 인앱결제 제품을 등록해야 합니다. 개인 개발자가 수익 창출이 되려면 은행 계좌 등록, 개인사업자등록 등의 절차를 진행해야 하며 해당 방법 및 제품 등록 방법은 타 블로그 포스트로 대체합니다. ...