I would love a simple version. Also, crazy idea, how hard would it be to encode a monophonic midi clip into a pair of splines?
Sounds good. Iāll give the simple WAV version a go.
As for MIDI, I guess it depends on what you mean. I guess you could:
- ignore everything but the note on commands and when they show up
- define a MIDI note that means -1 and a MIDI note that means 1 and scale everything else in between
What kind of workflow are you thinking? Piano roll -> spline?
So the input would be a midi file.
And the output would be two splines. One spline would be 1/oct signals that are scaled down, say something like ā(o+5)/10ā and the other spline would be gate info with amplitude mapped to velocity.
That way I could scrub a pre quantized melody like I was playing the spline as a sequence in the video.
Great idea about using MIDI files. Iāll open a new thread about ideas for auto generating custom splines. @jjthrash Iāll have to study your node builder code so I can try out some ideas I have as well.
Sounds good. Iām going to be changing the structure of it a bunch to accommodate new things, but hopefully that wonāt cause too much trouble.
Iāve added the single-spline building feature. You can update the ruby gem with
sudo gem install build_audulus_wavetable_node
Then, when you run the command, add a -s
parameter, like so:
build_audulus_wavetable_node -s file.wav
The resulting patch will contain a single spline.
Cool thread everyone!
Just FYI this is all really awesome stuff, but know that in the future in Audulus 4 youāll be able to do this stuff without using the spline node (though it is an amazing hack for now). Youāll be able to upload .wav files directly and scan through them in the same way.
Maybe everyone knows that already but just wanted to add that in for the passers-by.
Carry on!
Nice! Will the scanning provide anti-aliasing?
Also, do you have an idea what the interface to the WAV/scanning node will be? I could possibly mimic that so that later people can drop in replacements if desired.
Iām sure it will, and that might mean we have two nodes or an option that turns on/off the anti-aliasing, because that would obviously interfere with using the node as pure data storage.
Not really - we started a thread about it on the old forum, but we could restart it here and discuss how it should look.
Any chance you could provide a sample midi file that I could work from?
Sure, let me compress this 3k file into azip Solar Octopus Track 1 (Dublin).mid.zip (1.1 KB)
Does this look like what youād expect the 1/o spline to look like? Based on whatās in the MIDI file I think itās probably right, at least the left āclusterā of nodes.
I calculated the 1/o value by assuming (note 69 is A4 is 0.0 āvoltsā). Then I scaled it down by a factor of 10 per your idea.
Not sure whatās up with the big gapā¦
Yeah, that looks right! The big gap is probably because I just ripped this midi file out of a project (Solar Octopus) so thatās probably a part where some other instruments are playing. Thatās pretty amazing that you were able to modify the code so quickly!
edit: Is there a node I can download
Sure! out.audulus (9.0 KB)
Will be a bit before I make the utility do something usefulā¦ this was generated from prototype code.
Question about the gate spline node: Iām guessing you would prefer gate to be 0 whenever there is no note currently on, is that right?
That would require the least conversion, so yeah.
Interesting, the notes seems to have gotten squished.
edit: side note, didnāt web browsers used to be able to play midi files?
Windows used to have a built in general MIDI synth. Itās been quite a while though.
Everything should have a built in synth.
I checked and itās still built into Window Media Player on Windows 10. If you download a midi file in the browser it will ask if you want to play it. I thought it was long gone.