Saturday, June 8, 2024

All good things come to an end.

Wow. My first post on this blog was in February of 2010. That's crazy. Unfortunately this blog is most certainly showing its age. There are a few things here I'm still rather fond of:
https://splintersilk.blogspot.com/search/label/anamorphic

And these still come in handy:
https://splintersilk.blogspot.com/search/label/houdini
https://splintersilk.blogspot.com/search/label/nuke

From now on though check out https://wwwsplintersilk.com/blog if you want to see whats new, in terms of software development and on the musical/artistic side. Thanks for coming by! See you on the other side.

Sunday, March 3, 2024

Polygon tidy up after mirroring in Houdini

Here's some help with simple things that are all too easy to forget if you don't work in Houdini for a while while. Courtesy of a talent Houdini artist Mohan Pugaz.

Monday, February 19, 2024

Fun with Windows installers. Wait, did I say fun?

Coming to you live from my Surface Book 3 running Windows 11. Windows used to be my daily driver (except for Linux in movie VFX that is), but then I went all MacOS when I started to dev for iOS. This is so weird lol. Aaaanyway.

Why am I here? The looping plugin I'm working on will also run on Windows, but to get it ready I have to make an installer. Gave myself a week to sort this out, but looks like install/uninstall is already working. It's been like, a day. The thing that really annoyed me though wasn't the guts of it, it was discovering that to codesign my work, juuuust to codesign it, the digital certificate costs $340 for one year. What on earth? It's included with api/sdk, TestFlight, beta test tools, code safety reviews etc that comes with the $99 Apple Dev fee. I never thought I'd see Apple being significantly cheaper than a Windows counterpart, but here we are, in the upside down world.

For now I think I'll go with unsigned code, at least until I know that people actually like this plugin.

Here's some useful stuff if you want to make your own installer using Inno Setup, which seems to be pretty great so far:
  1. Customising the banner graphic
  2. Custom installer theme

Wednesday, February 14, 2024

DAW Plugin to help with audio recorded without a metronome! - Part 2


Got some the audio-plugin behaving nicely! It's still looks pretty horrendous, but it's logic is functioning properly, efficiently and reliably. Pretty important facets! I'm finding it fun to use too. :)

The workflow is:
  1. Record your audio directly into the plugin
  2. Set your loop start and end points, fine tuning if necessary
  3. Set your number of bars (if the estimate isn't what you want), and set your time signature (if it's not the default 4/4)
  4. Click the bpm to copy, and in Reaper you can Ctrl/Cmd V to paste it.
  5. Set the DAW Time signature to match also
  6. Drag the audio clip to your main daw timeline.

Monday, February 5, 2024

Times fly

Today is all about time.

I have no shortage of things going on. In fact I had to get a bit ruthless to make progress. Multiple timers set with specific amounts of time allowed for me to get the assorted items on my list done.

Honestly it did help, but it felt aggressively regimented. Like being in the army or something! Also no guitar, drums, cello. So pretty much a "fun-fast". My first day of my fun diet lol. Oh well, needs must when there's stuff to get done.

Also, for the time spent on my DAW plugin project, my task today was a time signature controller. I completed it with just enough time to commit the code! Simple things, I wanted to show the time signature as a traditional fraction where you can drag left-right on the top or bottom to modify the numerator (number of beats), or denominator (value of each beat). It works and updates other parts of the UI properly! I am pleased :)

Sunday, February 4, 2024

Sleepy Weasels

I've always been rather fond of this melody.

Decided to give it a little bit of a sonic spruce up. I may have overdone the reverb but whatever, its a at least a small improvement.

Sleep well!

Friday, February 2, 2024

DAW Plugin to help with audio recorded without a metronome!

Well this is happening then! I'm somewhat feature complete on a plugin that allows you record audio and curate it to make a timed loop that you can then use to build up your DAW session.

Does that make sense? No, right? It's ok I'll try and release a video soon :)

Wednesday, January 31, 2024

Piano notes from the past

I wrote this when I was an angsty teenager. The other day I randomly thought to record it and share.

Surprisingly I've had a couple of comments that were really nice. If teenage me knew people would apprecate my playing I may have turned out a different person.



Oh well, still made it in the end :)



Wireless MIDI vs Drums

 

Newer MIDI instruments, such as drum modules and keyboards, are less inclined to sport a 40+ year old DIN plug for MIDI connections these days. An alternative has become necessary in recent years.


The Alesis Nitro MAX only has a USB-B output for example. The lovely people at the CME Pro Facebook group were most helpful in identifying two wireless solutions to go from the USB Out to Wireless MIDI. I went with the smaller, apparently lower latency item. The CME WIDI Bud.

Hopefully it will work out well!

 

Tuesday, January 30, 2024

Reaper DAW - community spirit

I'm still mulling over a really nice experience on the Reaper DAW Users Facebook group. I asked about peoples workflow in the DAW for capturing freewheeling audio to then loop/construct later. I got a dozen thoughtful/thoughtprovoking responses discussing and sharing their advice and approaches.

Very inspiring. I'm pretty new to looking at Reaper in any serious sense so this was a nice welcome.

Monday, January 29, 2024

Metronome-free music making

For a long time I've had secret disdain for playing along to metronomes and clicks when exploring musical ideas. Idk, something about the inspiration kind of dies when you're exploring whilst also trying match a grid - which more often than not is a little too fast or a little too slow.

This was one of the pushes behind Muser Audio for iOS.


Even so, there's still plenty of room for improving the process of ideating music. I think this is the time to explore some more solutions (pun somewhat intended).

Tuesday, March 29, 2022

Houville :: Execute code on a node

Per Mestela.

exec(kwargs['node'].parm('Code').eval())

Houville :: VEX circular points

Just a quick one

Wednesday, October 21, 2020

Building OpenImageIO on Windows

After messing around trying to build OpenImageIO on Windows I found this on Reddit. REDDIT!? That's what the world has come to.

Compiling OpenImageIO for Windows Yeah, use Vcpkg.

It automatically sorts out the dependencies for you and integrates the new library into Visual Studio's environment variables, so they're suddenly just as easy to use as the ol' STL.

If the library you want is in the list of maintained ports for Vcpkg, compiling it correctly is just a matter of entering this in a command prompt:

vcpkg install openimageio:x64-windows vcpkg integrate install

This will work for OpenEXR, OpenVDB, Alembic and a wide range of other essential libraries. You can even update the whole catalog with one command. It's life-changing.

https://www.reddit.com/r/vfx/comments/9jev6b/compiling_openimageio_for_windows/

Friday, January 25, 2019

Houville :: Pivoting away from that annoying copy to points with N, "Oh it's sideways" nonsense

If you have cards scattered around and want to copy something useful in their place, this will rotate @N for you.
vector up = point(0,"P",0) - point(0,"P",1);
vector axis = point(0,"P",0) - point(0,"P",2);
@N = normalize(cross(up,axis));

Friday, December 14, 2018

Nuke: Cant believe I forgot this... First frame last frame

nuke.knob('root.first_frame')
nuke.knob('root.last_frame')
yup. I know. Oh and it returns a string btw. I have NO idea why. Like really. Why..?

Saturday, July 14, 2018

Houville :: Alembic transform theft

Now that I'm typing this I'll probably not forget it. If I don't post this, I'll definitely forget it.
//Alembic packed info put onto existing geo.
matrix abc = primintrinsic(1,'packedfulltransform',0);
P *= abc;


This is kind of messed up, but handy if you want to freeze geo, affect it, but then have it resume animation from an incoming abc transform animation. Input 1 is the frozen and tweaked geo, 2 is the animated abc and 3 is the abc frozen on the same frame as 1.
//Alembic packed info from static frame subtracted out, then a the animated one put back in/
matrix abc = primintrinsic(1,'packedfulltransform',0);
matrix abcRef = primintrinsic(2,'packedfulltransform',0);

P *= invert(abcRef) * abc;