内容简介:This application
ORCΛ
Orca is an esoteric programming language designed to quickly create procedural sequencers, in which every letter of the alphabet is an operation, where lowercase letters operate on bang, uppercase letters operate each frame.
This application is not a synthesizer, but a flexible livecoding environment capable of sending MIDI, OSC & UDP to your audio/visual interfaces, like Ableton, Renoise, VCV Rack or SuperCollider.
The livecoding environment for the C implementation runs in a terminal. It's designed to be power efficient. It can handle large files, even if your terminal is small. If you need help , visit the chatroom or the forum .
Install & Run
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
Select Midi Device
To choose your MIDI output device, press F1
(or Ctrl+D
) to open the main menu, and then select 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 │ │ │ │ > MIDI Output... │ │ │ │ Controls... │ │ Operators... │ │ About... │ │ │ │ Quit │ └────────────────────┘
Prerequisites
Core library: A C99 compiler (no VLAs required), plus enough libc for malloc
, realloc
, free
, memcpy
, memset
, and memmove
. (Also, #pragma once
must be supported.)
Command-line interpreter: The above, plus POSIX, and enough libc for the common string operations ( strlen
, strcmp
, etc.)
Livecoding terminal UI: The above, plus ncurses (or compatible curses library), and floating point support (for timing.) Optionally, PortMidi can be used to enable direct MIDI output.
Build
The build script, called simply tool
, is written in bash
. It should work with gcc
(including the musl-gcc
wrapper), tcc
, and clang
, and will automatically detect your compiler. You can manually specify a compiler with the -c
option.
Currently known to build on macOS ( gcc
, clang
, tcc
) and Linux ( gcc
, musl-gcc
, tcc
, and clang
, optionally with LLD
), and Windows via cygwin or WSL ( gcc
or clang
, tcc
untested).
There is a fire-and-forget make
wrapper around the build script.
PortMidi is an optional dependency. It can be enabled by adding the option --portmidi
when running the tool
build script.
Mouse awareness can be disabled by adding the --no-mouse
option.
Build using the tool
build script
Run ./tool help
to see usage info. Examples:
./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/
Build using the make
wrapper
make release # optimized build, binary placed at build/orca make debug # debugging build, binary placed at build/debug/orca make clean # removes build/
The make
wrapper will enable --portmidi
by default. If you run the tool
build script on its own, --portmidi
is not enabled by default.
orca
Livecoding Environment Usage
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
Example: build and run orca
liveocding environment with MIDI output
$ ./tool build --portmidi orca # compile orca using build script $ build/orca # run orca
orca
Livecoding Environment Controls
┌ 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+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 │ │ ( and ) Resize Grid (Horizontal) │ │ _ and + Resize Grid (Vertical) │ │ [ and ] Adjust Grid Rulers (Horizontal) │ │ { and } Adjust Grid Rulers (Vertical) │ │ < and > Adjust BPM │ │ ? Controls (this message) │ └─────────────────────────────────────────────────────┘
cli
command-line interface interpreter
The CLI ( cli
binary) reads from a file and runs the orca simulation for 1 timestep (default) or a specified number ( -t
option) and writes the resulting state of the grid to stdout.
cli [-t timesteps] infile
You can also make cli
read from stdin: sh echo -e "...\na34\n..." | cli /dev/stdin
以上所述就是小编给大家介绍的《ORCΛ: an esolang for audio-visual live coding》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Spring技术内幕
计文柯 / 机械工业出版社 / 2010-1-1 / 55.00元
内容简介: 本书是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔!Java开发者社区和Spring开发者社区一致强烈推荐。 国内第一本基于Spring3.0的著作,从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和实现原理进行了深入剖析。你不仅能从木书中参透Spring框架的优秀架构和设计思想,而且还能从Spring优雅的实现源码中一窥......一起来看看 《Spring技术内幕》 这本书的介绍吧!
html转js在线工具
html转js在线工具
RGB HSV 转换
RGB HSV 互转工具