Start a new topic

Orba hacking knowledge base

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


27 people like this idea

Anyone ever figure out how to add new preset files to iPhone? I have lots on my PC but I would like them on my iPhone too


Cool new sounds for Orba 1. I'm going to try to port some to Orba 2.

In my experience, quantization with Orba 1 does not work that well. It is working quite well for Orba 2. Quantization is still not that great compared to what we expect from modern software. It actually quantizes during recording, not playback so its not something you can turn on/off to hear the difference.

So, is there anything to do with v1? I was pissed with v2 annoucement and nothing else than a 10% discount for v1 owners interested in v2. I mean I bought an Orba after waiting quite a while  (months) because Quantization was discussed many times and they said it was high on the priority list. Was confident they would deliver. Instead, with too many feedback requesting that feature, they decided to secretly work on a v2 to offer that feature.


Let's face it, at this point in time they will prolly never add that feature to v1, they want to sell v2 instead. So how is this hack working, is it performing well enough to bother? My Orba is collecting dust for 10 months now and was wondering if I should maybe give it to someone else.

...hah, yeah, I posted reams of nonsense in here while we were trying to figure it out. It's not applicable to Orba 2, and any useful info has been distilled into Subsky's utilities which are documented separately.

omg, that's a long thread. I've read all 30 pages of the epic stuff in a hope to find something applicable to orba2, and just would like to say how I am impressed by your enthusiasm, guys.

Yes there are 3 file volumes on the device. You can reach me @ subskybox <at> gmail. Send me your email address. I'd like to keep this conversation going there. This forum is 30+ pages deep and I don't want to post much in here unless I do some more Orba 1 hacking in the future. I'd really like to kick off an Orba 2 Hacking Forum but first would like to discuss with you how that could look, what info to put in it and what basic info should be posted in the group header ( you can't edit the header after its created). I'll tell you more about the volumes in an email. I'm worried messing with those could brick the device. Artiphon is having enough issues trying to stabilize this thing and don't want to contribute to making it worse.

>Major new findings for Orba 2 via ESP32 Serial connection. I found the secret orba:// files and other interesting goodies.


...so you can browse a file structure on the Orba 2 this way...? How does that work...? Is it a change in 'console mode' or something else...?

Wow I think I just found the magic file for quantize values :) It's called PersistentState.xml. BTW temari is the new delorean.


<?xml version="1.0" encoding="UTF-8"?>
<TemariState saveVersion="21" curVolume="42" enableAudioEngineSound="1" songName=""
             songFileName="DefaultSavedSong.artisong" pBendUsrScale="48" autoPowerdownEnable="1"
             hapticTouchEnable="1" metronomeMode="1" usbMode="0" crcCachePerformed="1"
             presetDirWrCtr="41" songDirWriteCtr="1" samplePoolDirWrCtr="278" presetDirRdCtr=
             "1032" songDirRdCtr="195" samplePoolDirRdCtr="19049">
  <MIDILooperConfig part="Lead" loopBarEndTolerance="120" beatLengthTicks="480" notesPerBar="4"
                    quantMode="1" quantStartSnapTicks="120" quantBarEndSnapTicks="240"
                    allowRecordingSilenceStart="1" allowRecordingSilenceEnd="0" thinnerMode="1"
                    cc_error_limit="1000.0" pbend_error_limit="25000.0" ccA="1" ccB="74" ccC=
                    "75" thickenerMode="1" thickenerEmitPrd="20" thickenerMaxDt="5000"
                    noteStartWindow="240"/>
  <MIDILooperConfig part="Chords" loopBarEndTolerance="120" beatLengthTicks="480" notesPerBar=
                    "4" quantMode="1" quantStartSnapTicks="120" quantBarEndSnapTicks="240"
                    allowRecordingSilenceStart="1" allowRecordingSilenceEnd="0" thinnerMode="1"
                    cc_error_limit="1000.0" pbend_error_limit="25000.0" ccA="1" ccB="74" ccC=
                    "75" thickenerMode="1" thickenerEmitPrd="20" thickenerMaxDt="5000"
                    noteStartWindow="240"/>
  <MIDILooperConfig part="Bass" loopBarEndTolerance="120" beatLengthTicks="480" notesPerBar="4"
                    quantMode="1" quantStartSnapTicks="120" quantBarEndSnapTicks="240"
                    allowRecordingSilenceStart="1" allowRecordingSilenceEnd="0" thinnerMode="1"
                    cc_error_limit="1000.0" pbend_error_limit="25000.0" ccA="1" ccB="74" ccC=
                    "75" thickenerMode="1" thickenerEmitPrd="20" thickenerMaxDt="5000"
                    noteStartWindow="240"/>
  <MIDILooperConfig part="Drums" loopBarEndTolerance="120" beatLengthTicks="480" notesPerBar="4"
                    quantMode="2" quantStartSnapTicks="120" quantBarEndSnapTicks="240"
                    allowRecordingSilenceStart="1" allowRecordingSilenceEnd="0" thinnerMode="1"
                    cc_error_limit="1000.0" pbend_error_limit="25000.0" ccA="1" ccB="74" ccC=
                    "75" thickenerMode="1" thickenerEmitPrd="20" thickenerMaxDt="5000"
                    noteStartWindow="240"/>
  <MIDIRouterControllerConfig mpeMode="0" midiFixChannel="0" midiGlobalCcChannel="0"
                              pBendUsrScale="48"/>
  <SongSlots Slot_0="DefaultSavedSong.artisong" Slot_1="" Slot_2="" Slot_3="" Slot_4="" Slot_5=
             "" Slot_6="" Slot_7="" currentSlot="0"/>
  <LeadPresetSlots Slot_1="LabyrinthLead_f748f5a385764704b3ef352616edff7b.artipreset" Slot_2=""
                   Slot_3="" Slot_4="" Slot_5="" Slot_6="" Slot_7="" currentSlot="1"/>
  <ChordPresetSlots Slot_1="CrypticChords_4d897a8222f74c74b9be8160c8cd5e1b.artipreset" Slot_2=""
                    Slot_3="" Slot_4="" Slot_5="" Slot_6="" Slot_7="" currentSlot="1"/>
  <BassPresetSlots Slot_1="BloodBass_5229f64a833b4dd98fe349c38decb9fc.artipreset" Slot_2=""
                   Slot_3="" Slot_4="" Slot_5="" Slot_6="" Slot_7="" currentSlot="1"/>
  <DrumsPresetSlots Slot_1="HorrorDrums_08eafcfdafd7430890e9d961c5054948.artipreset" Slot_2=""
                    Slot_3="" Slot_4="" Slot_5="" Slot_6="" Slot_7="" currentSlot="1"/>
</TemariState>

 


2 people like this

Major new findings for Orba 2 via ESP32 Serial connection. I found the secret orba:// files and other interesting goodies.


2 people like this

I see you've found those "metrics" you found earlier this year

Its a custom protocol I think. I see this with certain apps. For example you can define something like reddit://web/r/orba and if you clicked that link, (if you OS knows the protocol) it would open your reddit App and go directly to the Orba group. I can push samples into the orba 2 and download them back out via the app for user sounds.. but the preset sound samples are already in the device when you get it without ever needing to connect to the app. Switching patches is fast because they are already stored on the device and the app just tells Orba which to select.


I'm glad you're getting on the Orba 2 train. It is a little frustrating but Artiphon just released a new version of the app that lets you save songs and new firmware. They have deserialized many of those Base64 strings so editing can be done so much easier now. Many of those things we found /wrt to Orba 1 are starting to make sense now that its becoming much more human readable. This thing has way more potential.. I think it also accepts those "Melodic Minor" things we explored in the past but I need more work to see what it actually accepts. Really looking forward to hacking with you again. Soon I will start up a Orba 2 hacking group once I have some of the basics down. 


2 people like this

Interesting rewrite of the XML format. It looks more readable now, comparing eg the old Ambeeant Seeker Entry.


Then...


<SeekerEntry seekerData="AQEAAAgAgRQAAwEBAQEAAAAAAAD/fwAAfwAAAA==" seekerUuid="64358c1f-2ef5-4fd0-b3fd-ad8c4f93b839"

uuid="b827a749931a42a78351cbaf6948f5b4"/>


Now...


 <SeekerEntry inputLength="Default" inMin="0" inMax="1" outMin="0" outMax="127"

seekerType="Controller" controller="Aftertouch" triggerSource="Default Note Source"

triggerRule="Source" metricSensor="Default Note Source" metricSelection="MPE Z"

maxRate="20"/>


3 people like this

If you Google 'ESP32 web server files'...might it be set up something like that...? I'm not sure where you found that reference but it looks like a URL. (Obvs this is more your field of expertise than mine.)

No idea...but now that they finally seem to be in stock at Gear4Music, I've just re-ordered one...

Login or Signup to post a comment