Start a new topic

Orba 2 Hacking Knowledge Base


This forum is intended to share Orba 2 hacking tips amongst the Orba 2 community. NOTE: Please post facts that are well understood & useful. If you have theories to discuss, please start another forum and link to it here.

2 people like this idea

...this is only my theory, I don't really know what's going on, but there ought to be a way to recover an Orba 2 from this state that we haven't been told about, and I just tried asking Artiphon again. Re: song data, the only aims were general curiosity in trying to unpick how the Orba represents songs, and seeing whether there might be any mileage in putting ChatGPT on the case. I was encouraged by the possibilities of that, as there's no way I'd ever have been able to translate MIDI files otherwise, and I'm interested in trying it out on other aspects of the Orba 2 but wary of breaking it again.

I've actually only just looked at a stem. I tried some new preset called "KimbraReplay" and realised you can play drum patterns by holding down keys; pretty neat. I'd like to understand how those patterns are built. I haven't looked at the existing threads closely...has there been any progress in figuring that out, and is the current info on it mainly in this thread...?

...oh, OK, I've just looked at the samples for that song and realised that the sample .wav is the entire drum loop. There's no "pattern data".

"It would be really helpful to be able to create drums patterns  with a step editor. Do you think we know enough to create basic patterns as xml that can be  injected into song presets?"

I haven't looked at loopData for drum patterns. I'll check it out with the safety net of Orba 1 initially. Apart from the quantisation bug they should be transferable.

A little help from devs would be great for this, for sure.

We could achieve much more if it was not that scary to brick O2 irreversibly, and there was a known way to make a full reset :(

At leas at some point  I felt that I should stick to just using custom samples, and never tried messing with parameters outside of the known territory - I mean before any changes to parameters  I always spent time parsing all existing factory presets xml's  to check possible known "safe"  values, which are already used by stock presets. Does not guarantee anything, as there could be wrong combinations of parameters which are in "safe" boundaries of their own, but increases expected life span of O2 - mine is still alive at least.

Looks like  I should have highlighted that in a more explicit way.  (While I do not feel like it would stop David from exploration)


@Ignis32 - When I ordered another Orba for myself I promised that I would stick to using known and proven presets on it - but I confess I am already thinking about ideas for new presets which I will have to curb, but oh,  the temptation! There certainly were things I wanted to achieve and may have to give up on.

Generally, I have followed that principle of looking to see what has already worked elsewhere, but I'm not good at proofreading and checking my work so the problem is likely to be simple, stupid mistakes . Never attribute to genius what can more easily be explained by stupidity!

@BLG145 - don't trouble too much on the drum thing - I think I should create a simple song with just a one or two bar pattern and see what that looks like. Songs have an inherent problem if you want to mess with the voices - the crc or hash values are included the artisong file but the correct values may not be straightforward for people to access, we probably can, but .......)

@BLG145 - actually I dismissed any interest in stems - I listened to some of the samples and realised what they were. I described them previously as the musical equivalent of collage, but using a pre-defined set of pictures (samples). Perhaps painting by numbers would also be a suitable metaphor. I find the concept of them verges on the insulting.

Here's a quick demo of an Orba drum loop converted from a MIDI file.

The same process I've been describing in the ChatGPT topics works for the drum loopData entries too. I can recap the process if anyone wants to try. I'd probbaly recommend testing on Orba 1 before copying to Orba 2.

"Songs have an inherent problem if you want to mess with the voices - the crc or hash values are included the artisong file but the correct values may not be straightforward for people to access"

The way song data is represented in the XML is very similar to MIDI. The main difference is that instead of having a sequence of note-on/note-off messages, the Orba uses note duration. In terms of voices, the loopData entry simply plays the currently loaded voice; if you load a piano preset, the loopData for Lead will play as a piano. The above demo was based on the "Bedroom" preset where the MIDI note values for the eight pads (and corresponding sounds) are:

36 - Kick

38 - Snare

42 - Closed Hat

49 - Open Hat

43 - Perc1

45 - Perc2

51 - Perc3

70 - Perc4

I expect the eight drum pads always have the same MIDI number assignments, though I haven't checked.

In a drum preset kitPatch each entry has "note="44" midiNote="39"" - whether the Orba pays any attention to it I don't know, I presume midi output does.  I have noticed the same midiNote is sometimes in more than one entry.

In an artisong part of the lead setting, for example we have "    <PresetRef name="Madaharp" fileName="Madaharp_8aee6a9869530ed2cc60c5ac045c368f.artipreset"


The fileHash is the 10 base value of the crc number the orba gives it when it is stored on the Orba - that is not easily available to non hacker types.

There is also this "    <LoopData writeIndex="0" recordStartTime="0" recordStopTime="0" lastEventTime="0" nBars="0"


In this case the eventDataCrc for all entries is "FFFFFFFF",  although the song is empty of events - don't know whether it's used or required in any way. (Perhaps it means keep on playing until the user eventually stops the play/recording with A + key5?)

But at this point in time I've not studied it enough.

1 person likes this

So I did a quick test creating a song with drums - trying to play with the metronome a bit and then making sure I'd hit all the keys. Then I added a scale up and down on a lead preset. (Not at all musical!)

The event data is in base64(?) - much as we see on the Orba1 -  which is not that much use to me, but if you  want me to post the song to see what you can learn from it ask and I will post it for you.

...I can decode note data, understand that bit fairly well, but I haven't looked at expression data. I use a tailored preset on the Orba 1 to filter that out; swamps the note data otherwise. I haven't dared experiment with edited presets on Orba 2 though. 

An oddball thought here but.......

I was looking at a user manual for a Korg product ( nanoKey Studio) and kept seeing things that reminded me of the Orba. The touchpad uses x and y axis for pitchbend and effects (which seem to be like the Orbas gestures) -  perhaps the data it sends gets sent to the same midi destinations and perhaps a similar format. 

I also wondered whether the eight pads for percussion sounds were laid out in a similar (or the same) set of midi outputs most of the time , but the Orba presets allows varying that in the parameters for things like ethnic drums etc.. Perhaps there is an industry standard used by most brands - I don't know. 

I also saw a reference to what looks like bezier curves.

Perhaps there is technical information to be found that could inform some of the things people have have been trying to understand for the Orbas?

@BJG145 - I can't recall when or where I found this file but I think it may hold some of the information you (and some others) may have been looking for.


This is a log showing the reset procedure for Orba 1. Orba 2 works differently however. Tech support recently replied to confirm there is no way to access the data partition on a looping Orba 2.

Ah - thanks for that. Since I don't have an Orba 1 that makes me even more mystified about how I got it! Shame it wasn't what I thought it might have been - may have been useful. Oh, well.

Login or Signup to post a comment