Can we get documentation of the exact settings for Ribbons factory presets?

Hi @jaakjensen. First, many thanks for making such an inspiring pedal.

I was wondering if we could get the exact settings for the factory presets. I know we can get close from just looking at the LEDs. And I know we can do a factory reset if we want to restore them. The (admittedly currently hypothetical) use case I’m thinking of is I’ve overwritten presets 2 through 8 with my own settings, and now I want to recreate factory Crushed and Mangled, while preserving my other presets. So, I refer to the details I’m asking for, dial it up in the M4L device, and voilà.

Note, it’s not a huge deal if your enthusiasm for this request is not high. I’m asking assuming it’s not a big effort for you. If that’s not the case, then never mind. :slight_smile:

Also, I did search the forums, so I’m hoping the answer is not, “this is already available”.

Hey there. This is on our roadmap for our new pedal Sparks and we’d like to do it for Ribbons eventually too.

It’s kind of a tedious thing to go through each preset and rotate knob graphics in Photoshop and I don’t have time for it at the moment though.

Here are the exact settings for that preset from the code. You can divide the numbers below by 255 and then multiply by 100 to get the knob setting in %. For example, lowpass = (137/255) * 100 = 53%:

  //Factory Preset 5 - Crushed and Mangled
  persistent_data_.presets[4].touch_engine = CRUSHED_CASSETTE;
  persistent_data_.presets[4].mix = 255;
  persistent_data_.presets[4].lowpass = 137;
  persistent_data_.presets[4].compression = 127;
  persistent_data_.presets[4].tape_noise = 20;
  persistent_data_.presets[4].wowDepth = 135;
  persistent_data_.presets[4].flutterDepth = 127;
  persistent_data_.presets[4].wow_frequency = 135;
  persistent_data_.presets[4].flutter_frequency = 200;
  persistent_data_.presets[4].dropouts_frequency = 255;
  persistent_data_.presets[4].dropouts_depth = 255;
  persistent_data_.presets[4].reverb = 127;
  persistent_data_.presets[4].reverb_decay = 0;
  persistent_data_.presets[4].touchparam1 = 90;
  persistent_data_.presets[4].touchparam2 = 90;
  persistent_data_.presets[4].highpass = 90;
  persistent_data_.presets[4].crinkle = 255;

I think that results in the following percentages:

  presets[4].touch_engine = CRUSHED_CASSETTE;
  presets[4].mix = 100%
  presets[4].lowpass = 53%
  presets[4].compression = 50%
  presets[4].tape_noise = 8%
  presets[4].wowDepth = 53%
  presets[4].flutterDepth = 50%
  presets[4].wow_frequency = 53%
  presets[4].flutter_frequency = 78%
  presets[4].dropouts_frequency = 100%
  presets[4].dropouts_depth = 100%
  presets[4].reverb = 50%
  presets[4].reverb_decay = 0%
  presets[4].touchparam1 = 35%
  presets[4].touchparam2 = 35%
  presets[4].highpass = 35%
  presets[4].crinkle = 100%
1 Like

Here are the rest if anyone else wants to translate them in the meantime.

  //Persistent data is for stuff that isn't saved very often
  //Factory Preset 1 - Blank Preset
  persistent_data_.presets[0].engine = TAPE_PROCESSOR;
  persistent_data_.presets[0].touch_engine = MAGNETIC_DANCE;
  persistent_data_.presets[0].mix = 255;
  persistent_data_.presets[0].lowpass = 255;
  persistent_data_.presets[0].compression = 0;
  persistent_data_.presets[0].tape_noise = 0;
  persistent_data_.presets[0].wowDepth = 0;
  persistent_data_.presets[0].flutterDepth = 0;
  persistent_data_.presets[0].wow_frequency = 0;
  persistent_data_.presets[0].flutter_frequency = 0;
  persistent_data_.presets[0].dropouts_frequency = 0;
  persistent_data_.presets[0].dropouts_depth = 0;
  persistent_data_.presets[0].reverb = 127;
  persistent_data_.presets[0].reverb_decay = 0;
  persistent_data_.presets[0].touchparam1 = 0;
  persistent_data_.presets[0].touchparam2 = 125;
  persistent_data_.presets[0].highpass = 0;
  persistent_data_.presets[0].crinkle = 0;

  //Factory Preset 2 - Chaotic Vibrato
  persistent_data_.presets[1].engine = TAPE_PROCESSOR;
  persistent_data_.presets[1].touch_engine = MAGNETIC_DANCE;
  persistent_data_.presets[1].mix = 255;
  persistent_data_.presets[1].lowpass = 255;
  persistent_data_.presets[1].compression = 64;
  persistent_data_.presets[1].tape_noise = 0;
  persistent_data_.presets[1].wowDepth = 135;
  persistent_data_.presets[1].flutterDepth = 127;
  persistent_data_.presets[1].wow_frequency = 135;
  persistent_data_.presets[1].flutter_frequency = 127;
  persistent_data_.presets[1].dropouts_frequency = 0;
  persistent_data_.presets[1].dropouts_depth = 0;
  persistent_data_.presets[1].reverb = 127;
  persistent_data_.presets[1].reverb_decay = 0;
  persistent_data_.presets[1].touchparam1 = 0;
  persistent_data_.presets[1].touchparam2 = 125;
  persistent_data_.presets[1].highpass = 0;
  persistent_data_.presets[1].crinkle = 0;

  //Factory Preset 3 - Chaotic Chorus
  persistent_data_.presets[2].engine = TAPE_PROCESSOR;
  persistent_data_.presets[2].touch_engine = BROKEN_MACHINE;
  persistent_data_.presets[2].mix = 127;
  persistent_data_.presets[2].lowpass = 255;
  persistent_data_.presets[2].compression = 64;
  persistent_data_.presets[2].tape_noise = 0;
  persistent_data_.presets[2].wowDepth = 135;
  persistent_data_.presets[2].flutterDepth = 127;
  persistent_data_.presets[2].wow_frequency = 135;
  persistent_data_.presets[2].flutter_frequency = 127;
  persistent_data_.presets[2].dropouts_frequency = 0;
  persistent_data_.presets[2].dropouts_depth = 0;
  persistent_data_.presets[2].reverb = 127;
  persistent_data_.presets[2].reverb_decay = 0;
  persistent_data_.presets[2].touchparam1 = 125;
  persistent_data_.presets[2].touchparam2 = 125;
  persistent_data_.presets[2].highpass = 0;
  persistent_data_.presets[2].crinkle = 0;

  //Factory Preset 4 - A Bit Lo-Fi
  persistent_data_.presets[3].engine = TAPE_PROCESSOR;
  persistent_data_.presets[3].touch_engine = TAPE_STOP;
  persistent_data_.presets[3].mix = 255;
  persistent_data_.presets[3].lowpass = 137;
  persistent_data_.presets[3].compression = 127;
  persistent_data_.presets[3].tape_noise = 0;
  persistent_data_.presets[3].wowDepth = 135;
  persistent_data_.presets[3].flutterDepth = 127;
  persistent_data_.presets[3].wow_frequency = 135;
  persistent_data_.presets[3].flutter_frequency = 127;
  persistent_data_.presets[3].dropouts_frequency = 127;
  persistent_data_.presets[3].dropouts_depth = 127;
  persistent_data_.presets[3].reverb = 127;
  persistent_data_.presets[3].reverb_decay = 140;
  persistent_data_.presets[3].touchparam1 = 125;
  persistent_data_.presets[3].touchparam2 = 125;
  persistent_data_.presets[3].highpass = 90;
  persistent_data_.presets[3].crinkle = 127;

  //Factory Preset 5 - Crushed and Mangled
  persistent_data_.presets[4].engine = TAPE_PROCESSOR;
  persistent_data_.presets[4].touch_engine = CRUSHED_CASSETTE;
  persistent_data_.presets[4].mix = 255;
  persistent_data_.presets[4].lowpass = 137;
  persistent_data_.presets[4].compression = 127;
  persistent_data_.presets[4].tape_noise = 20;
  persistent_data_.presets[4].wowDepth = 135;
  persistent_data_.presets[4].flutterDepth = 127;
  persistent_data_.presets[4].wow_frequency = 135;
  persistent_data_.presets[4].flutter_frequency = 200;
  persistent_data_.presets[4].dropouts_frequency = 255;
  persistent_data_.presets[4].dropouts_depth = 255;
  persistent_data_.presets[4].reverb = 127;
  persistent_data_.presets[4].reverb_decay = 0;
  persistent_data_.presets[4].touchparam1 = 90;
  persistent_data_.presets[4].touchparam2 = 90;
  persistent_data_.presets[4].highpass = 90;
  persistent_data_.presets[4].crinkle = 255;

  //Factory Preset 6 - Really Nice Compression
  persistent_data_.presets[5].engine = TAPE_PROCESSOR;
  persistent_data_.presets[5].touch_engine = TAPE_STOP;
  persistent_data_.presets[5].mix = 255;
  persistent_data_.presets[5].lowpass = 190;
  persistent_data_.presets[5].compression = 165;
  persistent_data_.presets[5].tape_noise = 0;
  persistent_data_.presets[5].wowDepth = 0;
  persistent_data_.presets[5].flutterDepth = 0;
  persistent_data_.presets[5].wow_frequency = 0;
  persistent_data_.presets[5].flutter_frequency = 0;
  persistent_data_.presets[5].dropouts_frequency = 0;
  persistent_data_.presets[5].dropouts_depth = 0;
  persistent_data_.presets[5].reverb = 127;
  persistent_data_.presets[5].reverb_decay = 0;
  persistent_data_.presets[5].touchparam1 = 125;
  persistent_data_.presets[5].touchparam2 = 125;
  persistent_data_.presets[5].highpass = 0;
  persistent_data_.presets[5].crinkle = 0;

  //Factory Preset 7 - LoFi Ambience
  persistent_data_.presets[6].engine = TAPE_PROCESSOR;
  persistent_data_.presets[6].touch_engine = MAGNETIC_DANCE;
  persistent_data_.presets[6].mix = 255;
  persistent_data_.presets[6].lowpass = 135;
  persistent_data_.presets[6].compression = 127;
  persistent_data_.presets[6].tape_noise = 0;
  persistent_data_.presets[6].wowDepth = 100;
  persistent_data_.presets[6].flutterDepth = 100;
  persistent_data_.presets[6].wow_frequency = 100;
  persistent_data_.presets[6].flutter_frequency = 100;
  persistent_data_.presets[6].dropouts_frequency = 127;
  persistent_data_.presets[6].dropouts_depth = 127;
  persistent_data_.presets[6].reverb = 32;
  persistent_data_.presets[6].reverb_decay = 225;
  persistent_data_.presets[6].touchparam1 = 45;
  persistent_data_.presets[6].touchparam2 = 125;
  persistent_data_.presets[6].highpass = 64;
  persistent_data_.presets[6].crinkle = 100;

  //Factory Preset 8 - Endless Reverb
  persistent_data_.presets[7].engine = TAPE_PROCESSOR;
  persistent_data_.presets[7].touch_engine = BROKEN_MACHINE;
  persistent_data_.presets[7].mix = 255;
  persistent_data_.presets[7].lowpass = 255;
  persistent_data_.presets[7].compression = 64;
  persistent_data_.presets[7].tape_noise = 0;
  persistent_data_.presets[7].wowDepth = 0;
  persistent_data_.presets[7].flutterDepth = 0;
  persistent_data_.presets[7].wow_frequency = 0;
  persistent_data_.presets[7].flutter_frequency = 0;
  persistent_data_.presets[7].dropouts_frequency = 0;
  persistent_data_.presets[7].dropouts_depth = 0;
  persistent_data_.presets[7].reverb = 20;
  persistent_data_.presets[7].reverb_decay = 245;
  persistent_data_.presets[7].touchparam1 = 125;
  persistent_data_.presets[7].touchparam2 = 125;
  persistent_data_.presets[7].highpass = 0;
  persistent_data_.presets[7].crinkle = 0;

3 Likes

I’ll take a crack at doing the conversions shortly and should have them knocked out for review. @jaakjensen Do you happen to have the image templates for Ribbons? I can try my hand at photoshopping knobs and such if you’d like. Feel free to email me if so!

Also, it seems the hi-pass info is missing from these? Should I assume it’s at 0% for all the presets?

It’s in there! Second from the bottom for each preset. I’m in the middle of something atm but I can email you an image template later today.

I see it now! I just realized they’re out of order. No rush! I’ll work on this in the meantime.

Yeah the order is a little strange. Not sure how that happened. Maybe they’re in the order in-which I wrote the DSP code. Can’t recall anymore. :sweat_smile:

KINOTONE RIBBONS FACTORY PRESETS

Factory Preset 1 - Blank Preset
Touch_Engine = MAGNETIC_DANCE;

Page 1: Mix & Utility
Lowpass = 100%
Highpass = 0%
Mix = 100%
Compression = 0%

Page 2: Wow & Flutter
WowDepth = 0%
Wow_frequency = 0%
FlutterDepth = 0%
Flutter_frequency = 0%

Page 3: Degradation
Dropouts_depth = 0%
Dropouts_frequency = 0%
Crinkle = 0%
Tape_noise = 0%

Page 4: Reverb & Touch Modes
Reverb = 50%
Reverb_decay = 0;
Touchparam1 = 0;
Touchparam2 = 50%

Factory Preset 2 - Chaotic Vibrato
Touch_engine = MAGNETIC_DANCE;

Page 1: Mix & Utility
Lowpass = 100%
Highpass = 0%
Mix = 100%
Compression = 25%

Page 2: Wow & Flutter
WowDepth = 53%
Wow_frequency = 53%
FlutterDepth = 50%
Flutter_frequency =50%

Page 3: Degradation
Dropouts_depth = 0%
Dropouts_frequency = 0%
Crinkle = 0%
Tape_noise = 0%

Page 4: Reverb & Touch Modes
Reverb = 50%
Reverb_decay = 0%
Touchparam1 = 0%
Touchparam2 = 50%

Factory Preset 3 - Chaotic Chorus
Touch_engine = BROKEN_MACHINE;

Page 1: Mix & Utility
Lowpass = 100%
Highpass = 0%
Mix = 50%
Compression = 25%

Page 2: Wow & Flutter
WowDepth = 53%
Wow_frequency = 53%
FlutterDepth = 50%
Flutter_frequency = 50%

Page 3: Degradation
Dropouts_depth = 0%
Dropouts_frequency = 0%
Crinkle = 0%
Tape_noise = 0%

Page 4: Reverb & Touch Modes
Reverb = 50%
Reverb_decay = 0%
Touchparam1 = 50%
Touchparam2 = 50%

Factory Preset 4 - A Bit Lo-Fi
Touch_engine = TAPE_STOP;

Page 1: Mix & Utility
Lowpass = 54%
Highpass = 35%
Mix = 100%
Compression = 50%

Page 2: Wow & Flutter
WowDepth = 53%
Wow_frequency = 53%
FlutterDepth = 50%
Flutter_frequency = 50%

Page 3: Degradation
Dropouts_depth = 50%
Dropouts_frequency =50%
Crinkle = 50%
Tape_noise = 0%

Page 4: Reverb & Touch Modes
Reverb = 50%
Reverb_decay = 55%
Touchparam1 = 50%
Touchparam2 = 50%

Factory Preset 5 - Crushed and Mangled
Touch_Engine = CRUSHED_CASSETTE;

Page 1: Mix & Utility
Lowpass = 53%
Highpass = 35%
Mix = 100%
Compression = 50%

Page 2: Wow & Flutter
WowDepth = 53%
Wow_frequency = 53%
FlutterDepth = 50%
Flutter_frequency = 78%

Page 3: Degradation
Dropouts_depth = 100%
Dropouts_frequency = 100%
Crinkle = 100%
Tape_noise = 8%

Page 4: Reverb & Touch Modes
Reverb = 50%
Reverb_decay = 0%
Touchparam1 = 35%
Touchparam2 = 35%

Factory Preset 6 - Really Nice Compression
Touch_Engine = TAPE_STOP;

Page 1: Mix & Utility
Lowpass = 75%
Highpass = 0%
Mix = 100%
Compression = 65%

Page 2: Wow & Flutter
WowDepth = 0%
Wow_frequency = 0%
FlutterDepth = 0%
Flutter_frequency = 0%

Page 3: Degradation
Dropouts_depth = 0%
Dropouts_frequency = 0%
Crinkle = 0%
Tape_noise = 0%

Page 4: Reverb & Touch Modes
Reverb = 50%
Reverb_decay = 0%
Touchparam1 = 50%
Touchparam2 = 50%

Factory Preset 7 - LoFi Ambience
Touch_Engine = MAGNETIC_DANCE;

Page 1: Mix & Utility
Lowpass = 53%
Highpass = 25%
Mix = 100%
Compression = 50%

Page 2: Wow & Flutter
WowDepth = 40%
Wow_frequency = 40%
FlutterDepth = 40%
Flutter_frequency = 40%

Page 3: Degradation
Dropouts_depth = 50%
Dropouts_frequency = 50%
Crinkle = 40%
Tape_noise = 0%

Page 4: Reverb & Touch Modes
Reverb = 13%
Reverb_decay = 88%
Touchparam1 = 18%
Touchparam2 = 25%

Factory Preset 8 - Endless Reverb
Touch_engine = BROKEN_MACHINE;

Page 1: Mix & Utility
Lowpass = 100%
Highpass = 0%
Mix = 100%
Compression = 25%

Page 2: Wow & Flutter
WowDepth = 0%
Wow_frequency = 0%
FlutterDepth = 0%
Flutter_frequency = 0%

Page 3: Degradation
Dropouts_depth = 0%
Dropouts_frequency = 0%
Crinkle = 0%
Tape_noise = 0%

Page 4: Reverb & Touch Modes
Reverb = 8%
Reverb_decay = 96%
Touchparam1 = 50%
Touchparam2 = 50%

4 Likes

I tried to organize these all in a way that makes sense: hopefully the forum format doesn’t cause too much confusion. If anyone sees any glaring errors, please let me know and I’ll correct the post. Otherwise, enjoy!

1 Like

I’ll volunteer myself for independent review of @TheTimberOwls percentage results.

I started on a photoshop version for Crushed and Mangled but didn’t get very far. I now have a deeper appreciation for @jaakjensen’s comment about it being tedious and time consuming. :slight_smile:

1 Like

Here is where I was headed with the image version. Note that only the first page of knobs is actually done. If @TheTimberOwls is actually good at photoshop (I can get around in it, but I’m slow), I’m happy to have him take over.

1 Like

One minor thing I ran across when deciding where precisely to rotate the knobs in photoshop. My real-world knobs’ min and max are closer to 6 o’clock than the knob diagrams in the manual indicate. That is, my knobs have more travel than the min and max marks on, say, this figure:

I came up with this for 10% tick marks around the knob travel, as a guide.

image

That seems to (more or less) match the actual travel of my knobs. I haven’t actually tested how precisely lining things up according to that guide matches the factory presets in real-world behavior, though. I also don’t know how consistent the knob travel is from batch to batch of parts. My point is, if the image version of the preset settings is intended as a visual guide, it raises the question, how do we know where exactly to put the knob for things that aren’t at noon?

1 Like

Short of Midi messages, you’ll probably just have to trust your ears and reserve yourself to “close enough” in terms of percentages. Even the values from the calculations are not precise: sometimes the math means 50% is actually 49%.

Also, great job on the photoshopping! It’s up to you if you want to keep doing it, or I can take over if it’s too tedious for you.

The knobs have a pretty consistent 300 degrees of rotation. That means the inaccessible part of the knob occupies 60 degrees.

Your 11 tick marks are great for this because the angle between ticks is 30 degrees. To get the exact position of the knob you could:

  1. Rotate the knob pointer to the 1st tick
  2. Use your software’s rotate tool and type in (percentage * 300 degrees)

Done! The knob is in the exact position from the preset.

1 Like

Okay, cool. I’ll just keep at it, then. Might take a few days. :slight_smile:

No need to finish this if you don’t want to. We can do it ourselves sometime. People should have what they need with the code. If you feel like it though you are welcome to.

1 Like

I’ve been poking away at this here and there (the “sporadic” in my username is well-earned).

I’ll be putting them in this shared folder as I finish them:
https://drive.google.com/drive/folders/1_LRfAYLZyHqGRL_cmbgEARzqCSG6jkmN

There are only two so far, but more to come.

Note that these use several images from the official Ribbons User Manual. Those images do not belong to me. But since I am only making these for personal use and for sharing back with the community here, and since @jaakjensen and @carl_cat know about it, I’m assuming we’re good.

I paid for a license for the font, so we should be good there.

1 Like

Completed example:

2 Likes

There are only two so far, but more to come.

Okay, I’m done with all eight factory presets:
https://drive.google.com/drive/folders/1_LRfAYLZyHqGRL_cmbgEARzqCSG6jkmN

Let me know if you find any mistakes.

4 Likes