Start a new topic

Orba hacking knowledge base

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


27 people like this idea

Try playing the Orba on a flat surface.. it will emit less CC data and mostly Note data. Also this may help you to decode the values. If you can get me the serial data log and the corresponding eventData I might be able to figure it out. I've got a good understanding of MIDI messages and hex and binary data. 


1 person likes this

Thanks for that. I can get that to work on my PC but not my Mac.. I need to investigate more. The good news is that Signal is Open Source located at https://github.com/ryohey/signal


I created a Feature request and maybe it will get picked up. This would allow each channel to target a port. Building this sequencer is a massive amount of work and from my tests this is quite powerful! I could build a MIDI => SONG converter in the future.


image



1 person likes this

This seems a nice gadget too: the Odd Ball. There are differences. But it seems to work better out of the box, with a better app ... I wonder what Artiphon thinks of this.


1 person likes this

Here's a CSV file showing various logs from different simple lead sequences. I've been using a MIDI event log viewer called MidiOx to check the Orba is sending, and cross-referencing these against eventData. This logs hex; I've indicaed where I've lef that untranslated.


The Orba data has a 0 which I think may represent the Note On event, followed by MIDI note, attack velocity, and release velocity (I think). There's then a few values which are going to represent duration and timing data. Need to do some more tests to establish the pattern here.

csv
(2.64 KB)

1 person likes this

Sequences are:


1) Lowest note

2) Second note

3) Third note

4) Two notes (loud)

5) Two notes (soft loud)

6) Four notes at double speed. (The others were on the beat.)



1 person likes this

PS all notes were played as a quick tap


1 person likes this

@QuadPlex @BJG145


I've been messing with my Chord Fiddler and making some fun chord sets. I've found it frustrating that I haven't been able to make any chord I want and that the behaviors I've found can be a real challenge to work with. For example, the basic types of rules are:


  1. Move a voice in semitones
  2. Move a voice in Major thirds
  3. Move a voice in Major thirds + an Octave

I decided to revisit an idea that I knew was true when I first read it..


@QuadPlex said:

  • "On behalf of deciphering the structure of the chords, have you tried to interpret the string values using a Hex Editor? It might be that the String representation is misleading and the inherent info lies in the way that string is stored. Just food for thought."

I just couldn't figure how to interpret the string of characters... Until now! After further research today I have been able to figure out how to split the sting into byte sequences and now I know that each voice can be controlled in semitones!


I'm thinking the Chord Fiddler will need to be revamped. A better idea might be to add a feature to the Orba Virtual Piano that allows you to modify the chords graphically. Welcome to ideas..


1 person likes this

Thanks so much for all of your feedback. It's so cool to see this community you guys have created around making and sharing Orba presets. 


If it seems like we’ve been quiet here recently, it’s because we’ve been working behind the scenes on a couple of bigger things. One of these things is Orbasynth, our new gesture-mappable synth that allows for extensive customization of Orba sounds. You can check it out in this new thread 


https://artiphon.freshdesk.com/support/discussions/topics/44001019803


1 person likes this

@ Roger - Thank you!

I don't know what I'm doing and what the values stand for. But it seems to work (Windows) :-).

As you say in the help text, Drum Voices are currently not supported.

When saving a preset I entered a new name again, but that was not necessary.

Nice!


1 person likes this

Thanks, Alan, the base64 encode/decode is the easy part in LiveCode. You can see the image on the screenshot above that's from LiveCode doing a base64 decode of the XL attrubute. The problem is the uuid and coverimagehash. I cannot see how these are generated. I tried MD5 for the coverimagehash value with no luck. When I saved the XML back out with a new image base64 encoded the Orba tool just displays a generic Orba image. I actually don't think 120x120 is a requirement since a couple of custom presets on this forum have larger images but in LiveCode I do resize just to be on the safe side.


1 person likes this

You've given it a good go! The elusive QuantStartSnap and other settings are really hiding somewhere. I've seen things in the code like quantSlider or similar.. I'm going to hold out and assume that Artiphon will bring these to the App in the next few months.


I've decided to take a small hiatus and contemplate where to go from here. I'm revisiting my the list I posted a while back:


SUCCESSES (from this forum):

1. Modify Thumbnail Images

2. Create Custom Chords

3. Create Custom Scales

4. Create some clever Presets

5. Continued understanding of hardware/software

6. ... ??? I could make a script to quantize song files or wait a few months

7. ... ??? I would like to make a MIDI to SONG utility but I'm not sure it would be a huge benefit. I think the goal is to make Orba a great stand-alone synth.. To do this they need to add: quantization, key change on the device.. I'm thinking A + OCT + Vol +/- would be a great way to do this.


FUTURE HOPES:

1. Find Drum settings that can be tweaked realtime (I may add knobs or sliders for CC values to the Editor in the future.)

2. Find an interesting use for Spin gesture (Possibly could be used for key change)

3. Understand how gestures are bound to synth params and cc values

4. Have Orba record pitch effects

5. Examine Bezier and Song Base64 data (started on this but didn't get far)


1 person likes this

And that's not going to happen, I think (requires too much memory). It's already a lot that you can manipulate instruments now.

It would be nice if the export as wav or midi finally came back (that function was, albeit a bit clumsy, in the original app). That has been at the top of the todo list since 1860.


1 person likes this

These table might help:


Voice Message           Status Byte      Data Byte1          Data Byte2
-------------           -----------   -----------------   -----------------
Note off                      8x      Key number          Note Off velocity
Note on                       9x      Key number          Note on velocity
Polyphonic Key Pressure       Ax      Key number          Amount of pressure
Control Change                Bx      Controller number   Controller value
Program Change                Cx      Program number      None
Channel Pressure              Dx      Pressure value      None            
Pitch Bend                    Ex      MSB                 LSB


The first nibble of each byte is the type. So NoteOn in hex is 9x and NoteOff is 8x. Note On will be a decimal value of 144-159 because channel is the second nibble. NoteOff will be 128-143. This is the midi standard. To be more precise.. here is that section of the code from the Editor:

switch (command) {
        case 153: //DrumOn
        case 152: //BassOn
        case 159: //ChordOn
        case 144: //LeadOn

        case 137: //DrumOff
        case 136: //BassOff
        case 143: //ChordOff
        case 128: //LeadOff

 



1 person likes this

PS I tried inserting a line ending + whitespace via editing XML in the editor. That didn't work; after saving the file the insertion was gone.

I've just had a look at the csv file from the latest test.. I don't think MIDI is important here now that I see the data. Does the device emit midi when you play back a song.. Actually I think I already know the answer is yes. I have a guess at what the pattern is now that I see your csv. I just need to go test my theory...

Login or Signup to post a comment