Code Monkey home page Code Monkey logo

pico's Introduction

Pico

Not much is known about the machine, but it seems to be reacting to our presence.

Guide

Each letter of the alphabet is an operation, lowercase letters typically operate on bang(*), uppercase letters operate on each frame. Bangs can be generated by various operations, such as E colliding with a 0, see the bang.pico example.

Ports Specs

Haste < Function > Input(s)
           v
        Output
  • Haste port values are collected before runtime.
  • Inputs are collected at runtime.
  • Output is usually where the magic happens.

Functions

alpha functions

  • A add(a, b): Outputs the sum of inputs.
  • B banger(val): Bangs if input is 1, N, S, W or E.
  • C clock(min, max): Outputs a constant value based on the runtime frame.
  • D unknown: --
  • E east: Moves eastward, or bangs.
  • F if(a, b): Outputs 1 if inputs are equal, otherwise 0.
  • G generator(val): Outputs a value on bang.
  • H halt: Stops southward fn from operating.
  • I increment(min, max): Increments southward fn.
  • J jump(val): Outputs the northward fn.
  • K kill: Kills southward fn.
  • L loop('len): Loops a number of eastward fns.
  • M modulo(val, mod): Outputs the modulo of inputs.
  • N north: Moves Northward, or bangs.
  • O offset('x, 'y, val): Reads a distant fn with offset.
  • P push: Moves away on bang.
  • Q count('len): Counts the number of fns present eastwardly.
  • R random(min, max): Outputs a random value.
  • S south: Moves southward, or bangs.
  • T track('len, 'key, val): Outputs character at eastward position with offset.
  • U unknown: --
  • V beam: Bangs the nearest southward fn on bang.
  • W west: Moves westward, or bangs.
  • X teleport('x, 'y, val): Outputs value at offset.
  • Y type(a, b): Compares the type(num/alpha/special) of inputs, and return 1 or 0.
  • Z unknown: --

special functions

  • . null: empty
  • * bang: Bangs!
  • : midi(channel, octave, note): Sends Midi
  • ; udp('len): Sends a string via UDP to localhost.
  • # comment: Block Comment

Controls

Cursor

  • arrowKey, move.
  • ctrl/cmd+arrowKey, leap move.
  • shift+arrowKey, resize cursor.
  • escape, reset cursor.
  • enter, toggle insert/write modes.

Grid

  • space, toggle play/pause modes.
  • </>, change BPM(speed).
  • [/], resize horizontal grid.
  • {/}, resize vertical grid.
  • ctrl/cmd + c, copy block.
  • ctrl/cmd + x, cut block.
  • ctrl/cmd + v, paste block.

Midi Output

The midi special function is :000, it takes up to 4 inputs(channel, octave, note, velocity). 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.

Velocity is either from 0-9(10 steps), or A-Z(26 steps). For example, :34C8, is a C note, on the 4th octave, through the 4th MIDI channel with a velocity of 112/127(88%), :34CT, is a C note, on the 4th octave, through the 4th MIDI channel with a velocity of 96/127(75%).

To see it in action, see the midi.pico example.

UDP Output

The UDP special function is 3;MSG, it has one haste input that gets a string length and locks the eastward ports. It sends the message on bang to the port 49160. You can use the listener.js to test UDP messages.

To see it in action, see the udp.pico example.

Install & Run

cd desktop
npm install
npm start

TODOs

  • Implement OSC
  • Implement U.
  • Implement Z.

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!

pico's People

Contributors

neauoire avatar joshavanier avatar

Watchers

James Cloos 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.