GithubHelp home page GithubHelp logo

tradica / orca Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hundredrabbits/orca

0.0 1.0 0.0 1.27 MB

Live Programming Environment

Home Page: http://wiki.xxiivv.com/orca

License: MIT License

JavaScript 91.86% HTML 6.99% CSS 1.16%

orca's Introduction

ORCΛ

Each letter of the alphabet is an operation, lowercase letters operate on bang(*), uppercase letters operate each frame. Bangs can be generated by various operations, such as E colliding with a 0, see the bang.orca example. See some project created with #ORCΛ.

Install & Run

You can download builds for OSX, Windows and Linux here. If you wish to build it yourself, follow these steps:

git clone https://github.com/hundredrabbits/Orca.git
cd Orca/desktop/
npm install
npm start

Quickstart

You can follow the guide to get started and play your first sounds. You can see the design notes for specs and upcoming features.

Functions

  • A add(a, b): Outputs the sum of inputs.
  • B banger(val): Bangs if input is 1, N, S, W, E or Z.
  • C clock('rate, mod): Outputs a constant value based on the runtime frame.
  • D delay('rate, offset): Bangs on a fraction of the runtime frame.
  • E east: Moves eastward, or bangs.
  • F if(a, b): Bangs if both inputs are equal.
  • G generator('x, 'y, 'len): Writes distant operators with offset.
  • H halt('len): Stops southward operators from operating.
  • I increment(min, max): Increments southward operator.
  • J jumper(val): Outputs the northward operator.
  • K kill: Kills southward operator.
  • L loop('len): Loops a number of eastward operators.
  • M modulo(val, mod): Outputs the modulo of input.
  • N north: Moves Northward, or bangs.
  • O offset('x, 'y, val): Reads a distant operator with offset.
  • P push('len, 'key, val): Writes an eastward operator with offset.
  • Q query('x, 'y, 'len): Reads distant operators with offset.
  • R random(min, max): Outputs a random value.
  • S south: Moves southward, or bangs.
  • T track('len, 'key, val): Reads an eastward operator with offset.
  • U uturn('n, 'e, 's, 'w): Reverses movement of inputs.
  • V variable('write, read): Reads and write globally available variables.
  • W west: Moves westward, or bangs.
  • X teleport('x, 'y, val): Writes a distant operator with offset.
  • Y jymper(val): Outputs the westward operator.
  • Z diagonal: Moves eastwardly, respawns west on collision.
  • * bang: Bangs neighboring operators.
  • # comment: Comments a line, or characters until the next hash.
  • ; udp('len): Sends a string via UDP to localhost.
  • : midi('channel, 'octave, 'note, velocity, length): Sends Midi a midi note.

Controls

Terminal Controls

  • enter toggle insert/write.
  • space toggle play/pause.
  • shift+arrow resize cursor size.
  • ctrl/meta+arrow jump cursor position.
  • > increase BPM.
  • < decrease BPM.

Edit

  • ctrl+c copy selection.
  • ctrl+x cut selection.
  • ctrl+v paste selection.
  • ctrl+z undo.
  • ctrl+shift+z redo.

Grid Controls

  • ] increase grid size vertically.
  • [ decrease grid size vertically.
  • } increase grid size horizontally.
  • { decrease grid size horizontally.
  • ctrl/meta+] increase program size vertically.
  • ctrl/meta+[ decrease program size vertically.
  • ctrl/meta+} increase program size horizontally.
  • ctrl/meta+{ decrease program size horizontally.

Window

  • ctrl+= Zoom In.
  • ctrl+- Zoom Out.
  • ctrl+0 Zoom Reset.

Special Operators

Midi Output

The midi operator : takes up to 5 inputs('channel, 'octave, 'note, velocity, length). For example, :25C, is a C note, on the 5th octave, through the 3rd MIDI channel, :04c, is a C# note, on the 4th octave, through the 1st MIDI channel. See it in action with midi.orca.

Velocity*

Velocity is a value from 1(8/127) to g(127/127). For example, :34C8., is a C note, on the 4th octave, through the 4th MIDI channel with a velocity of 63/127(50%), :34CG., is a C note, on the 4th octave, through the 4th MIDI channel with a velocity of 127/127(100%).

Note Length*

Note length is a value from 1(1/16) to g(16/16), which is a ratio of a full bar, f being 16/16(a full bar), 8 being 1/2(half), 4 being 1/4(quarter).. and 1 being 1/16. For example, :27D.F, is a D note, on the 7th octave, through the 3rd MIDI channel lasting for a full bar.

UDP Output

The UDP operator ;, takes one haste input that is a string length and locks the eastwardly ports. It sends the message on bang to the port 49160. You can use the listener.js to test UDP messages. See it in action with udp.orca.

Base36 Table

Orca operates on a base of 36 increments. Operators using numeric values will typically also operate on letters and convert them into values as per the following table. For instance pD will bang every 24th frame.

0 1 2 3 4 5 6 7 8 9 A B
0 1 2 3 4 5 6 7 8 9 10 11
C D E F G H I J K L M N
12 13 14 15 16 17 18 19 20 21 22 23
O P Q R S T U V W X Y Z
24 25 26 27 28 29 30 31 32 33 34 35

Extras

  • This application supports the Ecosystem Theme.
  • Support this project through Patreon.
  • See the License file for license rights and limitations (MIT).
  • Pull Requests are welcome!

orca's People

Contributors

eelfroth avatar jglukasik avatar joshavanier avatar makio135 avatar neauoire avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.