Start a new topic

Orba 2 Hacking Knowledge Base

image

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

It has occurred to me that perhaps the problem with these attempts to fix it might fail because Windows will not deal with partitions with whatever file system they are in. (As I'm sure you're aware people often complain they can't see data on USB drives which have been formatted on other devices.) That begs the question whether it might be possible to copy the needed files to the right place using Linux (or BSD). I don't have anything running Linux and I'm not sure I've got a machine I could run it on. Could try running a USB live version and see if the partitions are visible at least. (I suspect the Update partition may be created temporarily and disappears when the Orba is not in an Update mode though.)

Basically, from a looping state, two partitions are accessible to Windows. (You can get to the main boot partition by letting the loop time out, and you can get to the fallback boot partition by  wiping the main boot partition.)

There's also a third one that's also accessible to Windows using a hack, but not while it's looping...and that's the one where the problem lies. That's the one with the definition of the rogue failed preset that causes it to reset. That's my theory. I no longer have mine, I sent it back to Gear4Music for (unsuccessful) repair, but I don't think running the battery down will help because as soon as it comes back online again it'll still be tryintg to load the same dodgy preset from solid state memory in the inaccessible third partition.


It's had it.

Stubbornly I'm not convinced the problem lies in the partition (if that's what it is) where the user presets etc. are stored. A bad preset either doesn't show up on the Orba or if it does, only causes a problem when one attempts to play it. But it's almost impossible to tell where the problem is. I wonder whether my experiments have caused the system to write or otherwise  corrupt data elsewhere. But I accept that my Orba has probably had it and I don't really hold hope to save it. I still have one or two ideas to try but with no good expectations.


Having got hold of a B stock Orba now - I've been alerted to an important issue - just as Gear4Music couldn't repair your Orba, retailers aren't in a position to reset a returned product - they should be able to do this, Artiphon should be able to provide retailers the means to do it (and have something similar to help end users with). There's a customer privacy issue here, my new acquisition came with presets the previous owner had made sampling his own voice. They shouldn't be there - they weren't, but they could have had, offensive content. And that's another important issue - especially for something that might be bought for the use of young people.


Having worked in a related retailer area I'd be really unhappy dealing with a company that potentially puts me in that sort of problem. Apart from the fact that I came to feel that any product that got returned wasn't worth having sold in the first place. 


The "new" Orba seems to be fine, so that's a positive at least and it will be treated more gently!

"A bad preset either doesn't show up on the Orba or if it does, only causes a problem when one attempts to play it."

It causes a problem when the Orba tries to load it from flash storage into RAM; 'initialise' it.

On Orba 1, you can load a preset, turn it off, turn it on, it loads the preset from flash into RAM, and you can play. If you create a faulty preset by messing with the XML, it will crash and reset when you load it, and start looping, because it's trying to load the same faulty preset and crashes the same way each time. You can fix it by booting from DFU mode and doing a factory restore that resets the presets.

I broke my Orba 2 by opening the partition where the presets are stored and direcly editing the XML of one of them. This puts it into the same kind of loop where it crashes, boots, tries to load the preset into RAM, repeat. But now the storage area where the presets are held can't be restored by any means we've discovered. 

I don't know how you crashed yours, but it presumably started when you loaded a preset that you'd edited.

It's hard to believe that there's no way for Artiphon to recover the device from this state, but they haven't said what it is. If you give up on it entirely it would be interesting to see the PCB.

(I reckon the only way to recover it would be an alternative bootloader that made the data partition accessible without attempting to load a preset. We only have the "run" version of the firmware; we don't have a "diagnostics" version.)

For general reference, the way to access the data partition is to establish a serial connection at 115200 to the Orba using the port shown under the COM ports in Windows device manager and use the command "m". This is what it looks like.




Various other commands available. This is "l".



Proceed with caution with a working Orba. I wasn't able to open a serial connection to my looping one. I experimented with these settings on Orba 1 but I don't dare on Orba 2.

@BJG145 - Ah, your first comment there makes a lot of sense to me. I'm not entirely sure how I bricked the Orba - I had two breakdowns which I recovered from. (Probably how you just described though.) After the second I couldn't do a firmware update that was being pushed on us, but I could get by, by opting not to try and do it again each time I used the Orba connected. I always deleted the offending preset if I could even if I wasn't sure it was guilty.

The final breakdown left it bricked - possibly, in trying to fix it I did the wrong things and made it worse.

In a way, this brings us back to the factory reset issue - I wouldn't have minded wiping my data partition, that was backed up, and in any case I wouldn't have wanted to restore all the presets I had on it anyway. That bit of housekeeping was due anyway. Wiping that partition seems to be a basic facility we should have available. I can't imagine Artiphon don't have a method for doing that themselves - they must have needed it in development.


As an aside, the new Orba I now have would update to 1_1_13 (which panicked me a bit!), but was fine with 1_1_17 and all seems to be well.


I did pay some attention to your posts about song data although I couldn't quite see what your end aims were. What has struck me, as someone who is really bad at dealing with drums (of any sort), 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 have only used songs as an easy way of switching keys so far.) That would be useful for me, but could be useful for others who simply want beats looping that they can play over to their hearts content. I don't see Artiphon's approach to songs as particularly viable for many. (And don't get me started on stems!)

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


https://youtu.be/eHRFqSCAonI


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.

Login or Signup to post a comment