Start a new topic

Orba hacking knowledge base

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


27 people like this idea

Just had an epiphany.. What if you change the weird dual-note voice to be a semitone up (not sure this is possible.. I think it starts at 2 semitones.. Maybe using Pitch settings at 50% in the App). Once you have that, combine with your whole tone scale. This should give 16 consecutive semitones without even tilting?!


2 people like this

To be clear: a few presets every now and then are not to be considered a serious update ...


2 people like this

Just a quick note for other users. @Subskybox has made this super easy to use now.



 


Basically you just run a program (the "daemon") that handles the background processing, then open a couple of web pages. One lets you adjust the chords, and the other gives a graphical display of the chords the Orba is currently sending out.

 


(Note that you can also adjust the Orba for higher and lower notes beyond this visible range.)


The Orba can be in major or minor mode as usual. The pads in the left column affect major mode, and the ones on the right affect minor mode.


You can adjust any of the four notes for any of the eight pads up or down by semtones, then choose "Copy to clipboard" followed by "Deploy". At this point you can upload an Orba preset called "Disentangle" which is automatically made available in the Orba app, to program the Orba with the new chords.


If you refresh the Chord Fiddler HTML page, it resets it to the default values.


I'd definitely encourage people to try this out and post if you have any questions.

 

 

 

 

 

 

 

 

 

 

 


2 people like this

The new tools and discoveries by @Subskybox have inspired me to go digging around with other random changes to the code to see what else we might find. Eg a set of random changes within the "Uuid" strings has turned up a patch where "Lead" delivers the same set of chords as "Chord", but with the Lead voice, allowing you to switch between them live.


https://soundcloud.com/qchord/lead-chords/s-tWsQ5OUIACR?utm_source=clipboard&utm_medium=text&utm_campaign=social_sharing



2 people like this

Here's the 16 semitones that I was imagining. NOTE: Orba App must have Pitch Bend Scaling at 25%.


2 people like this

>I also had another realization. If I change all the offsets to zeros (i.e. [0,0,0,0]), that will essentially play the same note four times. This could be used to set the scale of a regular sound like Bass or Lead. I tried this by dumping a Chord sound into the Bass Preset folder and it only plays one of the voices from the chords. Once I have the Fiddler updated, it could also work for regular voice scales! AND it would be able to be transposed not like the "percussion" hack that has been shared. I'll hopefully have some updates in the next week or two.

 

I've only just caught up with this idea. So...yes, this gives us a way to put something like a transposable Dorian scale on the "Lead" button. :-)

 

Here's an example:

 

https://soundcloud.com/qchord/dorian-1/s-iX1COLjfZND?utm_source=clipboard&utm_medium=text&utm_campaign=social_sharing


2 people like this

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

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


2 people like this

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

Many thanks to everyone for all the tips and very cool presets!!!

Especially like Andrea's note re. diatonic tuning any preset. Very fun!



2 people like this

@BJG145


I like your ideas for the "Note Fiddler".. At this point I'm going to stop any development on the Chord Fiddler and start working on bringing this functionality into Orba Virtual Piano. If you noticed, the Virtual Piano can sense what mode you're in (Drum, Bass, Chord, Lead) so I imagine I'll have a section underneath that is the editor portion for that mode. I may never get to drums, especially now that Orba 2 is coming. Bass is monophonic so editing the scale is straightforward. I like the Dorian scale you shared above (this confirms it can be done). There are a few places where the mode can be set in the .orbapreset file and messing with those may correct the phasing effect you describe. As for the Lead mode (which is polyphonic), I can see why it accepts all 4 voices even if they are the same. Maybe the remaining characters in the ModifierData string control turning the voices on/off. Who knows. I can quite easily make a version of this that supports the whole string. More on this later. I'd love your help trying to see what they control. There are obvious indexes where there are values that seem deliberate. I think one might control the scale mode. That's a theory I have from messing with these values with the old Fiddler, but the new version will correctly target the values. 


I just created a new Topic: Orba Utilities to continue this conversation.


2 people like this
Thanks for this, @BJG145 . I've been scurrying around downloading and reading the relevant Espressif datasheets. So ESP32-SOLO-1 is a single core version of the very powerful Wi-Fi and Bluetooth-equipped ESP32 module. I assume there's no external memory on this board, so the ESP32 module's internal memory is used. This comprises, according to the ESP32-SOLO-1 datasheet: • 448 KB of ROM for booting and core functions. • 520 KB of on-chip SRAM for data and instructions. • 8 KB of SRAM in RTC, which is called RTC FAST Memory and can be used for data storage; it is accessed by the main CPU during RTC Boot from the Deep-sleep mode. • 8 KB of SRAM in RTC, which is called RTC SLOW Memory and can be accessed by the co-processor during the Deep-sleep mode. • 1 Kbit of eFuse: 256 bits are used for the system (MAC address and chip configuration) and the remaining 768 bits are reserved for customer applications, including flash-encryption and chip-ID. I think people who were hoping to use sampled sounds in the Orba 1 can now see why this was not possible.

2 people like this

I was just thinking, @Roger made a synth preset editor...

image

...and Artiphon created Orbasynth...




...which work for lead/bass/chord sounds. Has anyone considered making an editor for the drum sounds, which have a different set of parameters...?


2 people like this

Just received my Orba 2 this afternoon! I will see if the tools work with Orba 2 in the next week or so. We should probably start an Orba 2 Hacking forum.


2 people like this

@BJG145 Yes I have been considering allowing users to choose the starting.orbapreset file and the destination.orbapreset file. I'm not sure what's possible within a browser. Those will definitely be things I will consider. I will share prototype design issues before I code anything.. Likely a few weeks out.


Love the Hang Drum idea.. I wanted one of those years ago was never able to find one for a reasonable price.


2 people like this
Login or Signup to post a comment