Esoteric Programming Language

Overview

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 livecoding environment capable of sending MIDI, OSC & UDP to your audio/visual interfaces, like Ableton, Renoise, VCV Rack or SuperCollider.

If you need help, visit the chatroom, join the forum or watch an tutorial.

Install & Run

If you wish to use Orca inside of Electron, follow these steps:

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

Operators

To display the list of operators inside of Orca, use CmdOrCtrl+G.

  • A add(a b): Outputs sum of inputs.
  • B subtract(a b): Outputs difference of inputs.
  • C clock(rate mod): Outputs modulo of frame.
  • D delay(rate mod): Bangs on modulo of frame.
  • E east: Moves eastward, or bangs.
  • F if(a b): Bangs if inputs are equal.
  • G generator(x y len): Writes operands with offset.
  • H halt: Halts southward operand.
  • I increment(step mod): Increments southward operand.
  • J jumper(val): Outputs northward operand.
  • K konkat(len): Reads multiple variables.
  • L less(a b): Outputs smallest of inputs.
  • M multiply(a b): Outputs product of inputs.
  • N north: Moves Northward, or bangs.
  • O read(x y read): Reads operand with offset.
  • P push(len key val): Writes eastward operand.
  • Q query(x y len): Reads operands with offset.
  • R random(min max): Outputs random value.
  • S south: Moves southward, or bangs.
  • T track(key len val): Reads eastward operand.
  • U uclid(step max): Bangs on Euclidean rhythm.
  • V variable(write read): Reads and writes variable.
  • W west: Moves westward, or bangs.
  • X write(x y val): Writes operand with offset.
  • Y jymper(val): Outputs westward operand.
  • Z lerp(rate target): Transitions operand to input.
  • * bang: Bangs neighboring operands.
  • # comment: Halts a line.

IO

  • : midi(channel octave note velocity length): Sends a MIDI note.
  • % mono(channel octave note velocity length): Sends monophonic MIDI note.
  • ! cc(channel knob value): Sends MIDI control change.
  • ? pb(channel value): Sends MIDI pitch bench.
  • ; udp: Sends UDP message.
  • = osc(path): Sends OSC message.
  • $ self: Sends ORCA command.

MIDI

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. Velocity is an optional value from 0(0/127) to g(127/127). Note length is the number of frames during which a note remains active. See it in action with midi.orca.

MIDI MONO

The MONO operator % takes up to 5 inputs('channel, 'octave, 'note, velocity, length).

This operator is very similar to the default Midi operator, but each new note will stop the previously playing note, would its length overlap with the new one. Making certain that only a single note is ever played at once, this is ideal for monophonic analog synthetisers that might struggle to dealing with chords and note overlaps.

MIDI CC

The MIDI CC operator ! takes 3 inputs('channel, 'knob, 'value).

It sends a value between 0-127, where the value is calculated as a ratio of 36, over a maximum of 127. For example, !008, is sending 28, or (8/36)*127 through the first channel, to the control mapped with id0. You can press enter, with the ! operator selected, to assign it to a controller. By default, the operator sends to CC64 and up, the offset can be changed with the command cc:0, to set the offset to 0.

MIDI PITCHBEND

The MIDI PB operator ? takes 3 inputs('channel, 'lsb, 'msb).

It sends two different values between 0-127, where the value is calculated as a ratio of 36, over a maximum of 127. For example, ?008, is sending an MSB of 28, or (8/36)*127 and an LSB of 0 through the first midi channel.

MIDI BANK SELECT / PROGRAM CHANGE

This is a command (see below) rather than an operator and it combines the MIDI program change and bank select functions.

The syntax is pg:channel;msb;lsb;program. Channel is 0-15, msb/lsb/program are 0-127, but program will automatically be translated to 1-128 by the MIDI driver. program typically correspondes to a "patch" selection on a synth. Note that msb may also be identified as "bank" and lsb as "sub" in some applications (like Ableton Live).

msb and lsb can be left blank if you only want to send a simple program change. For example, pg:0;;;63 will set the synth to patch number 64 (without changing the bank)

UDP

The UDP operator ; locks each consecutive eastwardly ports. For example, ;hello, will send the string "hello", on bang, to the port 49160 on localhost. In commander, use udp:7777 to select the custom UDP port 7777, and ip:127.0.0.12 to change the target IP. UDP is not available in the browser version of Orca.

You can use the listener.js to test UDP messages. See it in action with udp.orca.

OSC

The OSC operator = locks each consecutive eastwardly ports. The first character is used for the path, the following characters are sent as integers using the base36 Table. In commander, use osc:7777 to select the custom OSC port 7777, and ip:127.0.0.12 to change the target IP. OSC is not available in the browser version of Orca.

For example, =1abc will send 10, 11 and 12 to /1, via the port 49162 on localhost; =a123 will send 1, 2 and 3, to the path /a. You can use the listener.js to test OSC messages. See it in action with osc.orca or try it with SonicPi.

Advanced Controls

Some of Orca's features can be controlled externally via UDP though port 49160, or via its own command-line interface. To activate the command-line prompt, press CmdOrCtrl+K. The prompt can also be used to inject patterns or change settings.

Project Mode

You can quickly inject orca files into the currently active file, by using the command-line prompt — Allowing you to navigate across multiple files like you would a project. Press CmdOrCtrl+L to load multiple orca files, then press CmdOrCtrl+B and type the name of a loaded .orca file to inject it.

Default Ports

UDP Input OSC Input UDP Output OSC Output
49160 None 49161 49162

Commands

All commands have a shorthand equivalent to their first two characters, for example, write can also be called using wr. You can see the full list of commands here.

  • play Plays program.
  • stop Stops program.
  • run Runs current frame.
  • bpm:140 Sets bpm speed to 140.
  • apm:160 Animates bpm speed to 160.
  • frame:0 Sets the frame value to 0.
  • skip:2 Adds 2, to the current frame value.
  • rewind:2 Removes 2, to the current frame value.
  • color:f00;0f0;00f Colorizes the interface.
  • find:aV Sends cursor to string aV.
  • select:3;4;5;6 Move cursor to position 3,4, and select size 5:6(optional).
  • inject:pattern;12;34 Inject the local file pattern.orca, at 12,34(optional).
  • write:H;12;34 Writes glyph H, at 12,34(optional).
  • time Prints the time, in minutes seconds, since 0f.
  • midi:1;2 Set Midi output device to #1, and input device to #2.
  • udp:1234;5678 Set UDP output port to 1234, and input port to 5678.
  • osc:1234 Set OSC output port to 1234.

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 Do 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

Transpose Table

The midi operator interprets any letter above the chromatic scale as a transpose value, for instance 3H, is equivalent to 4A.

0 1 2 3 4 5 6 7 8 9 A B
_ _ _ _ _ _ _ _ _ _ A0 B0
C D E F G H I J K L M N
C0 D0 E0 F0 G0 A0 B0 C1 D1 E1 F1 G1
O P Q R S T U V W X Y Z
A1 B1 C2 D2 E2 F2 G2 A2 B2 C3 D3 E3

Companion Applications

  • Pilot, a companion synth tool.
  • Aioi, a companion to send complex OSC messages.
  • Estra, a companion sampler tool.
  • Gull, a companion sampler, slicer and synth tool.
  • Sonic Pi, a livecoding environment.
  • Remora, a ESP32 Led controller firmware.

Links

Extras

  • This application supports the Ecosystem Theme.
  • Download and share your patches on PatchStorage.
  • Support this project through Patreon.
  • See the License file for license rights and limitations (MIT).
  • Pull Requests are welcome!
Issues
  • CC, Program Change & Pitch Bend should each be their own operator?

    CC, Program Change & Pitch Bend should each be their own operator?

    Just tried this new CC and would it not be better if each were their own operator? Maybe ( & ) could be used?

    If only to fit in with Orca's design flow, selecting the operator's function after the values seems backwards from regular Orca logic.

    Also, to do program change properly, there needs to be 3 values: bank, sub & pgm. Because of Orca's 36 limitation, some kind of pgm offset command (similar to the CC offset command) would also need to be implemented.

    Something like (abcd maybe? a = midi channel b = bank c = sub d = pgm Cmd+k: pgm:xx to select the starting pgm value

    And then with pitch bend, something like )ab maybe? a = midi channel b = pitch bend value

    help wanted 
    opened by nobodycarestrue 60
  • Insert mode selection problem and more.. windows 10

    Insert mode selection problem and more.. windows 10

    When selecting text and moving around with arrows .. text behaves not as expected..

    1. moving selection with up arrow .. = diagonal movement of selection upwards direction.
    2. moving selection with down arrow = diagonal movement of selection downwards direction
    3. moving selection to the right .. does not move selected text..
    help wanted 
    opened by sense-amr 28
  • MIDI clock stability and usability improvements

    MIDI clock stability and usability improvements

    Hi!

    I ran into an issue in the Electron version of Orca where MIDI clock messages were never processed when Orca started with no initial input MIDI device selected. After switching to the next MIDI input device with CmdOrCtrl+, (in my case selecting IAC Driver Bus 1) the MIDI message handler (Midi.receive) was not attached resulting in Orca not being notified of the clock messages received from this device.

    I resolved this problem by relying on the logic in MIDI.selectInput (which sets the new input device index and MIDI message handler) in MIDI.selectNextInput when switching between input devices. I also updated the wrapping logic so index -1 (no input device) is selected when the user reached the end of the array with available input devices (Midi.inputs).

    opened by njanssen 18
  • fix b_med color in pale theme

    fix b_med color in pale theme

    b_med had the same value as f_low, function letters had the same color as their background rects capture

    opened by MAKIO135 17
  • Clock is all messed up

    Clock is all messed up

    Just downloaded the latest version of Orca and the clock is all messed up. Can't change bpm and frames go crazy when using the cmd + >/cmd + <.

    opened by nobodycarestrue 15
  • Exit the program when using menus under raspbian

    Exit the program when using menus under raspbian

    hi,

    When i use the menus under raspbian, Orca closes suddenly. Same issue with Pilot.

    maybe this message could be the reason why.

    Fontconfig warning: "/etc/fonts/fonts.conf", line 100: unknown element "blank"
    ATTENTION: default value of option force_s3tc_enable overridden by environment.
    [email protected]:~/audio/Orca/desktop $ node --version
    v12.6.0
    [email protected]:~/audio/Orca/desktop $ npm --version
    6.9.0
    [email protected]:~/audio/Orca/desktop $ 
    
    
    help wanted 
    opened by nlebellier 15
  • possible Note Length fix?

    possible Note Length fix?

    in the io.midi.js file, the convertLength section should be replaced with something like:

      function convertLength (val, bpm) {
        // TODO get bpm from daw midi
        if (!bpm) {
          bpm = 120
        }
        return (60000 / bpm) * (val  / (bpm / 32) )
      }
    

    this brings note lengths closer to 1 = 1/16th and f = 16/16

    screen shot 2019-03-06 at 8 15 00 pm

    here is an example of 120 bpm displaying 1 - f (bottom to top) values when the code is replaced with the above.

    this also only works for 120 bpm (not sure how to get orca's current bpm to be read as the bpm in the io.midi.js).

    you can still notice that the lengths aren't perfect though and maybe needs some fine tuning, especially when notes overlap more problems arise.

    maybe headed in the right direction though. :-)

    opened by nobodycarestrue 15
  • Question : what is a frame ?

    Question : what is a frame ?

    Hi,

    I have questions about what is frame ? I understand frame like this : 4 frames per beat ? Is it this ?

    How would you translate it in French ? Cadre, Image ?

    Can we code into ternary ?

    What about time command ? no comprendo what is it for ? You see i'm a bit confused among all this concepts ... Cheers

    opened by nlebellier 14
  • OSC port to be constant

    OSC port to be constant

    Hi,

    The port used by Orca to send osc information is not constant. Isn't it ?

    image

    A bit boring if we want to communicate with others program we have to change the port into code. May i miss something ? :-)

    opened by nlebellier 13
  • WIP: got midi clock sending to external midi devices.

    WIP: got midi clock sending to external midi devices.

    based on issue #39 , I have changed to 24 ppq using the midi-clock package which gives finer timer resolution. I have added a sendClock on the io,midi.js and added a callback in terminal to tie it all together. I have tested it with external hardware and the clock messages seem to be syncd

    I think I may have slowed down the internal orca clock though. I am wondering if the microPosition should be divided by 6 instead of 24. Anyway, I will open this up to others to have a look at.

    opened by ryanramage 13
  • Bump path-parse from 1.0.6 to 1.0.7 in /desktop

    Bump path-parse from 1.0.6 to 1.0.7 in /desktop

    Bumps path-parse from 1.0.6 to 1.0.7.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Update node-osc dependency on listener.js

    Update node-osc dependency on listener.js

    I tried to run the listener and it was not working. This micro PR should fix it 😄

    opened by SantiCuinas 0
  • Bump normalize-url from 4.5.0 to 4.5.1 in /desktop

    Bump normalize-url from 4.5.0 to 4.5.1 in /desktop

    Bumps normalize-url from 4.5.0 to 4.5.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump lodash from 4.17.19 to 4.17.21 in /desktop

    Bump lodash from 4.17.19 to 4.17.21 in /desktop

    Bumps lodash from 4.17.19 to 4.17.21.

    Commits
    • f299b52 Bump to v4.17.21
    • c4847eb Improve performance of toNumber, trim and trimEnd on large input strings
    • 3469357 Prevent command injection through _.template's variable option
    • ded9bc6 Bump to v4.17.20.
    • 63150ef Documentation fixes.
    • 00f0f62 test.js: Remove trailing comma.
    • 846e434 Temporarily use a custom fork of lodash-cli.
    • 5d046f3 Re-enable Travis tests on 4.17 branch.
    • aa816b3 Remove /npm-package.
    • See full diff in compare view
    Maintainer changes

    This version was pushed to npm by bnjmnt4n, a new releaser for lodash since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump hosted-git-info from 2.8.8 to 2.8.9 in /desktop

    Bump hosted-git-info from 2.8.8 to 2.8.9 in /desktop

    Bumps hosted-git-info from 2.8.8 to 2.8.9.

    Changelog

    Sourced from hosted-git-info's changelog.

    2.8.9 (2021-04-07)

    Bug Fixes

    Commits
    Maintainer changes

    This version was pushed to npm by nlf, a new releaser for hosted-git-info since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump electron from 8.5.3 to 9.4.0 in /desktop

    Bump electron from 8.5.3 to 9.4.0 in /desktop

    Bumps electron from 8.5.3 to 9.4.0.

    Release notes

    Sourced from electron's releases.

    electron v9.4.0

    Release Notes for v9.4.0

    Fixes

    • Added Electron DLLs like libGLESv2.dll to symbol server. #26967 (Also in 10, 11, 12)
    • Fixed systemPreferences.effectiveAppearance returning systemPreferences.getAppLevelAppearance(). #26881 (Also in 10, 11, 12)
    • Fixed an issue where event.reply could sometimes not deliver a reply to an IPC message when cross-site iframes were present. #26928 (Also in 10, 11, 12)
    • Fixed an issue where some buttons were un-clickable in some BrowserViews with draggable regions enabled. #26745 (Also in 10, 11)
    • Fixed an issue whereby a corrupted async_hooks stack would crash the renderer when throwing some errors in the renderer process. #26748 (Also in 10, 11)
    • Fixed an occasional crash on Windows related to NativeViewHost::SetParentAccessible. #26950 (Also in 10, 11, 12)
    • Fixed usage of --disable-dev-shm-usage for apps using --no-sandbox on linux. #26806

    Other Changes

    • Backported the fix to CVE-2020-16024: Heap buffer overflow in UI. #26831
    • Security: backport fix for 1150649. #26897
    • Security: backported fix for 1137603. #26893
    • Security: backported fix for 1141350. #26895
    • Security: backported the fix to CVE-2020-16014: Use after free in PPAPI. #26856
    • Security: backported the fix to CVE-2020-16015: Insufficient data validation in WASM. #26859
    • Security: backported the fix to CVE-2020-16022: Insufficient policy enforcement in networking. #26861

    electron v9.3.5

    Release Notes for v9.3.5

    Fixes

    • Fixed <webview> render-process-gone event dispatch. #26576
    • Fixed LC_ALL environment variable getting changed in Electron. #26508 (Also in 10, 11)
    • Fixed debug.log files being created under working directory on windows. #26267 (Also in 10)
    • Fixed draggable regions stops working when devtools is opened on macOS. #26506 (Also in 10, 11)

    Other Changes

    • Backported the fix to CVE-2020-16017: Browser UAF when detaching a provisional frame. #26477
    • Fixed value of getSystemVersion() on Big Sur. #26430
    • Security: backported fix for 1143772. #26400
    • Security: backported fix for 1144489. #26397
    • Security: backported fix for chromium:1133527. #26412
    • Security: backported fix for chromium:1137608. #26409
    • Security: backported fix for chromium:1139398. #26406

    Unknown

    • Re-enable Rosetta on Apple Silicon devices. #26572 (Also in 7.3, 8, 10, 11)

    electron v9.3.4

    Release Notes for v9.3.4

    Fixes

    • Fixed an issue where Hover Text on macOS Catalina did not work without VoiceOver also being enabled. #26244 (Also in 10, 11)

    ... (truncated)

    Commits
    • f37c1ff Bump v9.4.0
    • 5c8e7e8 fix: restrict sendToFrame to same-process frames by default (#26928)
    • 36b1f8f fix: Upload all *.dll.pdb to symbol server (#26967)
    • e83bd9b fix: Avoid crashing in NativeViewHost::SetParentAccessible on Windows 10 (#26...
    • c2136b6 chore: cherry-pick 290fe9c6e245 from v8 (#26897)
    • a574285 chore: cherry-pick 3abc372c9c00 from chromium (#26895)
    • 559c008 chore: cherry-pick d8d64b7cd244 from chromium (#26893)
    • 2d41c02 chore: cherry-pick ecdec1fb0f42 from chromium (#26867)
    • 662810f chore: cherry-pick bbc6ab5bb49c from chromium (#26861)
    • 0065e3d fix: Propagate --disable-dev-shm-usage to child processes (#26806)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Increasing clock precision

    Increasing clock precision

    Testing the MIDI Clock with Reaper and Bitwig I've noticed that it has jitters and it's slightly offest. E.g. 110 bpm results in values jumping around 110.3/110.4 inside the DAWs. This is expected when setIntervalis used, even if the main clock ticks inside a WebWorker.

    Have you ever considered a solution where the clock ticks on the base of time measured with performance.now()? A setInterval callback might be set to run, let's say, every 5ms, but a time "integrator" could use performance time to decide when a tick should actually trigger.

    From my tests (with an infinite loop in my case) using performanceto decide when to send the MIDI clock pulses I can get a stable and reliable bpm in my DAWs.

    opened by giohappy 2
  • Bump ini from 1.3.5 to 1.3.7 in /desktop

    Bump ini from 1.3.5 to 1.3.7 in /desktop

    Bumps ini from 1.3.5 to 1.3.7.

    Commits
    • c74c8af 1.3.7
    • 024b8b5 update deps, add linting
    • 032fbaf Use Object.create(null) to avoid default object property hazards
    • 2da9039 1.3.6
    • cfea636 better git push script, before publish instead of after
    • 56d2805 do not allow invalid hazardous string as section name
    • See full diff in compare view
    Maintainer changes

    This version was pushed to npm by isaacs, a new releaser for ini since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Example on SourceHut

    Example on SourceHut "orca-examples" uses old definition of B

    misc/colors.orca uses Bounce rather than Subtract

    opened by onewheeltom 0
  • Dynamically loadable language libraries

    Dynamically loadable language libraries

    Adds ability to load alternative languages via lang command. ATM this is a PoC, comments and critique welcome and appreciated, especially on ways to better name and organize things, currently they be clunky.

    Default behavior of Orca is unchanged. Language implementations can be replaced on the fly with the lang command:

    • takes a ;-separated list of names
    • languages are loaded incrementally, each can (re)define all operators, or some, or even none at all
    • original implementation is called default
    • clr is a special name, removes all operator definitions

    Internally, the language is a dict of operator definitions, now there are several, placed in library directory where library.js originally was. For now, only the original (default) and base (not useful by itself but added as a basis for new definitions).

    New language definition foo can be added by defining library.foo, and then:

    • lang:foo to load foo operators on top of default (or currently loaded composite library)
    • lang:clr;foo to clear definitions and then load foo operators
    • lang:clr;default to restore default behavor (with current default clr is probably unnecessary unless there were different operators not defined in default that needed unloading)

    Changes:

    • Moved library.js to library/default.js
    • library changed from an object of operators to object of objects of operators, original library became library.default
    • Added lang command
    • Added this.library attribute to Orca class, for dynamic overloading
    • Current lang name is displayed for first 25 frames (frame counter resets when changing languages)
    • Updated README.md
    opened by unthingable 3
Owner
Hundredrabbits
We only use github to host the javascript versions of our applications, for the C and Assembly versions, see: https://git.sr.ht/~rabbits/
Hundredrabbits
ChucK Music Programming Language

ChucK Please note that the master branch has been renamed to main. The Internet Engineering Task Force (IETF) points out that "Master-slave is an oppr

Stanford CCRMA 501 Sep 25, 2021
A music programming language for musicians. :notes:

Installation | Docs | Changelog | Contributing composers chatting Alda is a text-based programming language for music composition. It allows you to co

Alda 4.7k Sep 25, 2021
Ear-bending noises and music

Cecilia5 - the audio processing toolbox Cecilia is an audio signal processing environment. Cecilia lets you create your own GUI (grapher, sliders, tog

Olivier Bélanger 129 Sep 21, 2021
Collaborative Programmable Music

888 888 _ooooooooo._ 888 ,o888PP""""PP88

Overtone 5.2k Sep 24, 2021
GTK 3 client for the Music Player Daemon - I'm looking for new maintainers!

Sonata is looking for new maintainers! I (@multani) don't use Sonata much anymore and as a consequence, I've been very slow to answer even to the few

Jonathan Ballet 123 Aug 28, 2021
The git repository of the advanced drum machine

Hydrogen drum machine Hydrogen is an advanced drum machine for GNU/Linux, Mac and Windows. It's main goal is to bring professional yet simple and intu

Hydrogen 702 Sep 15, 2021
Cross-platform music production software

LMMS A soft PR-Freeze is currently underway to prepare for refactoring (#5592). Please do not open non-essential PRs at this time. What is LMMS? LMMS

LMMS 5.3k Sep 15, 2021
Typographic Beat-Oriented Notation for music

tbon Typographic Beat-Oriented Notation for music Tbon aims to be the fastest way to enter pitches, rhythms, meter and dynamic levels from a computer

null 11 Jan 23, 2020
Audio Editor

Audacity is an easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems. Developed by a group o

Audacity 6.4k Sep 17, 2021
Streaming music player that finds free music for you

Desktop music player focused on streaming from free sources Links Official website Mastodon Twitter Support channel (Matrix): #nuclear:matrix.org Disc

null 6.8k Sep 17, 2021
A language for music notation

Lydown is a language and compiler for creating music scores, parts and snippets. The lydown code is compiled to lilypond code and then compiled to PDF

Sharon Rosner 21 Apr 8, 2021
Sound Processing Language for Web Audio

CoffeeCollider CoffeeCollider is a language for real time audio synthesis and algorithmic composition in HTML5. The concept of this project is designe

mohayonao 209 Aug 18, 2021
Fork of the original rubyripper from code.google.com/p/rubyripper + some bugs fixes

Historical note Introduction Secure rip method How to install MacOS Support FAQ Running all tests Historical note This is an unofficial fork of the or

null 91 Aug 11, 2021
Frescobaldi LilyPond Editor

README for Frescobaldi Homepage: http://www.frescobaldi.org/ Main author: Wilbert Berendsen Frescobaldi is a LilyPond sheet music text editor. It aims

Frescobaldi 501 Sep 21, 2021
A music composition library for Clojure and Clojurescript.

Leipzig A composition library for Clojure and Clojurescript by @ctford. Use Include it as a dependency in your project.clj, along with Overtone: [over

Chris Ford 428 Aug 15, 2021