Start a new topic

Custom Drum Presets

Hi Artiphon,


Any updates on whether/when there will be added functionality to the Orba 2 app allowing for user-customizable drum presets? I realize there are only 2gb of space available, but would love even just 2-4 customizable preset slots on the desktop app where I could assign all 9 keys. I primarily use my Orba 2 for on-the-go songwriting, and having a drum kit that matches the sound(s) I'm going for would be huge.


I realize that in order for the functionality to fully transfer on iOS, the user would probably need to send the drum sample files with unmodified file names to the associated preset folder on their phone. I've already done this with custom bass presets from OrbaSynth and I don't think it would be a problem for anyone with mid-level technical prowess. I think this feature would exponentially boost the value of the Orba 2 for anyone interested in quick, on-the-go production.


I'm about to write another request/problem I'm having with OrbaSynth, which is otherwise incredibly useful from a production standpoint. Planning on making a youtube review video as well. Thanks for keeping the updates coming, super excited for what's to come!



2 people like this idea

@Ignis32


I wanted to address your findings first in green:


0) New preset structure should be put into personal folder, not public.

It will require preset, sample pool and cover image. Correct. Avoid modifying the Public folders. The App will read the same folder structure from the personal structure (including Images and Drum)

(C:\Users\{username}\Documents\Artiphon\Common)

1) Developing presets should happen somewhere else, as "delete preset" deletes it from local orba files, and you  loose all your work. Correct. I never delete my files in the personal folders while developing, I just replace them and on the Orba.

2) Orba 2 seems to use 48 Khz  32bit float wav files.  Stereo probably is not supported, looks like I forgot to convert my wav files to mono, and therefore got white noise instead of the actual sample. Stereo samples are supported. I've tried them and they work. However, I never validated that it was actually playing them in stereo via the headphones. It may have been playing the sample in mono. Most of the presets I've made, I've merged to mono to keep the file sizes small. 

3) Using Taetro drums as a starting point/template was a good idea, 

 However, my guess is that Taetro drums where originally in 44.1khz, because pitch correction coefficient  pitch="-1.08844"  seems to match pitch difference between 44.1 and 48 of 1.08843537414966  and is probably used for compensation.

Probably the one who is doing it should keep an eye on this pitch correction and fix it (to -1 I guess..) if using 48khz samples. I haven't messed with 44KHz vs. 48KHz yet. My guess is it would accept them both. I know that -1 means "play the pitch as is and do not tune" Pitch is used for creating Bass, Chord, Lead presets where Orba must know the pitch of the sample to properly map to the notes for the selected scale and octave.

4) using UUID in filenames is mandatory, both for preset and wav file names. At least without following the convention preset does not appear in the preset list, and this uuids are used in app.properties separately. Correct. This took me too long to figure out and the app was adding additional UUIDs and messing up the app.properties file. I have a script that will calculate the MD5 UUID for an entire folder of wavs and append them. The good news is they don't need to be correct you can just make up any unique MD5 hash value.


2 people like this

@Ignis32


>>Yep. Seems  like my bad version of custom samples are still on the orba

There is a way to add/delete files stored on the Orba. I've kept this secret low key because I'm worried that people would access it and mess up the factory sounds or even delete them. Recently, I have tracked down where the app downloads the samples from so now there is a way to recover the samples if they are accidentally removed from the device. But this still requires a little bit of tech savvy that not everyone has. I'm going to start an Orba 2 Hacking Knowledge Base soon with a bunch of this information. Stay Tuned.


2 people like this

On the topic of 44kHz vs. 48kHz. I think you are right and that Orba wants 48kHz by default. I just noticed that the PanDrum Lead Preset I made seems approximately a semitone out of true pitch. I never really paid attention to the samples since I found them online and just accepted them as is. I wonder if the difference between 44kHz and 48kHz would be about a semitone.  


1 person likes this

The difference is about 1.5 semitones. There's a legendary performance of Valen Halen's "Jump" where the keyboard backing track was played at 48KHz instead of 44KHz. 


https://youtu.be/LCIyeXn1sKQ?t=169



1 person likes this

Just to notice - 48000 / 41000 is 1.08843537414966,  that is too similar to  the pitch coefficient from Taetro preset to be a coincidence . 

--- 

Regarding UUID generation - yep, I've taken the same route, using GIT BASH console for automatic UUID generation as below, otherwise it is too time consuming:


Removing .wav extension:


for i in `ls` ; do mv $i `echo $i | sed s/.wav//g`; done

Checking how new filenames will look like:

for i in `ls` ; do echo $i $i\_`echo $i | md5sum | awk '{print $1}'`.wav; done

Actual renaming:

for i in `ls` ; do mv $i $i\_`echo $i | md5sum | awk '{print $1}'`.wav; done


---

Regarding stereo - looks like I did not guess, and your information confirms that stereo is not a root cause.  At this point I was able to push mono mixed new samples to Orba, and  sounds that I get from orba  are still  a white noise with a distorted hang samples heard. Need to experiment more,  to understand what's wrong with these samples,  probably there is some encoding requirement that I still miss.

---

As for samples removal - 


 I've tried using User sample pool instead, as that's the place where actual user-recorded samples are placed, but it did not change anything in terms of samples removal, still broken. But I think it might be a better place than ArtiphonExt1 that I tried to use initially   ArtiphonBasic.

Could understand it earlier, if I'd noticed you used User pool  in your TechnoKit.


I've created a ticket for Artiphon support, as if debug logs do not lie - even users who use stock in-app recorded samples preset generation  -  are affected.


 ---


Most obscure question for now  - if it is even possible to choose a sample depending on velocity, it is quite important for hang/handpan, as  sound harmonics  differ quite seriously. 

I see something some place in XML for that (velocityThresholds) , but could not find any preset that actually uses it, so it might be a placeholder that does not have any implementation behind yet.


 

 

 

 

I'll have more on this soon but MarimbaLead has velocity..

Thank you, will look into this marimbalead preset later, once I'll deal with a more simple version.

---


I have no idea why Audacity deceived me, but seems that the file that it produced was not PCM wav file, but something else.

Conversion via Switch Audio Converter to pcm 32 bit  produced files without white noise

Basically I have to deal only with xml stuff for the initial playable version.


----


Just a small quality of life tip to share - for editing multiple values of XML in once.

Notepad++ allows using regexp replacements, and that allows to do bulk parameter modification:


Replacing  decayRelease=\"\d+\"  will set decayRelease="100" everywhere as below, regardless of the initial value.  (in regular expression mode).  Using this a lot during my experiments, so I hope you might benefit from it as well.


image


Some taught about pan/hang drums.


Opposite to other instruments,  they  have longer sustain if your taps and bumps are short, and produce shorter and muted sound if you hold your hand.


I believe emulating this behavior  is vital for the good tactile representation of pan/hang on orba.


 Looks like I was able to achieve something like that with xml below:


  <DrumPatch index="1" drumMode="0" ampVelocity="255" snapLevel="48" snapColor="1"

                 bendDepth="40" bendTime="142" modulationRatio="12" modulationDetune="32"

                 modulationDepth="69" modulationVelocityDepth="255" decayRelease="179"

                 decayHold="66" ensnare="0" grit="255" flamCount="0" flamRate="0"

                 fuzz="2" level="0" pan="0" tailLevel="173" tailDelay="0" tailDecay="195"

                 fx="0" note="31" midiNote="36" priority="0"/> 


I am not still sure about how it works  and what all the params mean, (i've borrowed most of the params from Ohm preset patch  index 1, as one of the notes there  works similar way to the desired one), but most probably decayRelease,  decayHold and tailDecay are involved, and  "release" means releasing the finger, and hold - holding the finger.

@Ignis32. I also use regex find/replace but I use SublimeText to do so. Very helpful when developing Presets with lots of samples as well! Eventually I think I'll create some kind of script to allow a user to create a sample pool and have it generate a base .artipreset file. There is no nice way to do this without a full-blown GUI solution but this would be similar to LogicPro or other DAWs and I don't think Artiphon has enough capacity to design something like that.


Nice findings on the DrumPatch attributes.. I wish they would publish some documentation on those. I have a feeling that they will need to create Orbasynth 2 to even make a basic version.

Okay, here is my attempt into hang drum preset, sorry for questionable skills in advance:

https://www.youtube.com/shorts/mfmmSMcB_o8


I guess it lacks velocity-defined samples as a next step,  also probably I should try finding some other samples to try out other scales ( I do not believe that transposing samples to get other scales would be any good due to the wrong harmonics) and tinker with other xml values.


But I really love working  muting-by-holding-a-finger, first notes in video are played that way. Could not find any real musical value in that yet, but it feels  pretty right.


Imitating hang drum on orba was my first dream when I saw it, and here we are.

Thank you guys for the information you provided here, it helped a lot.


1 person likes this

Cool, I like the finger-muting.

@ignis32 I really like what you've done there!! If you don't mind I'm goin to add your settings to the PanDrum preset I'm working on too. I still haven't figured out the pitch math for correcting 44kHz vs. 48kHz. I thought it would be as easy as multiplying all my pitches by (48000/44100) but it didn't seem to work. I may just try to convert my .wav files from 44kHz to 48kHz and hope the loss is not too noticeable.

I converted my samples to 48kHz and problem solved. Note to Self: Much easier to work with 48kHz and avoid pitch math since pitch/note tables are published all over the internet. Sharing my beta Preset.

image


Steps to Install:

  1. Unzip and drag the ‘Common’ folder into /Users/<username>/Documents/Artiphon and it will ask to merge the contents (Hold <Option> on Mac while doing this and it should give the option to Merge). You would do this with no Orba attached and the app closed.
  2. Start the app and let it scan (or force a scan from the Settings). Verify that the entries were correctly logged in the app.properties file.
  3. Restart the Orba 2 app and turn Orba off/on for good measure.
  4. Select the PanDrum Preset Lead and hopefully it allows ’Send to Orba’. Press it and allow 4-5 minutes.
  5. Check the Preset location icons and hopefully it shows available in App and Orba..
  6. Restart everything, Hopefully it now allows ‘Play’
If these instructions do not work you will need to place the files manually. Only a handful of users know how to do this. Be careful!

zip

1 person likes this

..Forgot to mention it works with Key changes so you can choose any key + Major/Minor modes. I have it set to Pentatonic at the moment but my next step is to see if I can get custom scales like we could do with Orba 1.

Goddamn, it is the first forum in my life that does not allow editing your own posts..

Login or Signup to post a comment