Jaffasplaffas contributions


#21

No problem at all.

Sorry bout the negativeness, I just didnt understand the arguments. Yes it is christmas, lets have a good one :slight_smile:

Thanks for posting this, I will definetely take a look at it and learn from it. And compare then side by side.

I wish you a very merry christmas from Denmark to Spain :wink:

Jaffa


#22

Also again, I am really interested in getting the most out of Axoloti. And in this case custom won. I have had other situations where making a custom object was less efficient than making the same with factory objects. So, yeah it is a complicated area as you said and I guess also very new to me, still learning and I do recognize that the effectiveness can change from situation to situation. But for the example I posted; I have also made the same controller object with 8 parameters instead of 16. So of course I will always only use what I actually I need. But I think it is still good to find out how to make something more effective. And it is by no means a critique of anyone, only my humble experience and opinion.


#23

Thank you both for clarification!

Did you find a rule for that?


#24

No sorry I didnt. I think it was one of the custom wavetable objects compared to one patched form factory objects. The one patched with factory objects was "cheaper" that the custom object. But there might have been difference in how the wavetables where made in the two of them, but to me they sounded identical...... so might as well just use the "cheapest" one :slight_smile:


#25

A bunch of different "controller objects". Most of them are either fractionals or integers fed into a muxer. Some of them only has got inlet and some of them also got an onboard selector(sel) for choosing which one to output. The o output is the values that you set on the fractionals or the integers. The nr output is displaying which value is currently selected.

They are located in ctrl2 folder.


#26

Hi Jaffa. I noticed that Technobear has already shown you how to avoid looping outputs to inputs, but since I just got your env\ADSR1 code working without the loopback, I figured I'd post the code here, just in case.

Basically, I created a new int32_t called loopVal and replaced your outlet_e and and inlet_e with the variable.

Great libraries, thank you!

// vca
   step = (loopVal - prev)>>4;
   int32_t i = prev;
   prev = loopVal;

   //env
if ((inlet_g>0) && !ntrig) {
   stage = 1;
   ntrig = 1;
}
if (!(inlet_g>0) && ntrig) {
   stage = 0;
   ntrig = 0;
}
if (stage == 0){
   int32_t r1;
   int32_t r2;
   MTOF(- param_r - inlet_r, r1);
   r1 = 0x7FFFFFFF - (r1 >> 2);
   val = ___SMMUL(val,r1)<<1;
} else if (stage == 1){
   int32_t a;
   MTOF(- param_a - inlet_a,a);
   a = a >> 2;
   val = val + a;
   if (val<0) {
      val =0x7FFFFFFF;
      stage = 2;
   }
} else if (stage == 2) {
   int32_t s = __USAT(param_s + inlet_s, 27);
   int32_t d;
   MTOF(- param_d - inlet_d, d);
   d = 0x7FFFFFFF - (d >> 2);
   val = (s<<4) + (___SMMUL(val - (s<<4),d)<<1);
}
loopVal = val>>4;

#27

@DazzlingDuke

Hey :slight_smile:

Thanks. I appreciate it a lot. I have a bunch of objects to update then. Will compare it to my versions and see what you have changed. Did you post the object to the library?

EDIT: Got it working.

YES: This Loopval is going to be VERY helpful. I have so many projects where I have neede this feature.... Really, THANKS :wink: I never really got TB's suggestion working.


#28

You're welcome. Thank yourself, as well. :wink: You left breadcrumbs in your comments, which is why I posted it. Glad to know it worked for you.

I'm not sure how well this scales, so if I run into any performance issues or bottlenecks, I'll post something here. Cheers!


#29

I am converting most of then now and I dont find any issues so far. Better do a side by side comparison to be safe :wink:

But form what I can in the the scopes they are identical :slight_smile:


#30

New objects:

Dual and quad "VU meters". For comparing signals.


#31

New mixer:

Finally I got the mixer working that I have been working on. So here it is. A mixer with 4 channels, on/off switch for each channel, send for each channel, a return channel.

To use the send effect connect the "s" out to the effect you want to use' input and the connect the effect output back to the "r" inlet.

It also features a master out to in. This is very useful is you want to use effect for the master mix. But is HAS to be connect in some way for the mixer to work. If you dont add any effect, then route out "m" to in "m".

Compared to the same mixer patched with factory objects, this custom one uses only 3% DSP and the one patched with factory objects uses 7%. NICE :slight_smile:


Need help with making a channel on/off button on a mixer! (Solved)
#32

Hello :slight_smile:

I have FINALLY managed to get the envelopes converted to simpler versions. Nothing special, just "workhorse" objects. There is an old version of adsr1, which I have moved to "old" folder and will leave it there for a while. Please use or change to the new ones.

So here they are, a bunch of amp envelopes for audio signals :

If you want them to be same size as on the picture, move the objects to a local folder with a shorter name.... I like small, then I cam fit more on the screen :slight_smile:

I have synced library so they should be there. Have fun....


#33

New addition - 8 waves morphable wavetable oscillator!

Search: m8v1 & wtload1

This time with a custom written object. It is a wavetable player that can morph between 8 waves, 100% CLICKFREE. The reason for this is that you dont actually switch between the waves, you crossfade between them. Essentially all 8 waves are playing all the time and them you cross fade between them. Personally I am REALLY happy about the result. Have been trying many different methods for "something special" and this seems to a pretty decent approach.

You can use ANY all ready made wavetable that you all ready have. Lets say you have a wavetable with 128 waves and each wave is 2048 samples. Put those settings/filereferences in the wtload1 object, like on the picture, as you would with any other wavetable player.

Then next select 8 waves out of the premade wavetable with the "wave" knobs. Then use the MORPH knob to morph between the 8 waves.

Oh, there is also the wtload1 object, which is a combination object of al the objects needed to load a wavetable. You MUST use this table or TB's wavetable table, a regular table won't work.

It uses around 15%, so it is fairly heavy but I think it is worth it. If anyone in here have an idea of how to use many table/read interp in a really DSP friendly fashion, I would be really interested in hearing about it. It love to make one with 16 or even 32 waves to morph between :slight_smile:

This was about the most advnaced and crazy wavetable thingy I could come up with.

Also see helpfile!

If you find any issues let me know!


#34

New addition - an alternative to factory library version of math/log!

Search: math/log2

I added a version of the math/log called math/log2 to the com.lib. as an option to the factory library version. The factory library version jumps to minus infinity when set to zero. Which is probably the correct behaviour, but it is not always wanted.


#35

Allpass filters

Simple allpass filter - search: filt/ap1

filt/ap1 is an allpass filter w. a 1. order lowpass filter. This version has NO build in delay, only the allpass filter. You can combine it with Axolotis delay/read interp and create your own delay allpass filter for reverbs and so on. Can also be used for many other things if you have a creative mind.

Disclaimer; I am not 100% sure of the behaviour of this object. If you find errors or similar PLEASE let me know.

Allpass/delay combo - search: filt/ap2

Thi is the same as the factory library version but this one uses SDRAM!!!!! Very important for reverbs and so on.


#36

New addition - Save to and load from SD-card!

Search: table/saveload

Saves and load from same location on SD-card. Use index input to select location. Use save input to save to SD-card.


#37

New addition - Tablecombo!

Search: tablecombo1 & tablecombo2

This is a combination of several objects as shown on the picture. tablecombo2 also has got @DrJustice's deglitcher implemented = NO BIIIIP.. The output of the whole patch will be muted. To me that is better than the BIIIIP. Thanks to @DrJustice for helping out with this.


#38

New addition - Simple text object!

Search: jaffa/tools/text

Simple text object to keep notes right at your hand, inside the patch. Push "edit" to enter you text. The text can look a bit messy, but iff you start off with /* all the text will be green, as shown on the picture...:


#39

New addition - Random pattern player!

Search: jaffa/rand/rp128II

This is a random pattern player ala the random pattern from the G2. You have 100 random patterns, which you need to download from the link below. Each pattern consists of 128 random numbers, with values between 0 and 64.

So 100X128 patterns with random values in the range 0-64!!!!

NB: USES FILES FROM SD-CARD!

How to:
1. Download & uncompress the tab files.
2. Put the "Tab" folder in the root of the SD-card.
3. Open an Axoloti patch and type in tnbe object browser; jaffa/rand/rp128II
4. Open the help file and go live. If you placed the "Tab" folder in the root, you should see
random patterns in the display.

Note, that if you want to place the tab files in your own location on SD-card, you have to edit the object. Then you must copy the object to your local folder and edit it from there. Since this object uses a table, you cannot embed the object, it wont work. So copy it to local library and then edit your own version and remember to save before exiting the object editor.

The tab files - UPDATED - The last link was made on wetransfer and had expired. This new link is permanent:
https://mega.nz/#!qRJkWICS!90LgdGTtZZctnA3AI8g5GanBcJLPB_7YxBYlG49OPZg

Nb. For the purists, pattern 6 and 7 are the same. For some reason I skipped 007 when creating the patterns, so I just copied the 6 to 7, so there aren't any gaps.


#40

Hey. Do you get a high pitched noise when the your modified "factory filters" are deactivated as well? :slight_smile: