This is amazing. I love the sequencing showcased here so much.

2 Likes

We have moved the source code for the terminal version to SourceHut. We have updated the Hundred Rabbits Orca page to have a more complete description of the language, and I’ve moved the Orca Tutorial on the XXIIVV wiki. This will probably create a few broken links here and there, let me know if you find any. I hope you like the new documentation!

Have a nice day ^__^

16 Likes

First of all super nice work with the new and updated pages on Orca @neauoire.

I have found another feature that I really would love to see implemented in Orca. That would make it possible to use in cool ways with Max/MSP.

I was playing around with a leap motion controller yesterday. I wanted to make a visualization and display the hand gesture data in max/MSP. However prior experience with unsuccesful jitter visualizations made me think of alternative ways of displaying the hand visualization. So I use p5.js instead, and found that I could setup a websocket server via node and then use the jweb object in max to display the sketch.js file containing the visualizer and the hand gesture data. everything worked perfectly.

I had never worked with the jweb-object in Max before, and apparently it could both display websites and read files. So I thought: "Can I use it to display Orca inside Max!?

I started out with displaying the .exec of orca from the desktop version, however it seemed that I was unable to get udp and osc communication working. I don’t know why it doesnt work, but my guess is that the .exec files relies on other files to get the communication to work.

Then I tried porting the web version of orca to the jweb object, and it worked flawlessly however the input and output device for midi was set to “No input/output device”. In order to change these you would normally have to press “cmd/ctrl + . / ,”. However when pressing cmd/ctrl within max I cant interact with the jweb object.

Another issue is that I cant access Orca’s console from within jweb. This means that I will need to use the “$” operator to send commands to Orca, which is totally cool. However, I don’t recall that I would be able to use the console to change midi inputs and outputs. Is there a way to do that?

I would imagine that you would be able to write a command like “MIDIIN: [number]” & “MIDIOUT:[number]” the numbers would correspond to possible input/output devices. Do you think that would be possible to implement?

5 Likes

Oh! That is cool.

So cool in fact, that the first thing I did upon waking up, was to just on adding the missing commands for you.

So, web build v176 adds the ability to select IO for midi and udp while the app is running.

  • 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 .

If you want to unset a midi device, use midi:-1;0 that will set output device to none.

Let me know how it works! Does the jweb-object have any output we could utilize for this? Enjoy :slight_smile:

7 Likes

Thank you so much @neauoire you are the best! looking forward to play around with the new build :slight_smile:

I have to be honest, I don’t now much about the jweb-object, but I will definatly keep you postet if I find some cool outputs that could be used with orca :wink:

I upgraded to the new desktop version of orca, and the commands work fine, super awesome that you can change the midi drivers on the fly ;). However, in regard to the jweb-object project, it still doesn’t work as you can see.


The jweb-object is using the web version of orca, and the new commands, unfortunately, doesn’t seem to work there as of yet.
I also tried the new commands with the web version of orca, and the newly added commands don’t seem to work here either.

I really appreciate that you have added the commands, I think it is so cool! we just need to get these new cool stuff working in the web version as well :slight_smile:

It works for me, my guess is that Max sees no devices with id1:input and id2:output.

1 Like

Ok! yea I tried with the console open and now it seems to work with the web version :slight_smile:
The jweb version still doesnt work though. I just think that it has something to do with how jweb works, I will have to investigate that further i guess :smile:

Ok, so I have done some more digging. The jweb object in Max uses CEF (chromium Embedded Framework) in order to display rendered webpages. https://docs.cycling74.com/max7/vignettes/jwebcommunication

So CEF is as far as I can tell, kind of like an electron.js app in a way… https://en.wikipedia.org/wiki/Chromium_Embedded_Framework

“(…) is an open-source software framework for embedding a Chromium web browser within another application. This enables developers to add web browsing functionality to their application, as well as the ability to use HTML, CSS, and JavaScript to create the application’s user interface (or just portions of it).”

I think that for some reason the midi, udp, osc stuff just doesnt work with the CEF framework for some odd reason.

It probably spawns a process that cannot have access to your midi devices? Do you have access to the chrome inspector from the jweb object?

1 Like

image
Recreating the old BOUNCE operator that would count to and integer and back down.

Also if anyone wants to pop into my Discord I have a channel carved out for Orca. PM for an invite :slight_smile:

Anyone have some alternatives to recreate the old bounce?

Like this? You might wanna try the tables.orca example to see how the A/B/L/M works side-by-side.

C8..
0B4.
.4.X

Yea, that is exactly what I was thinking too. unfortunatly I don’t seem to be able to access the inspector inside of jweb. Waow that is super limiting. So disapointing when something you think is possible to do is not at all possible.

I think I have to abandone the idea of running orca inside of jweb for now. All of this is totally on the extremely limitid jweb functionality though. I will try write cycling74 and see if there is anyway of fixing this.

Oh well at least we got some cool new commands for Orca! :wink: I think I will continue working on the Leap Motion projekt instead for the time being.

question, sorry if its been asked already, but what would be the minimum acceptable screen resolution to use this. would it be usable on a small screen like this? s-l500

2 Likes

Here’s an example of orca-c on raspi with an adafruit display (320x240 TFT)

It’s pretty small, but doable?

6 Likes

Hi, new to ORCA here after being recommended by a norns user to check it out. Its pretty damn cool but the documentation is a bit all over the place. :slight_smile:

I was wondering if there was a way to send midi to two separate external devices over USB, i tried searching through this thread and i dont see anything. Im running the pi build on a 2.8" tft screen. I can send to one device or the other but not both.

You cannot send midi with the midi operator to two devices, you would need to use the UDP operator instead and make your own router.

Wouldn’t it be possible to have the 2 midi devices on 2 separate midi channels?

Or perhaps the second device would need to be a “Thru” from the first device?

It might be possible to use aconnect on linux to route the midi from one device thru to the other.

if you have a gui on the PI, maybe try the aconnect gui
sudo apt install aconnectgui

or patchage

I made this random looping sequencer similar to the Turing machine/marbles.
It lets you have control over the probability the sequence will change, possible scale/notes, possible octave ranges, velocity, note length and midi channel/note on off values.
Controlling the digitakt/tone with it here.
patch code in the video deception.
EDIT- I updated the code, it now has a central place to set number of steps and clock
Also added directions on how to use it in the video description.

20 Likes

in the video above im controlling the digitone and digitakt by only sending midi to the digitakt and using the digitakt’s midi channles to relay the midi to the digitone. doing it this way because im using overbridge (usb midi out of my computer to the digitakt) then midi jack out of the takt, into the tone. I’m sure the midi through method would work just the same.

3 Likes