Orca는 절차적 시퀀서를 빠르게 생성하도록 설계된 난해한 프로그래밍 언어이자 라이브 편집기입니다. 알파벳의 모든 문자는 연산이고, 소문자는 *bang*
에서 실행되고, 대문자는 각 프레임에서 실행됩니다.
이는 ORCΛ 언어 및 터미널 라이브코딩 환경의 C 구현입니다. 전력 효율적으로 설계되었습니다. 터미널이 작더라도 대용량 파일을 처리할 수 있습니다.
Orca는 신디사이저가 아니지만 MIDI, OSC 및 UDP를 Ableton, Renoise, VCV Rack 또는 SuperCollider와 같은 오디오/비주얼 인터페이스로 보낼 수 있는 유연한 라이브코딩 환경입니다.
메인 git 저장소 | GitHub 미러 |
---|---|
git.sr.ht/~rabbits/orca | github.com/hundredrabbits/Orca-c |
sudo apt-get install git libncurses5-dev libncursesw5-dev libportmidi-dev
git clone https://github.com/hundredrabbits/Orca-c.git
cd Orca-c
make # Compile orca
build/orca # Run orca
MIDI 출력 장치를 선택하려면 F1
(또는 Ctrl+D
)을 눌러 기본 메뉴를 연 다음 MIDI Output...
선택하세요.
┌ ORCA ───────────────┐┌ PortMidi Device Selection ─────┐
│ New ││ > (*) #0 - Midi Through Port-0 │
│ Open... ││ ( ) #2 - ES1371 │
│ Save │└────────────────────────────────┘
│ Save As... │
│ │
│ Set BPM... │
│ Set Grid Size... │
│ Auto-fit Grid │
│ │
│ OSC Output... │
│ > MIDI Output... │
│ │
│ Clock & Timing... │
│.....................│
핵심 라이브러리: C99 컴파일러(VLA 필요 없음)와 malloc
, realloc
, free
, memcpy
, memset
및 memmove
에 대한 충분한 libc. (또한 #pragma once
지원되어야 합니다.)
명령줄 인터프리터: 위 내용과 POSIX, 그리고 일반적인 문자열 작업( strlen
, strcmp
등)을 위한 충분한 libc
라이브코딩 터미널 UI: 위 내용과 ncurses(또는 호환 가능한curses 라이브러리) 및 부동 소수점 지원(타이밍용). 선택적으로 PortMidi를 사용하여 직접 MIDI 출력을 활성화할 수 있습니다.
단순히 tool
이라고 불리는 빌드 스크립트는 POSIX sh
로 작성되었습니다. gcc
( musl-gcc
래퍼 포함), tcc
및 clang
과 함께 작동해야 하며 자동으로 컴파일러를 감지합니다. -c
옵션을 사용하여 컴파일러를 수동으로 지정할 수 있습니다.
현재 macOS( gcc
, clang
, tcc
) 및 Linux( gcc
, musl-gcc
, tcc
및 clang
, 선택적으로 LLD
사용) 및 cygwin 또는 WSL( gcc
또는 clang
, tcc
미테스트)을 통해 Windows에서 빌드하는 것으로 알려져 있습니다.
빌드 스크립트 주위에는 실행 후 잊어버리는 make
래퍼가 있습니다.
PortMidi는 선택적 종속성입니다. tool
빌드 스크립트를 실행할 때 --portmidi
옵션을 추가하여 활성화할 수 있습니다.
--no-mouse
옵션을 추가하면 마우스 인식을 비활성화할 수 있습니다.
tool
빌드 스크립트를 사용하여 빌드 사용법 정보를 보려면 ./tool help
실행하세요. 예:
./tool build -c clang-7 --portmidi orca
# Build the livecoding environment with a compiler
# named clang-7, with optimizations enabled, and
# with PortMidi enabled for MIDI output.
# Binary placed at build/orca
./tool build -d orca
# Debug build of the livecoding environment.
# Binary placed at build/debug/orca
./tool build -d cli
# Debug build of the headless CLI interpreter.
# Binary placed at build/debug/cli
./tool clean
# Same as make clean. Removes build/
make
래퍼를 사용하여 빌드 make release # optimized build, binary placed at build/orca
make debug # debugging build, binary placed at build/debug/orca
make clean # removes build/
make
래퍼는 기본적으로 --portmidi
활성화합니다. tool
빌드 스크립트를 자체적으로 실행하는 경우 --portmidi
기본적으로 활성화되지 않습니다.
orca
라이브코딩 환경 사용 Usage: orca [options] [file]
General options:
--undo-limit <number> Set the maximum number of undo steps.
If you plan to work with large files,
set this to a low number.
Default: 100
--initial-size <nxn> When creating a new grid file, use these
starting dimensions.
--bpm <number> Set the tempo (beats per minute).
Default: 120
--seed <number> Set the seed for the random function.
Default: 1
-h or --help Print this message and exit.
OSC/MIDI options:
--strict-timing
Reduce the timing jitter of outgoing MIDI and OSC messages.
Uses more CPU time.
--osc-midi-bidule <path>
Set MIDI to be sent via OSC formatted for Plogue Bidule.
The path argument is the path of the Plogue OSC MIDI device.
Example: /OSC_MIDI_0/MIDI
orca
라이브코딩 환경 구축 및 실행 $ ./tool build --portmidi orca # compile orca using build script
$ build/orca # run orca
orca
라이브코딩 환경 제어 ┌ Controls ───────────────────────────────────────────┐
│ Ctrl+Q Quit │
│ Arrow Keys Move Cursor │
│ Ctrl+D or F1 Open Main Menu │
│ 0-9, A-Z, a-z, Insert Character │
│ ! : % / = # * │
│ Spacebar Play/Pause │
│ Ctrl+Z or Ctrl+U Undo │
│ Ctrl+X Cut │
│ Ctrl+C Copy │
│ Ctrl+V Paste │
│ Ctrl+S Save │
│ Ctrl+F Frame Step Forward │
│ Ctrl+R Reset Frame Number │
│ Ctrl+I or Insert Append/Overwrite Mode │
│ ' (quote) Rectangle Selection Mode │
│ Shift+Arrow Keys Adjust Rectangle Selection │
│ Alt+Arrow Keys Slide Selection │
│ ` (grave) or ~ Slide Selection Mode │
│ Escape Return to Normal Mode or Deselect │
│ ( ) _ + [ ] { } Adjust Grid Size and Rulers │
│ < and > Adjust BPM │
│ ? Controls (this message) │
└─────────────────────────────────────────────────────┘
cli
명령줄 인터페이스 인터프리터 CLI( cli
바이너리)는 파일에서 읽고 1시간 단계(기본값) 또는 지정된 수( -t
옵션)에 대해 orca 시뮬레이션을 실행하고 그리드의 결과 상태를 stdout에 기록합니다.
cli [-t timesteps] infile
stdin에서 cli
읽을 수도 있습니다.
echo -e " ...na34n... " | cli /dev/stdin