자바스크립트 + abcjs: 악보 출력, Synth 플레이어 삽입

abcjs.net 은 인터넷 브라우저에 악보를 출력하는 자바스크립트 라이브러리입니다. https://www.abcjs.net/abcjs_basic_5.9.1-min.js [다운로드] https://www.abcjs.net/abcjs-audio.css [다운로드] <!DOCTYPE HTML> <html> <head> <link href=”abcjs-audio.css” media=”all” rel=”stylesheet” type=”text/css” /> <script src=”abcjs_basic_5.9.1-min.js” type=”text/javascript”></script> </head> <body> <div id=”notation”></div> <div id=”audio”></div> <script type=”text/javascript”> ……… </script> </body> </html> var cooleys = ‘X:1\nT: Cooley\’s\nM: 4/4\nL: 1/8\nR: reel\nK: Emin\nD2|:”Em”EB{c}BA B2 EB|~B2 AB dBAG|”D”FDAD 더보기…

QBasic: 배열(Arrays), 함수(SUB, FUNCTION), 종합예제 (完)

배열 (Arrays) 일반적으로 변수 하나 당 자료를 한 개씩만 저장할 수 있습니다. 하지만 한 개의 변수에 여러 개의 자료를 저장하고 싶을 때도 있습니다. 이렇게 동일한 유형의 데이터로 구성되고 정렬된 유한한(finite) 데이터 항목 모음(collection)을 배열(array)이라고 하며 개별 데이터를 요소(element) 혹은 원소라고 칭합니다. 전체 배열에 하나의 이름만 할당되며, 인덱스(index)를 지정하여 개별 요소를 더보기…

QBasic: 반복문 (WHILE, DO … WHILE, FOR LOOP)

프로그램의 실행에는 기본적으로 세 가지의 제어 구조가 있습니다.  순차적 (Sequential) 선택 또는 의사결정 또는 조건부 (Selective or decision making or conditional) 반복 (Repetitive or iterative or looping) 1, 2번이 지금까지의 과정이며, 이 글에서는 3번에 대해 다뤄볼 것입니다.   예를 들어 불면증 때문에 잠을 잘 자기 위해 100마리의 양을 세는 프로그램을 더보기…

QBasic: 조건문(IF문, SELECT CASE문)

조건문 조건문은 명령문 또는 명령문 그룹의 선택적 처리를 허용합니다. 조건문에는 두 가지 형태가 있습니다. if-then-else 문 if-then-elseif … else 문 예를 들어, 학생이 3 + 3 = 9 이라는 숙제에 관한 쪽지 하나를 선생님한테 제출하였을 경우, 선생님은 이 식이 맞는 식인지, 아니면 틀린 식인지 알 수 있을 것입니다. 만약 식이 더보기…

QBasic: INPUT(프롬프트로 키보드 입력 받기)

  INPUT 구문은 다음과 같이 사용합니다. INPUT "화면에 나타낼 안내문구 텍스트", 변수명 안내문구는 생략 가능하며, 변수는 여러 개를 콤마(,)로 지정하는 것이 가능합니다. 변수를 여러 개 지정하면, 키보드로 입력할 때 콤마(,)으로 구분하여 갯수만큼 입력값을 입력하고 엔터를 치면 됩니다.   예를 들어 키보드로 학생의 이름과 성적을 입력받고 이것을 화면에 출력하는 프로그램을 만든다고 더보기…

QBasic: 개요(설치 방법, 데이터 타입, 변수 선언)

0. QBasic을 공부해야 하는 이유 (1) 문법이 쉬워 프로그래밍 초급자들이 절차적 프로그래밍 언어에 대한 개념을 빠르게 습득하는데 도움이 됩니다. (2) 베이식 문법에서 파생된 VBA(Visual Basic for Application)을 학습하는 데 도움이 됩니다.   1. 설치 방법 (1) Windows 7 이하: 이미 설치되어 있으며 실행 창(Win + R) 띄운 후 qb.exe 입력 더보기…

자바스크립트 예제: 특정 주파수의 소리 재생 + 음악 평균율 주파수 테이블

  자바에서 주파수를 재생하는 글 자바 예제: 특정 주파수의 소리 재생 을 자바스크립트로 바꾼 예제입니다. 외부 온라인 소스나 라이브러리 필요 없이 자바스크립트 자체 엔진으로 소리를 재생합니다.   1) AudioContext 인스턴스 생성 var audioCtx = new(window.AudioContext || window.webkitAudioContext)(); var osc, gn; 사파리 등 모바일 브라우저에서는 웹킷 접두어가 붙은 webkitAudioContext만 인식하므로 이 부분도 추가합니다. 더보기…

자바 예제: 특정 주파수의 소리 재생

특정 주파수의 음을 사인파(Sine Wave)로 재생하고 싶다면, javax.sound.sampled.* 라이브러리를 사용합니다. javax 시리즈는 자바에서 기본 제공됩니다.   1) new AudioFormat으로 새로운 오디오 형식 생성 public AudioFormat(float sampleRate:샘플수, int sampleSizeInBits:비트당샘플사이즈, int channels:채널수, boolean signed:부호여부, boolean bigEndian:빅엔디안여부)   2) 생성한 AudioFormat에서 소스 데이터 라인(Source Data Line)을 추출 후 SourceDataLine 자료형 변수에 저장 AudioFormat 더보기…

자바: Enum (예제 – 모스 부호)

Enum 클래스는 고유 타입으로 상수를 이용할 수 있게 하는 특수한 클래스입니다. (자세한 내용) 다음은 가장 기초적 형태의 Enum 선언입니다. public enum FourDevas { 백호, 주작, 청룡, 현무; } 이렇게 하면 백호, 주작, 청룡, 현무의 4개의 상수가 지정되며 FourDevas 자료형을 통해 해당 상수들을 사용할 수 있습니다.   아래 코드에서 변수fd에는 FourDevas 더보기…