Orca — это эзотерический язык программирования и живой редактор, предназначенный для быстрого создания процедурных секвенсоров. Каждая буква алфавита представляет собой операцию, строчные буквы выполняются на *bang* , а прописные буквы — на каждом кадре.
Это реализация C языка ORCΛ и среды живого кодирования терминала. Он разработан с учетом энергоэффективности. Он может обрабатывать большие файлы, даже если ваш терминал небольшой.
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 не требуются), а также достаточное количество libc для malloc , realloc , free , memcpy , memset и memmove . (Кроме того, #pragma once должна поддерживаться.)
Интерпретатор командной строки: вышеперечисленное, плюс POSIX и достаточное количество libc для обычных строковых операций ( strlen , strcmp и т. д.).
Пользовательский интерфейс терминала Livecoding: вышеописанное, плюс ncurses (или совместимая библиотека Curses) и поддержка плавающей запятой (для синхронизации). При желании PortMidi можно использовать для включения прямого вывода MIDI.
Скрипт сборки, называемый tool , написан на POSIX sh . Он должен работать с gcc (включая оболочку musl-gcc ), tcc и clang и автоматически обнаружит ваш компилятор. Вы можете вручную указать компилятор с опцией -c .
В настоящее время известно, что он построен на macOS ( gcc , clang , tcc ) и Linux ( gcc , musl-gcc , tcc и clang , опционально с LLD ) и Windows через cygwin или WSL ( gcc или clang , tcc непроверено).
Вокруг сценария сборки существует оболочка make принципу «сделал и забыл».
PortMidi — необязательная зависимость. Его можно включить, добавив параметр --portmidi при запуске сценария сборки tool .
Осведомленность о мыши можно отключить, добавив параметр --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 Livecoding 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 с выходом MIDI. $ ./tool build --portmidi orca # compile orca using build script
$ build/orca # run orcaorca Элементы управления средой Livecoding ┌ 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 ) считывает из файла и запускает симуляцию orca для 1 временного шага (по умолчанию) или заданного числа (опция -t ) и записывает результирующее состояние сетки в стандартный вывод.
cli [-t timesteps] infile Вы также можете заставить cli читать со стандартного ввода:
echo -e " ...na34n... " | cli /dev/stdin