Jaffasplaffas contributions


#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:


#41

Hey!

Uh. long time since I checked them. I will check next time I use Axoloti. Which is probably tomorrow.


#42

Hey @EmilHarder

I checked it now and yes there might be some higpitched noise. I didnt check if the high pitched noise was there, but looked at the code and I can see what could potentially cause it. I will look into it and see if I can fix it. I am still learning coding so no promises on when they will be fixed.


#43

New additions - 12 new mixers!

Search:
jaffa/mix2/mx4a
jaffa/mix2/mx4b
jaffa/mix2/mx4c
jaffa/mix2/mx4d
jaffa/mix2/mx4e
jaffa/mix2/mx4f
jaffa/mix2/mx4g
jaffa/mix2/mx4h
jaffa/mix2/mx4i
jaffa/mix2/mx4j
jaffa/mix2/mx4k
jaffa/mix2/mx4l

These are mixers, with a signal flow like any regular desktop mixer like Mackie, yamaha etc.. with everything build in, like sends, subgroups, master volume etc. Basically a full fletched "studio mixer" :slight_smile: They range from 3 to 8 channels. Larger mixer has got 2 subgroups, midsize mixers has got 1 subgroup and small none. Same goes for send effects. The first send is mono send and stereo return, the second is mono send mono return. Sends are post channel volume fader. See in the description of object how much DSP each object uses. Biggest mixer is heavy, like 18% DSP usage!

Check the help file how to set the largest mixer up. I havent tweeked the sounds in the helpfile, it is only to show how to set it up.


#44

New additions - Envelope follower with parameter instead of attribute!

Search: jaffa/env/Follow2

This is the same envelope follower as in the fac.lib., but this one lets you set the envelope followers response time when being live cause it is a parameter not an atribute. I think this is nice when making compressors, cause it gives some more flexibility.


#45

New additions - 6 multimode LP BP & HP filters!

Search:
jaffa/filt/mm6db
jaffa/filt/mm12db
jaffa/filt/mm18db
jaffa/filt/mm24db
jaffa/filt/mmlp
jaffa/filt/mmhp

These filters are my own versions of the factory filters filter/lp1 m & filter/hp1 m made by @johannes, which I really like a lot. I am not 100% sure about if it is the right term, but I think they are first order, which I understand is 1 pole filters, which are 6db filter. And stacking 1 pole filter should then give 12,18,24 db etc.

They are then serial connected and combined into multimode filters of LP BP & HP. And there are 6,12,18 and 24db versions. No resonance in these filters, which I actually like. There is also a version with 4 stacked low pass filters and one with 4 stacked hi pass filters only;


How to code an IIR Allpas filter for Analouge Phasing?