Start a new topic

Orba hacking knowledge base

This thread is intended to gather the feedback of Orba tinkerers.


28 people like this idea

@BJG145 Brilliant! I love the idea of dual Orbas. I'm not sure but if you plug them both into USB, you might be able to control them both from the Orba Virtual Piano.


On another note, when I finish the Editor, I can get you more information on how to work with the Base64 strings. I bet in the future we could quantize the song data.. Progress has been pretty good the last two days.. The Chord Editor is pretty much done and just starting on the Scale editor coding today. I'm trying to establish the data format for the orba-scales.json file. I think it will look like this:


  

{
	"majorMode": {
	    "standard": [
	      {"Ionian": [0,0,0,0,0,0,0,0]},
	      {"Dorian": [0,0,0,0,0,0,0,0]},
	      {"Phrygian": [0,0,0,0,0,0,0,0]},
	      {"Lydian": [0,0,0,0,0,0,0,0]},
	      {"Mixolydian": [0,0,0,0,0,0,0,0]},
	      {"Aeolian": [0,0,0,0,0,0,0,0]},
	      {"Locrian": [0,0,0,0,0,0,0,0]}
	    ],
	    "custom": [
	      {"Hang Drum": [0,0,0,0,0,0,0,0]},
	      {"Minor Tezeta": [0,0,0,0,0,0,0,0]},
	      {"Abassel": [0,0,0,0,0,0,0,0]}
	    ]
	  }
	},
	"minorMode": {
	    "standard": [
	      {"Ionian": [0,0,0,0,0,0,0,0]},
	      {"Dorian": [0,0,0,0,0,0,0,0]},
	      {"Phrygian": [0,0,0,0,0,0,0,0]},
	      {"Lydian": [0,0,0,0,0,0,0,0]},
	      {"Mixolydian": [0,0,0,0,0,0,0,0]},
	      {"Aeolian": [0,0,0,0,0,0,0,0]},
	      {"Locrian": [0,0,0,0,0,0,0,0]}
	    ],
	    "custom": [
	      {"Hang Drum": [0,0,0,0,0,0,0,0]},
	      {"Minor Tezeta": [0,0,0,0,0,0,0,0]},
	      {"Abassel": [0,0,0,0,0,0,0,0]}
	    ]
	}
}

  


1 person likes this

I recently took a leap into the unknown and made random code changes all over one of the song files, which resulted in the Orba become completely unresponsive; couldn't even turn it on.


Fortunately the firmware update instructions brought it back to life. So when I saw a faulty Orba on eBay that wouldn't turn on the other day, I thought...aha, I'll give you £25 for that.


Just turned up, and quickly revived it. Gonna stick them together to create a dual-manual version with an extended key range...watch this space...;-)


1 person likes this

@Subskybox just a quick thought, but if/when you look at adding a set of alternative scale tunings, maybe the data for these could be stored in a separate file in a way that allows people to add their own.


 I'm interested in looking at Hang drum tunings myself...:-)



1 person likes this

...so, moving on to the "Note Fiddler"...;-)


...I was wondering what might be fun for people. I could imagine a drop-down with a whole bunch of different scales which would set the appropriate offsets, with a patch in the Lead folder rather than the Chords folder. 


At first I was wondering if loading a "Lead" preset with four voices on the same note was introducing a slight "phasing" effect, but I'm not sure. It's not a probleml just curious. I was also interested in your observation about the Bass section only playing one note from the chord, so that could also be a workaround if so. I wonder if there's any mileage in exploring those "uuid" strings that change between preset types to see what they can do.


Kudos for solving the chord problem and the scale problem in one go.



1 person likes this

...aha, you need to address the Orba on a different port, not just a different channel.


image



1 person likes this
@Subskybox although I haven't yet had time to download and test your new software, it's clear you've put lots of work into learning how to manipulate the Orba's synth engine. You also credit @AndreaMannoci, @QuadPlex and @BJG145 and I join you in thanking them for their work. It's remarkable that you've made such swift progress and I assume that was in part due to the prior work of these other forum members. I've looked at some of your code on github and I'm very happy to see it's clean and well written. I'm sure I'm not alone in wishing to thank you and the others from the bottom of my heart for your work.

1 person likes this

...correction, I've now realised that was simply a result of copying a preset from the Chord folder into the Lead folder, then loading it as a Lead preset. Still, I didn't realise you could do that.


1 person likes this

The new version is amazing! You're a genius. :-) You've finally cracked the chord system.


I'd be interested to understand how the character string relates to the increments, and how you figured that out.


Is there a way I could change the offset if I wanted to mess around with other parts of the XML ...? Not sure if that's an accessible value in the code somewhere, or if it's more complicated than that.


(Note that you'll get an error if the clipboard is empty when you first run the Daemon. Not a problem, just something to be aware of if you're looking at it for the first time.)


1 person likes this

...that's a free Windows DAW called Cakewalk by Bandlab.


https://www.bandlab.com/products/cakewalk?lang=en


Basically, if you disable mobile mode and enable multi-channel mode, you can address the Orba on four different MIDI ports which are all set to "Omni" (receive data on all channels).


Will check the website. 


1 person likes this

Hmm, I expect @Subskybox could probably knock up a "Scale Fiddler" along the lines of "Chord Fiddler"...:-)



1 person likes this

I made an absolutely disgusting hack (thread here, Windows only) to automatically tune the Orba based on what song you're listening to. It involves gluing a streaming service to a Firefox Extension, to a small server running on your computer, to AutoIt for clicking on the necessary buttons to change the key of the Orba.


Granted, if Antiphon provides an API to do this it would be a whole lot easier :)


1 person likes this

I was excited to take my findings to the try to crack the quantization problem...


But, um, ORBA2 ?!  https://artiphon.com/


1 person likes this

Never tried. There is no documentation about this, as far as I know.

I don't have root permits either ATM, so I haven't tried.


1 person likes this

(...also been trying to use esptool.py to recreate this part of the log which talks about 4MB Flash memory, but drawn a blank on that as well...)


20 Jun 2022 9:29:59pm - esptool.py v2.8-dev

20 Jun 2022 9:29:59pm - Serial port \\.\COM12

20 Jun 2022 9:29:59pm - Chip is ESP32D0WDQ5 (revision 1)

20 Jun 2022 9:29:59pm - Features: WiFi, BT, Single Core, VRef calibration in efuse, Coding 

20 Jun 2022 9:29:59pm - Crystal is 40MHz

20 Jun 2022 9:29:59pm - MAC: 8c:aa:b5:9b:4c:10

20 Jun 2022 9:29:59pm - Configuring flash size...

20 Jun 2022 9:29:59pm - Auto-detected Flash size: 4MB

I've finally managed to get esptool.py to work.


image


I was convinced that the ESP32 would only respond if was in programming mode, but I couldn't figure out how to get it into that state.


Then I remembered the log from the good old B console command, "Commencing BLE serial pass-through with ESP32 in programming mode." (Attached)


Some of these commands just seem to put the Orba to sleep; no lights, no DFU mode, nothing. But it occurred to me that they might quietly have gone into programming mode. So I tried running one ofg the standard esptool.py commands, retrieving the MAC address, immediately after "B" in the console...never got this (or any other esptool commands) to work before, and bingo. :-)


Whether it's actually useful or not is another matter, but it's a new channel of communication with the Orba, and it explains why some of the console commands put it in a trance.


 The attached console log is "1" for looper info followed by "B" for "Commencing BLE serial pass-through with ESP32 in programming mode." I was wondering whether any of the values reported by that command might relate to the missing quantisation values like "quantStartSnapTicks".


It finishes up by waiting for a download; in other words, it wants some kind of file transfer, which we might be able to do with esptool if we can knew what it was after.  

Login or Signup to post a comment