Orca เป็นภาษาโปรแกรมลึกลับและโปรแกรมแก้ไขสดที่ออกแบบมาเพื่อสร้างซีเควนเซอร์ขั้นตอนอย่างรวดเร็ว ตัวอักษรทุกตัวเป็นการดำเนินการ ตัวพิมพ์เล็กดำเนินการกับ *bang*
และตัวพิมพ์ใหญ่ดำเนินการแต่ละเฟรม
นี่คือการใช้งาน C ของภาษาORCΛและสภาพแวดล้อมการเข้ารหัสสดของเทอร์มินัล ได้รับการออกแบบมาให้ประหยัดพลังงาน สามารถจัดการไฟล์ขนาดใหญ่ได้ แม้ว่าเทอร์มินัลของคุณจะเล็กก็ตาม
Orca ไม่ใช่ซินธิไซเซอร์ แต่เป็นสภาพแวดล้อมการเข้ารหัสสดที่ยืดหยุ่นซึ่งสามารถส่ง MIDI, OSC และ UDP ไปยังอินเทอร์เฟซเสียง/ภาพของคุณ เช่น Ableton, Renoise, VCV Rack หรือ SuperCollider
ที่เก็บคอมไพล์หลัก | กระจก 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
ฯลฯ )
UI เทอร์มินัล Livecoding: ด้านบนบวกกับ ncurses (หรือไลบรารีคำสาปที่เข้ากันได้) และการสนับสนุนจุดลอยตัว (สำหรับการกำหนดเวลา) เป็นทางเลือก PortMidi สามารถใช้เพื่อเปิดใช้งานเอาต์พุต MIDI โดยตรง
สคริปต์การสร้างที่เรียกว่าง่ายๆ tool
เขียนด้วย POSIX sh
ควรทำงานร่วมกับ gcc
(รวมถึง wrapper 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
wrapper make release # optimized build, binary placed at build/orca
make debug # debugging build, binary placed at build/debug/orca
make clean # removes build/
make
wrapper จะเปิดใช้งาน --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
Livecoding ด้วยเอาต์พุต MIDI $ ./tool build --portmidi orca # compile orca using build script
$ build/orca # run orca
orca
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
binary) อ่านจากไฟล์และรันการจำลอง orca เป็นเวลา 1 ครั้ง (ค่าเริ่มต้น) หรือหมายเลขที่ระบุ ( -t
ตัวเลือก) และเขียนสถานะผลลัพธ์ของกริดไปที่ stdout
cli [-t timesteps] infile
คุณยังสามารถทำให้ cli
อ่านจาก stdin:
echo -e " ...na34n... " | cli /dev/stdin