다음은 GUI 애플리케이션 설정, 오디오 입력/출력 처리, 간단한 오디오 효과 만들기 등 일반적인 작업을 보여주는 몇 가지 기본적인 JUCE 구현 예제다. 이 예제에서는 JUCE가 설치되어 있고 프로젝트가 Projucer (JUCE의 프로젝트 고나리 도구)에서 생성되어 있다고 가정한다.이 코드 스니펫은 fixed gain을 0.5f 로 설정하고 있으며, 슬라이더에 연결된 변수로 대체해 gain level을 실시간으로 제어할 수 있다. 여러 개의 사용자 제어 파라미터가 있는 더 복잡한 플로그인을 구축하는 경우 AuidoProcessorValueTreeState 클래스를 사용해 파라미터를 처리할 수 있다. Basic GUI Application: 이 예제에서는 슬라이더와 슬라이더의 값을 표시하는 레이블이 있..
JUCE는 주로 오디오 및 멀티미디어 애플리케이션을 구축하기 위해 설계된 인기 있는 크로스 플랫폼 C++ 프레임워크다. 음악 기술 업계에서 특히 디지털 오디오 워크스테이션 (DAW), 오디오 플러그인, 신디사이저 및 기타 오디오 처리 소프트웨어 제작에 널리 사용되고 있다.사용 편의성, 오디오 중심 디자인, 다양한 디지털 오디오 워크스테이션과 운영 체제에서 원활하게 작동하는 플러그인을 만들 수 있는 기능으로 오디오 및 음악 소프트웨어 업계에선 높은 선호도를 얻고 있는 JUCE는 다양한 디지털 오디오 워크스테이션과 운영 체제에서 원활하게 작동한다.아래는 JUCE의 주요 기능 및 장점에 대한 개요다. Audio Processing: JUCE는 실시간 오디오 I/O, MIDI 지원, 내장 DSP(디지털 신호 처..
LeetCode '200. Number of Islands' 를 아래와 같이 DFS 알고리즘으로 C++로 구현했을 때 parameter로 grid를 Call by Value인 vector> grid로 넘겨주면 48/49의 테스트 케이스가 통과되지만 마지막 1개의 테스트 케이스가 Time Limit Exceeded (TLE)로 통과를 못하게 된다. 아이디어 자체엔 문제가 없지만 Call by Value 즉, '&' 의 유무가 통과 유무를 좌우한다. // Wrong Solutionclass Solution {public: int numIslands(vector>& grid) { int m = grid.size(); int n = grid[0].size(); vect..
C++에서 map과 unordered_map의 주요 차이점은 elements를 저장하고 액세스하는 방식에 있으며, 이는 성능과 사용 시나리오의 차이로 이어진다. 순서에 신경을 쓴다면 map을 사용하고, 빈번한 key 기반 조회에 대한 성능 우선순위를 정하고 순서를 신경 쓰지 않는다면 일반적으로 unordered_map이 더 좋다. 기본 데이터 구조map: balanced binary search tree (일반적으로 Red-Black Tree)로 구현된다. elemets는 key를 기준으로 정렬된 순서로 저장된다. unordered_map : hash table을 사용해 구현된다. elements는 key에 따라 정렬되지 않고 hash values에 따라 임의의 순서로 저장된다.시간 복잡도map삽입, 삭..
C와 C++는 메모리 관리에 더 많은 제어 기능을 제공해 잠재적인 차이점을 제공하는 반면, Python은 이러한 세부 사항을 추상화해 일부 효율성을 희생하는 대신 개발을 간소화한다. C, C++ Low-Level Memory ManagementManual Memory Allocation (수동 메모리 할당)C: C에서는 malloc, calloc, realloc, free와 같은 함수를 사용해 메모리를 직접 관리한다.malloc(size_t size): 초기화 되지 않은 메모리의 크기(바이트)를 할당한다.calloc(size_t num, size_t size): num 요소 배열의 각 크기 바이트에 대한 메모리를 할당하고 모든 바이트를 0으로 초기화한다.realloc(void *ptr, size_t si..
일반적으로 C++(및 C)의 구현은 Python의 구현보다 더 빠른 경향이 있다. 그러나 모든 유형의 애플리케이션에서 성능 차이가 크지는 않다. 예를 들어, 개발 속도 및 유연성 측면에서 Python은 단순성과 풍부한 라이브러리 에코시스템으로 인해 신속한 개발 및 프로토타이핑에 선호되는 경우가 많다. IO-boun 애플리케이션의 경우 Python은 높은 수준의 추상화와 사용 편의성으로 인해 웹 서버, 데이터 처리 스크립트 등 IO 바인딩 애플리케이션에 매우 효율적일 수 있다. 요악하면, C++와 C는 일반적으로 컴파일된 특성과 낮은 수준의 제어로 인해 실행 시간이 빠르지만, Python은 사용 편의성과 빠른 개발 기능으로 인해 실행 속도는 느리지만 많은 애플리케이션에서 강력한 선택이 될 수 있다. 아래는..
Windows 애플리케이션은 Console, Windows 두 개의 하위 시스템으로 컴파일이 가능하고, 이 설정은 런타임에 운영체제가 애플리케이션을 어떻게 처리할지를 결정한다. Console Application (CONSOLE subsystem) : 이 유형의 애플리케이션은 console/terminal 과 상호 작용하도록 설계됐다. 실행 시 Windows는 애플리케이션에 콘솔 창은 열결해 std::cout, std::cin 및 기타 표준 C++ I/O 작업을 콘솔 창에서 볼 수 있다. 기존 Command Line Interface (CLI) 에서 콘솔 애플리케이션을 실행하는 경우 기존 콘솔을 출력에 사용한다. Windows Applicaiton (WINDOWS subsystem) : 일반적으로 사용자..
OutputDebugString() 는 개발자가 디버그 정보를 디버그 출력 창에 출력할 수 있도록 설계된 Windows API 함수다. 이 기능은 프로세스에 디버거가 연결되어 있지 않더라도 프로그래머가 디버거의 출력 창이나 Sysinternals의 DebugView와 같은 도구로 직접 메시지를 보낼 수 있어 개발 및 디버깅 세션 중에 특히 유용하다. 디버깅을 위해 std::cout 을 통해 로그를 출력을 할 수도 있지만, GUI Windows 애플리케이션을 개발할 때 std::cout 으론 출력이 되지 않아(AllocConsole() 같은 다른 함수 추가 등으로 출력 가능), OutputDebugString() 를 사용해 출력할 수 있다. OutputDebugString() 의 구문은 아래와 같다. vo..
DialogBox() 는 메모리 또는 애플리케이션의 리소스 파일에 있는 대화 상자 템플릿에서 모달 대화 상자(modal dialog box)를 만드는 Windows API 함수다. CreateDialog() 함수로 만든 모델리스 대화 상자(modeless)와 달리 모달 대화 상자는 입력 포커스를 캡처하고 대화 상자가 닫힐 때까지 사용자가 애플리케이션 내의 다른 창과 상호 작용할 수 없도록 한다. DialogBox() 로 만든 대화 상자의 모달(modal) 특성은 파일 열기, 설정 대화 상자, 확인 등과 같이 애플리케이션에서 진행하기 전에 사용자의 입력이나 결정이 필요한 시나리오에 적합하다. 다음은 DialogBox() 함수의 구문이다. INT_PTR DialogBox( HINSTANCE hInstance..
CreateDialog() 함수는 대화 상장 템플리 리소스에서 모델리스 대화 상자(modeless dialog box)를 만드는 데 사용되는 Windows API의 일부다. 모델리스 대화 상자(modeless dialog box)는 사용자가 애플리케이션의 다른 창과 상호 작용하는 것을 차단하지 않는다. 이는 사용자가 애플리케이션의 다른 부분에 액세스하기 전에 대화 상자와 상호 작용하고 대화 상자를 닫아야 하는 모달 대화 상자(modal dialog box)와는 대조적이다. CreateDialog() 함수는 리소스 스크립트(.rc 파일) 또는 메모리에 정의된 대화 상자를 만드는 데 사용할 수 있다. 대화 상자는 레이아웃, 제어 요소(예: 버튼, 텍스트 상자 등) 및 기타 속성을 지정하는 템플릿을 기반으로 ..
- Total
- Today
- Yesterday
- leetcode
- Computer Graphics
- 티스토리챌린지
- 안드로이드
- The Economist
- 리트코드
- 이코노미스트
- socket programming
- min heap
- ml
- join
- Python
- 오블완
- machine learning
- 소켓 프로그래밍
- 투 포인터
- tf-idf
- java
- C++
- Hash Map
- 파이썬
- defaultdict
- I2C
- The Economist Espresso
- vertex shader
- 딕셔너리
- 이코노미스트 에스프레소
- DICTIONARY
- Android
- 머신 러닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |