Happy Holidays!!
Posts
-
RE: Create lottie files without After Effects (blender)
Hello all!
It indeed seems limited in blender. The only way I could make a decent animation was in edit mode in 2d animation, and I had to record frame by frame.
I'm completely new to blender so I was just trying everything.
I also installed the optional dependencies, so that might have helped.
There are some cool scripts included, if your good with python.
There is also a plug-in for inkscape.But none of that matters because this all is a fork of the new lottie export plug-in for synfig, and if you don't feel like building synfig (me)?
https://www.synfig.org/2019/12/27/whats-coming-to-synfig-1-4-0-part-2/
This post says they will release a dev version this week with lottie export functionality! They are also creating a documentation of the lottie format :)
Just thought I'd pass along the info.
Thanks and Happy New Year!! -
RE: multi input for sidechain/ducking
I am happy to report that I got it working!! 4 inputs into a compiled vst and did processing and interaction on/between both channels!! Testing some things and I'll have more to post (:
-
Auto 3D Knob design
Found this knob building script: https://www.thingiverse.com/thing:54024
Its for OpenSCAD, a simple cross platform cad program.
Super easy, just open and edit the script in openscad, saving auto updates the 3d image.
Then export as an svg and do your thing in Blender!
Also, just searching for knobs on thingiverse is a good resource.
Here's an example of using the script... have phun evryone :)
-
Create lottie files without After Effects (blender)
Just found this last night https://gitlab.com/mattia.basaglia/tgs/
It has a addon for blender that lets you export lottie files :) I have exported some basic animations but haven't had time to try them in hise yet.~This is how to set it up~
I'm on a Windows 10 box
Add the "tgs_io" folder found here
https://gitlab.com/mattia.basaglia/tgs/tree/master/addons/blender
to your blender addons folder.
(Runningimport addon_utils; print(addon_utils.paths())
in the blender python console will locate your addon folder)
Mine is C:\Program Files\Blender Foundation\Blender 2.81\2.81\scripts\addonsNext open the cmd as admin and cd to the blender python exe.
Mine is C:\Program Files\Blender Foundation\Blender 2.81\2.81\python\bin
Then runpython.exe -m pip install tgs
Open blender
go to edit>preferences>addons and check the box next to
Import-Export: Lottie/TGS ExportThat's it, let me know if any of y'all figure out anything cool!
-
RE: multi input for sidechain/ducking
Sorry its taken so long to get back, my girly is 38 weeks pregnant, so yay!
I changed a lot of stuff, and I've been going through and seeing what is necessary and what isn't, but that's taking a long time. So here is what I have so far.
I'll update this as/if I figure more things out: Naming channels, dif input/output configs n stuff like that.I'm using scriptnode standalone
only compiling fx plugins as vst3sAgain not sure if every edit is necessary but this is working right now
In "hi_core\hi\core\MainController.cpp"
change line 745 to thisconst bool isUsingMultiChannel = multiChannelBuffer.getNumChannels() > 4;
And add these two lines after line 754
FloatVectorOperations::copy(thisMultiChannelBuffer.getWritePointer(2), buffer.getReadPointer(2), numSamplesThisBlock); FloatVectorOperations::copy(thisMultiChannelBuffer.getWritePointer(3), buffer.getReadPointer(3), numSamplesThisBlock);
Then add these two lines after line 764
FloatVectorOperations::add(buffer.getWritePointer(2), thisMultiChannelBuffer.getReadPointer(2), numSamplesThisBlock); FloatVectorOperations::add(buffer.getWritePointer(3), thisMultiChannelBuffer.getReadPointer(3), numSamplesThisBlock);
And these two after 788
FloatVectorOperations::copy(multiChannelBuffer.getWritePointer(2, 0), previewBuffer.getReadPointer(2, previewBufferIndex), numToPlay); FloatVectorOperations::copy(multiChannelBuffer.getWritePointer(3, 0), previewBuffer.getReadPointer(3, previewBufferIndex), numToPlay);
Then these two after 831
FloatVectorOperations::add(buffer.getWritePointer(2), thisMultiChannelBuffer.getReadPointer(2), numSamplesThisBlock); FloatVectorOperations::add(buffer.getWritePointer(3), thisMultiChannelBuffer.getReadPointer(3), numSamplesThisBlock);
Then change line 985 to this
getMainSynthChain()->getMatrix().setNumDestinationChannels(4);
Now save that file and open "hi_core\LibConfig.h"
change line 45 to this#define HISE_NUM_PLUGIN_CHANNELS 4
Save that file and open "hi_dsp\routing.cpp"
change line 37 to thisnumSourceChannels(4),
Save that and re/compile hise
This last file you can change without having to recompile hise
Ignore the edits to this file in my previous post, just
open "hi_dsp\plugin_parameter\PluginParameterProcessor.h"
and change line 110 toreturn true;
Save that and your ready to go.
For routing the master chain is connected like this
And I've only tested this so far in scriptnode and SNEX,
make sure your node channels are set to 4.Update us if any of y'all figure out anything new
~thanks~ -
RE: Drum Sampler first steps
@Vol-Man Yes it def can! Check out the docs https://docs.hise.audio/ and the example projects https://github.com/christophhart/hise_tutorial :)
-
RE: multi input for sidechain/ducking
I managed to compile a vst with 4 inputs, but the second stereo input doesn't pass audio through the compiled plugin.
I changed 2 lines in "hi_dsp\plugin_parameter\PluginParameterProcessor.h"
(You can edit this file without having to recompile hise)adding this to the end of line 81
.withInput("Sidechain", AudioChannelSet::stereo());
and changing line 110 from this
return (layouts.getMainInputChannels() == 2 && layouts.getMainOutputChannels() == 2);
to this
return (layouts.getMainInputChannels() == 4 && layouts.getMainOutputChannels() == 2);
Now I just need to get the extra inputs to map to inputs 3 and 4 of the master chain. Like the first two are mapped to channels 1 and 2.
I'm only trying this with fx plugin generation.
Any ideas or a pointer or anything would be much appreciated... ~help
-
RE: Sidechaining
I asked this same question a few days ago. It doesnt seem like its possible, but im still looking through the code to see if I can break something.. I mean make it work(:
-
RE: Scriptnode - halve frequency
@clumsybear I was playing around and made this script, you might be able to mod something from its output?
int count = 0.0; int aSig = 0.0; void countPeaks(int sIg) { //counting +peaks only if (sIg == 1)//you can change this to 0 { //but u got to put frame[0] = aSig + frame[0]; count += 1; } else{} if (count == 3)//divide peaks by # { count = 0.0; aSig = sIg; } else{aSig = 0.0;} } void processFrame(block frame) { countPeaks((int)frame[0]); frame[0] = aSig; }
-
RE: Scriptnode - halve frequency
@clumsybear Are you trying to cut your freq in half like 400Hz to 200Hz or do you want to slice the waveform like this?
this ā seems to double the freq but you have to put a hp filter after it or the freq will be offset like above
if i try frame[0]/frame[0] though, it crashes the oscillator and no sound will come out even if i change the code back, the oscillator has to be deleted and reloaded..
ĀÆ\__(ć)_/ĀÆ -
airwindows dither in snex
Ive been trying to re-write this dither code from airwindows in snex
//stereo 32 bit dither, made small and tidy.
int expon; frexpf((float)inputSampleL, &expon);
long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))pow(2,expon+62);
inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
frexpf((float)inputSampleR, &expon);
dither = (rand()/(RAND_MAX7.737125245533627e+25))*pow(2,expon+62);
inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
//end 32 bit ditheris there a rand() function? like math.random or something.
-
RE: Scriptnode - halve frequency
@Christoph-Hart :) oops, durp he said "half the freq" lol
dont know what i was thinking.
well, if anyone wants to know how to turn down the volume... -
RE: Calculate gain at specific frequency?
Maybe -- split signal > bandpass > compressor > clear.
Then the threshold is the modulation amount by connecting what ever you want to the gain reduction meter?
Haven't tried this, just a thought :)