Houdini importer

Started by danwills, October 12, 2023, 03:57:59

Previous topic - Next topic

danwills

Hi there! I just joined - I'm Dan Wills, a long-time demoscene spectator/lurker and I'd love to try to expand options around module-sync in Houdini beyond rendered wav's or manually split-out stems.

So, I'm keen to be able to get more (and more detailed) tracker-module data into SideFX Houdini for the purposes of making synchronised visuals to go with a bunch of tracks I made a long time ago, and to help others to be able to easily do the same.

I collaborated with ADKD a few years back on an ambient track and made a video for it using Houdini, here's a link to give more of an idea the kind of thing I'm talking about:
https://youtu.be/WNAzrOBqpsY?si=vMmnIIfxjr9D5Kd5

I've been trying to link libopenmpt in a compiled Houdini plugin, but unfortunately not had much luck linking it either statically or dynamically.. I'm not an expert on linking so am probably doing it wrong, but I realised there's probably no real need for binary linkage! Could potentially call openmpt123 from python and still get back .wav and text to use to drive things in Houdini.

I was thinking that a few additional arguments to the openmpt123 command could unlock some great possibilities!

My main goals are to be able to easily isolate by-channel or by-instrument/sample and automatically render out separated wav renderings per-component. I'm also pretty keen to be able to make fully-unrolled pattern data available too, ie: Each row that is visited, in order, with tempo/bpm info so that it can be traversed later in synchrony with the wav's. Was thinking that this info could be written to an accompanying text file while rendering wav's, or done on it's own too, either way.

I'm planning to make a few general-purpose (non-commercial) supporting Houdini Digital Assets both for conversion of wav/pattern-data especially note-triggers to animation channels, and various common module visualisations like note-dots, scrolling pattern-view, and oscilloscope/channel-volume bars,

I'd love to hear if this interests anyone and whether there might be any other Houdini users in this forum that might be keen to contribute/work-together, or even just to test things! I'm only just getting started currently but would love to hear from anyone who's keen!

Btw non-commercial Houdini can be installed for free, and it mainly only has restrictions to do with commercial usage. Happy to help get you started with Houdini if you're interested too!

psykon

Hi Dan!

Houdini user here - but not much of an libopenmpt user. Always happy if I see houdini users in places I do not expect. :)
What are your plans for such a DA? For audiodata/wavs, I would guess you can easily pipe those into chops once rendered (e.g. via a python script).
How would you represent additional data in houdini? I guess static metadata can be easily added as attributes, but I wonder how it would work with other (non-audio) time based data.

As for myself, I would be interested in something to directly play with mods in houdini, but from the use cases I can think of right now, I guess I could manage most of it by simply importing rendered wavs and processing them in chops.

If there's something to test, just let me know. :)     

manx

In general, I would suggest a direct integration with libopenmpt instead of going through another program like openmpt123. openmpt123 is really not designed to be scriptable in such a fine-grained way, and I do not intend to change that.

As for libopenmpt itself, there are a lot of features missing to make exactly timed pattern data available. This is currently just not possible for various reasons (the main one being the mixer/player architecture that is centered around fixed playback chunks instead of being aligned to module timing (ticks)). Thus, the first step to make something like what you want even possible, would be to help design the respective interfaces for libopenmpt. I will link related tickets in our issue tracker:

https://bugs.openmpt.org/view.php?id=1017 Tick boundary rendering
https://bugs.openmpt.org/view.php?id=1675 retrieval of loop start position, playback time at given position
https://bugs.openmpt.org/view.php?id=1042 Render pattern channels to separate buffers
https://bugs.openmpt.org/view.php?id=1569 missing per-channel APIs
https://bugs.openmpt.org/view.php?id=1092 More functionalities for interactive interface
https://bugs.openmpt.org/view.php?id=700 pattern display is slow

danwills

Thanks heaps for responding @psykon and @manx !

@psykon, yes exactly even if this ends up little-more than an HDA that makes it easier to render-to-wav and import-the-resulting-wavs-to-Houdini then I'll still be very happy. I'm hoping that it could also go a bit further than that by also including some prebuilt HDA bits in Houdini that can enable some nice animation-extraction via Chops but with a simplified interface.

I think the cherry on top of this would be to be able to also easily do: per-channel or per-instrument separations-into-pieces when rendering to .wav and then do the animation-extraction on each 'piece' independently. I think that should hopefully be pretty doable though!.

With easy separation of a track into logical-bits and a bit of nice Chops on top, that should I think be able to support some pretty-sweet default effects that are 100% based on the sound!

@manx thanks enormously for your advice! Indeed I would much-prefer a direct integration with libopenmpt too, but I've run into some troubles linking the library when I tried to include it in a compiled C++/HDK Houdini plugin (I did try both static and dynamic linking, and have failed to make it work so far .. I'm on Gentoo Linux, so I do have plenty of options I just maybe ran out of patience?).. so I decided I'd try just calling the openmpt123 command.. which actually seems will probably work really well for what I want to achieve so far anyway.

To be honest I don't have any need to 'script' the interface or anything like that really.. a batch/commandline-style interface is perfectly-fine for what I want to build. As I said above, initially I'm more than happy to wait for a bit to generate various output .wav's, and being able to control what channels and/or instruments are in them when rendering with openmpt123, would definitely be my main goal to begin with. As soon as I can work out a libopenmpt way, I'm into it though! just the command is nice and callable for me right now! : P

Beyond output .wav's, extracting more/pattern/other mod information does sound like it could stray into territory containing the potential pattern-sync-troubles you were mentioning! I have no idea of course but I can guess that many troubled-details lie within, and I'm just fine with that! I'll take any kind of ok-ish solution, I don't in any way need a perfect one!

I would love to get stuck-in and try to make deeper-improvements to help with improving libopenmpt's capabilities here but I am afraid that I don't really have good enough C/++ expertise nor very much time available for the deep-thought required. However I would still be prepared to commit time, over an extended period - to help - if we can work out how to get the idea moving! Maybe I could send you my test plugin C++ code that essentially just imports openmpt and instantiates the module class, (can even use the handy 'hcustom' command to compile after installing Houdini and tcsh!) but I haven't yet been able to build something that doesn't segfault when the node is instantiated in Houdini. If we could get it to at least load without segfaulting I'd be more-than-happy to keep going in a binary-linked (shared or static) way wih this idea for sure!!

I'm guessing the impossibility of exactly-timed pattern data might be (part of?) the reason that the 'pattern view' in openmpt123 is labelled as: 'experimental'!? Well.. I'd actually be totally fine with even a fair amount of inaccuracy here, as long as the main result is generally right (looks right to me while scrolling past in the terminal!

Ie - what openmpt123's pattern-view presently shows, I'd be OVER THE MOON even if I were able to produce a text file accompanying the WAV that contained each (unique/de-duplicated) row that was ever to the right of the ">+" in that!!

Hopefully (or, ultimately) it'd be great if it were possible to record something like the row's duration (or it's track-mix-start-time and duration.. does that sound possible?..

Even if the result of a coarse "recording-of-visited-pattern-rows" occasionally needed some 'manual' help (explicitly timed post-fix offsets or time-scalings) to stay synced-overall, I'd be fine with that for the moment!! Gotta start somewhere right?

I was thinking perhaps there could be an arg to openmpt123 that makes it make a text-file of these rows while outputting to wav or output-device?

I would love to hear any thoughts on all of that in terms of whether you think it might be ok to add channel-mask args, and instrument-mask args to the commandline openmpt123? I'll admit it seems complicated but even a rough solution could still be quite useful?


At present in the prototype HDA I've ended-up using pipeing-to-sox to get it to make a .wav file because when I tried the '--render' argument I got an error saying that there was no .wav codec available.

Using sox I have gotten writing-a wav of the total-mix working though, so it shouldn't be long before I can get that imported to Chops and set the Houdini timeline based on it and so on, and that will all be a great start I think!

This is the kind of command that my prototype HDA is making at present btw (with test.it as input and test.wav output):

openmpt123 --stdout --samplerate 48000 --channels 2 --no-float test.it | sox -t raw -r 48k -e signed -b 16 -c 2 - test.wav

danwills

I made a bit of progress earlier with a modified openmpt123 command!

I added an additional argument: '--pattern-time-log' that - in my prototype - makes it print the pattern data down-the-page and with time info at the end of the line (example below - I purposefully chose Minimum Velocity by PM for the example here since it's only 2 channels and it's short-lines format much more nicely, just the first couple of seconds as an example:

bin/openmpt123 --pattern --pattern-time-log "/home/dan/ziqq/Mods/Purple Motion/MINIMUM.S3M"
openmpt123 v0.8.0-pre.2, libopenmpt 0.8.0-pre.2+r19854 (OpenMPT 1.32.00.06-r19854 https://source.openmpt.org/svn/openmpt/trunk/OpenMPT@19854 (2023-10-12T04:11:38.861854Z) clean)
Copyright (c) 2013-2023 OpenMPT Project Developers and Contributors <https://lib.openmpt.org/>

Filename...: MINIMUM.S3M
Size.......: 54kB
Type.......: s3m (Scream Tracker 3)
Tracker....: Scream Tracker 3.00 (GUS)
Title......: Minimum Velocity
Duration...: 02:21.000
Subsongs...: 1
Channels...: 2
Orders.....: 36
Patterns...: 33
Instruments: 0
Samples....: 20

>+D-5 02 .. ...  +A-5 02 .. ...  :Position: 00:00.050 / 02:21.000 
>+... .. .. ...  +... .. .. ...  :Position: 00:00.100 / 02:21.000 
>+... ..v05 ...  +... ..v05 ...  :Position: 00:00.150 / 02:21.000 
>+... .. .. ...  +... .. .. ...  :Position: 00:00.200 / 02:21.000 
>+... .. .. ...  +... .. .. ...  :Position: 00:00.250 / 02:21.000 
>+... .. .. ...  +... .. .. ...  :Position: 00:00.300 / 02:21.000 
>+... .. .. ...  +... .. .. ...  :Position: 00:00.350 / 02:21.000 
>+D-5 02v0A ...  +A-5 02v0A ...  :Position: 00:00.399 / 02:21.000 
>+... .. .. ...  +... .. .. ...  :Position: 00:00.449 / 02:21.000 
>+... .. .. ...  +... .. .. ...  :Position: 00:00.499 / 02:21.000 
>+... .. .. D01  +D-6 03 .. ...  :Position: 00:00.549 / 02:21.000 
>+... .. .. D00  +... .. .. ...  :Position: 00:00.600 / 02:21.000 
>+... .. .. D00  +... .. .. E20  :Position: 00:00.650 / 02:21.000 
>+... .. .. D00  +... .. .. E00  :Position: 00:00.700 / 02:21.000 
>+... .. .. D00  +... .. .. E00  :Position: 00:00.750 / 02:21.000 
>+... .. .. D00  +... .. .. E00  :Position: 00:00.800 / 02:21.000 
>+... .. .. D00  +... .. .. E00  :Position: 00:00.850 / 02:21.000 
>+... .. .. D00  +... .. .. E00  :Position: 00:00.900 / 02:21.000 
>+... .. .. C00  +... .. .. E00  :Position: 00:00.950 / 02:21.000 
>+... .. .. C00  +... .. .. E00  :Position: 00:01.000 / 02:21.000 
>+F-6 01 .. ...  +D-5 03 .. ...  :Position: 00:01.050 / 02:21.000 
>+C-6 01v05 ...  +... .. .. ...  :Position: 00:01.100 / 02:21.000 
>+E-6 01 .. GFF  +... .. .. ...  :Position: 00:01.150 / 02:21.000 
>+G-5 02v03 ...  +... .. .. ...  :Position: 00:01.200 / 02:21.000 
>+G-5 02v03 ...  +... .. .. ...  :Position: 00:01.250 / 02:21.000 
>+C-6 02 .. ...  +C-6 05v14 ...  :Position: 00:01.300 / 02:21.000 
>+F-6 01v05 ...  +... .. .. ...  :Position: 00:01.350 / 02:21.000 
>+D-6 01 .. ...  +D-6 03 .. ...  :Position: 00:01.400 / 02:21.000 
>+E-6 01v05 G00  +... .. .. ...  :Position: 00:01.450 / 02:21.000 
>+E-6 01v05 G00  +... .. .. ...  :Position: 00:01.500 / 02:21.000 
>+F-6 01 .. ...  +... ..v14 ...  :Position: 00:01.550 / 02:21.000 
>+C-6 02v03 ...  +... .. .. ...  :Position: 00:01.600 / 02:21.000 
>+E-6 01 .. G00  +C-6 12 .. ...  :Position: 00:01.650 / 02:21.000 
>+D-6 01v05 ...  +... .. .. ...  :Position: 00:01.700 / 02:21.000 
>+D-6 01v05 ...  +... .. .. ...  :Position: 00:01.750 / 02:21.000 
>+C-6 01 .. ...  +C-6 08 .. ...  :Position: 00:01.800 / 02:21.000 
>+F-6 01v05 ...  +... .. .. ...  :Position: 00:01.850 / 02:21.000 
>+G-5 02 .. ...  +D-6 08 .. ...  :Position: 00:01.900 / 02:21.000 
>+E-6 01v05 G00  +... .. .. ...  :Position: 00:01.950 / 02:21.000 
>+E-6 01v05 G00  +... .. .. ...  :Position: 00:02.000 / 02:21.000 
>+F-6 01 .. ...  +C-6 14 .. ...  :Position: 00:02.050 / 02:21.000 
>+C-6 01v05 ...  +... .. .. ...  :Position: 00:02.100 / 02:21.000 
>+E-6 01 .. G00  +C-6 09v14 ...  :Position: 00:02.150 / 02:21.000 
>+G-5 02v03 ...  +... .. .. ...  :Position: 00:02.200 / 02:21.000 
>+G-5 02v03 ...  +... .. .. ...  :Position: 00:02.250 / 02:21.000 
>+C-6 02 .. ...  +D-6 09v0A ...  :Position: 00:02.300 / 02:21.000 
>+F-6 01v05 ...  +... .. .. ...  :Position: 00:02.349 / 02:21.000 
>+D-6 01 .. ...  +... .. .. ...  :Position: 00:02.399 / 02:21.000 
>+E-6 01v05 G00  +... .. .. ...  :Position: 00:02.449 / 02:21.000 
>+E-6 01v05 G00  +... .. .. ...  :Position: 00:02.499 / 02:21.000 
>+F-6 01 .. ...  +... .. .. ...  :Position: 00:02.549 / 02:21.000 
>+C-6 02v03 ...  +... .. .. ...  :Position: 00:02.599 / 02:21.000 
>+E-6 01 .. G00  +... .. .. ...  :Position: 00:02.649 / 02:21.000 
>+D-6 01v05 ...  +... .. .. ...  :Position: 00:02.699 / 02:21.000 
>+D-6 01v05 ...  +... .. .. ...  :Position: 00:02.749 / 02:21.000 
>+C-6 01 .. ...  +... .. .. ...  :Position: 00:02.799 / 02:21.000 
>+F-6 01v05 ...  +... .. .. ...  :Position: 00:02.849 / 02:21.000 
>+G-5 02 .. ...  +... .. .. ...  :Position: 00:02.899 / 02:21.000 
>+E-6 01v05 G00  +... .. .. ...  :Position: 00:02.949 / 02:21.000 
>+E-6 01v05 G00  +... .. .. ...  :Position: 00:02.999 / 02:21.000 
>+F-6 01 .. ...  +C-5 03 .. ...  :Position: 00:03.049 / 02:21.000 
>+C-6 01v05 ...  +... .. .. ...  :Position: 00:03.099 / 02:21.000 
>+E-6 01 .. G00  +... .. .. ...  :Position: 00:03.149 / 02:21.000 
>+G-5 02v03 ...  +... .. .. ...  :Position: 00:03.199 / 02:21.000 
>+G-5 02v03 ...  +... .. .. ...  :Position: 00:03.249 / 02:21.000 
>+C-6 02 .. ...  +D-6 05v14 ...  :Position: 00:03.299 / 02:21.000 
>+F-6 01v05 ...  +... .. .. ...  :Position: 00:03.349 / 02:21.000 
>+D-6 01 .. ...  +C-6 03 .. ...  :Position: 00:03.399 / 02:21.000 
>+E-6 01v05 G00  +... .. .. ...  :Position: 00:03.449 / 02:21.000 
>+E-6 01v05 G00  +... .. .. ...  :Position: 00:03.499 / 02:21.000 
>+F-6 01 .. ...  +... ..v14 ...  :Position: 00:03.549 / 02:21.000 
>+C-6 02v03 ...  +... .. .. ...  :Position: 00:03.599 / 02:21.000 
>+E-6 01 .. G00  +C-6 12 .. ...  :Position: 00:03.649 / 02:21.000 
>+D-6 01v05 ...  +... .. .. ...  :Position: 00:03.699 / 02:21.000


Seems pretty promising to me! It still responds to the --update arg so it can be made much more fine-grained in time if desired. I'm intending to make it able to only print the line if the pattern-part of the string is different to the last printout, so that I can use a very small --update value but not yield giant and rather-repetitive logs.

I think I'll also have a crack at a solo-by-channel argument soon.. solo-by-instrument can wait for now I think.. one-wav-per-channel should give ample separation in most cases I'd say!

danwills

On the idea of making the pattern-log mode only print unique lines (when using very short --update):

Last night I got a prototype working that prints only lines that are not a repeat of a previous line that was already printed. This lets me set --update to something really fast like 1ms, and still only get new unique lines of playback-info printed through the module playback. I found that ultimately I wanted the pattern-row included in the string too otherwise it became possible for there to be these pauses in the output (while no new notes/fx/etc have been triggered, but the pattern has still advanced.. it could perhaps be a cool reduction-mode for the future perhaps.. but for now I wanted to show a bit of what it looks like with the pattern-row in there as that should look more like the original patterns do!

Below is the first 22 seconds of 2ND_PM.S3M, output as a log using flags to a modified openmpt123 command. In fact here we go, this is the kind of command that gets made at present:
openmpt123 --samplerate 48000 --pattern --pattern-time-log --gain -256 --end-time 22.0 --assume-terminal --update 1 ~/tracking/sampleTracks/2ND_PM.S3M > test_pattern_log2.txt
Looks like the code widget is pretty sweet around here! niiice, here we go this is the output of that command:

Ah, there's a message-length-limit.. so II'll just chop it off till it fits!
=======================

openmpt123 v0.8.0-pre.2, libopenmpt 0.8.0-pre.2+r19854 (OpenMPT 1.32.00.06-r19854 https://source.openmpt.org/svn/openmpt/trunk/OpenMPT@19854 (2023-10-12T04:11:38.861854Z) clean)
Copyright (c) 2013-2023 OpenMPT Project Developers and Contributors <https://lib.openmpt.org/>

Filename...: 2ND_PM.S3M
Size.......: 600kB
Type.......: s3m (Scream Tracker 3)
Tracker....: Scream Tracker 3.00 (GUS)
Title......: UnreaL ][ / PM
Duration...: 06:44.812
Subsongs...: 1
Channels...: 8
Orders.....: 84
Patterns...: 77
Instruments: 0
Samples....: 54

::0+^^^ ..v00 A03  +^^^ ..v00 ...  +^^^ ..v00 ...  +^^^ ..v00 ...  +^^^ ..v00 ...  +^^^ ..v00 ...  +^^^ ..v00 ...  +^^^ ..v00 ...  Position: 00:00.001 / 06:44.812  
::1+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:00.058 / 06:44.812  
::2+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:00.116 / 06:44.812  
::3+... .. .. ...  +... .. .. ...  +... .. .. C00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:00.174 / 06:44.812  
::0+^^^ ..v00 ...  +^^^ ..v00 A03  +^^^ ..v00 ...  +C#5 1B .. ...  +D#5 09 .. ...  +^^^ ..v00 ...  +B-5 1Av0C ...  +^^^ ..v00 ...  Position: 00:00.231 / 06:44.812  
::1+... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v0A ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:00.289 / 06:44.812  
::2+... .. .. ...  +... .. .. ...  +... .. .. ...  +C#5 1B .. ...  +D#5 09 .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:00.347 / 06:44.812  
::3+... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v0A ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:00.404 / 06:44.812  
::4+... .. .. ...  +... .. .. ...  +... .. .. ...  +C#4 1B .. ...  +D#4 09 .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:00.462 / 06:44.812  
::5+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:00.520 / 06:44.812  
::6+... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v00 ...  +C#5 1Bv16 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:00.577 / 06:44.812  
::7+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v03 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:00.635 / 06:44.812  
::8+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +C#5 1Bv16 ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:00.693 / 06:44.812  
::9+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v03 ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:00.750 / 06:44.812  
:10+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +C#4 1Bv16 ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:00.808 / 06:44.812  
:11+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:00.866 / 06:44.812  
:12+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v00 ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:00.924 / 06:44.812  
:13+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:00.981 / 06:44.812  
:14+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:01.038 / 06:44.812  
:15+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:01.096 / 06:44.812  
:16+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:01.153 / 06:44.812  
:17+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:01.211 / 06:44.812  
:18+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:01.269 / 06:44.812  
:19+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:01.326 / 06:44.812  
:20+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:01.384 / 06:44.812  
:21+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:01.442 / 06:44.812  
:22+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:01.499 / 06:44.812  
:23+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:01.557 / 06:44.812  
:24+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:01.615 / 06:44.812  
:25+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:01.672 / 06:44.812  
:26+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:01.730 / 06:44.812  
:27+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:01.788 / 06:44.812  
:28+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:01.846 / 06:44.812  
:29+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:01.903 / 06:44.812  
:30+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:01.961 / 06:44.812  
:31+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:02.019 / 06:44.812  
:32+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:02.076 / 06:44.812  
:33+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:02.134 / 06:44.812  
:34+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:02.192 / 06:44.812  
:35+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:02.249 / 06:44.812  
:36+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:02.307 / 06:44.812  
:37+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:02.365 / 06:44.812  
:38+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:02.422 / 06:44.812  
:39+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:02.480 / 06:44.812  
:40+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:02.538 / 06:44.812  
:41+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:02.595 / 06:44.812  
:42+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:02.653 / 06:44.812  
:43+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:02.711 / 06:44.812  
:44+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:02.769 / 06:44.812  
:45+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:02.826 / 06:44.812  
:46+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:02.884 / 06:44.812  
:47+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:02.942 / 06:44.812  
:48+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:02.999 / 06:44.812  
:49+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:03.057 / 06:44.812  
:50+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:03.115 / 06:44.812  
:51+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:03.172 / 06:44.812  
:52+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:03.230 / 06:44.812  
:53+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:03.288 / 06:44.812  
:54+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:03.345 / 06:44.812  
:55+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:03.403 / 06:44.812  
:56+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:03.461 / 06:44.812  
:57+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:03.518 / 06:44.812  
:58+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:03.576 / 06:44.812  
:59+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:03.634 / 06:44.812  
:60+... .. .. ...  +... .. .. ...  +... .. .. ...  +B-4 1B .. ...  +... .. .. ...  +... .. .. D00  +B-5 1Av0A ...  +... .. .. ...  Position: 00:03.692 / 06:44.812  
:61+... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v0A ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:03.749 / 06:44.812  
:62+... .. .. ...  +... .. .. ...  +... .. .. ...  +B-3 1B .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:03.807 / 06:44.812  
:63+... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v0A ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:03.865 / 06:44.812  
::0+... ..v00 ...  +... ..v00 ...  +... ..v00 ...  +C#5 1B .. ...  +D#5 09 .. ...  +... ..v00 ...  +B-5 1Av0C ...  +C#6 22v00 ...  Position: 00:03.922 / 06:44.812  
::1+... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v0A ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:03.980 / 06:44.812  
::2+... .. .. ...  +... .. .. ...  +... .. .. ...  +C#5 1B .. ...  +D#5 09 .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:04.038 / 06:44.812  
::3+... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v0A ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:04.095 / 06:44.812  
::4+... .. .. ...  +... .. .. ...  +... .. .. ...  +C#4 1B .. ...  +D#4 09 .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:04.153 / 06:44.812  
::5+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:04.211 / 06:44.812  
::6+... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v00 ...  +C#5 1Bv16 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:04.268 / 06:44.812  
::7+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v03 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:04.326 / 06:44.812  
::8+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +C#5 1Bv16 ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:04.384 / 06:44.812  
::9+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v03 ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:04.441 / 06:44.812  
:10+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +C#4 1Bv16 ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:04.499 / 06:44.812  
:11+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:04.557 / 06:44.812  
:12+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... ..v00 ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:04.615 / 06:44.812  
:13+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:04.672 / 06:44.812  
:14+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:04.730 / 06:44.812  
:15+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:04.788 / 06:44.812  
:16+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:04.845 / 06:44.812  
:17+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:04.903 / 06:44.812  
:18+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:04.961 / 06:44.812  
:19+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:05.019 / 06:44.812  
:20+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:05.077 / 06:44.812  
:21+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:05.135 / 06:44.812  
:22+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:05.192 / 06:44.812  
:23+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:05.250 / 06:44.812  
:24+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:05.308 / 06:44.812  
:25+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:05.365 / 06:44.812  
:26+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:05.423 / 06:44.812  
:27+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:05.481 / 06:44.812  
:28+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:05.539 / 06:44.812  
:29+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:05.596 / 06:44.812  
:30+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:05.654 / 06:44.812  
:31+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:05.712 / 06:44.812  
:32+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:05.769 / 06:44.812  
:33+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:05.827 / 06:44.812  
:34+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:05.885 / 06:44.812  
:35+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:05.942 / 06:44.812  
:36+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:06.000 / 06:44.812  
:37+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:06.058 / 06:44.812  
:38+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:06.115 / 06:44.812  
:39+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:06.173 / 06:44.812  
:40+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:06.231 / 06:44.812  
:41+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:06.288 / 06:44.812  
:42+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:06.346 / 06:44.812  
:43+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:06.404 / 06:44.812  
:44+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:06.462 / 06:44.812  
:45+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:06.519 / 06:44.812  
:46+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:06.577 / 06:44.812  
:47+... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:06.635 / 06:44.812  
:48+... .. .. ...  +C-5 1Dv0A O10  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:06.692 / 06:44.812  
:49+... .. .. ...  +... ..v14 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:06.750 / 06:44.812  
:50+... .. .. ...  +... ..v1E ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:06.808 / 06:44.812  
:51+... .. .. ...  +... ..v28 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:06.865 / 06:44.812  
:52+... .. .. ...  +... ..v32 E08  +C-5 1Dv0C O10  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:06.923 / 06:44.812  
:53+... .. .. ...  +... ..v3C E00  +... ..v16 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:06.981 / 06:44.812  
:54+... .. .. ...  +... ..v40 E00  +... ..v20 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:07.038 / 06:44.812  
:55+... .. .. ...  +... .. .. E00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:07.096 / 06:44.812  
:56+... .. .. ...  +... .. .. E00  +... .. .. E08  +... .. .. ...  +... .. .. ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:07.154 / 06:44.812  
:57+... .. .. ...  +... .. .. E00  +... .. .. E00  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:07.211 / 06:44.812  
:58+... .. .. ...  +... .. .. E00  +... .. .. E00  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:07.269 / 06:44.812  
:59+... .. .. ...  +... .. .. E00  +... .. .. E00  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:07.327 / 06:44.812  
:60+... .. .. ...  +... .. .. E00  +... .. .. E00  +B-4 1B .. ...  +... .. .. ...  +... .. .. D00  +B-5 1Av0A ...  +... .. .. ...  Position: 00:07.385 / 06:44.812  
:61+... .. .. ...  +... .. .. E00  +... .. .. E00  +... ..v0A ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:07.442 / 06:44.812  
:62+... .. .. ...  +... .. .. E00  +... .. .. E00  +B-3 1B .. ...  +C-5 22v0A ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:07.500 / 06:44.812  
:63+... .. .. ...  +... .. .. E00  +... .. .. E00  +... ..v0A ...  +C-5 22v14 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:07.558 / 06:44.812  
::0+A#4 19 .. A03  +... ..v05 ...  +... ..v07 ...  +C#5 1B .. ...  +D#5 09 .. ...  +C-5 22 .. F02  +B-5 1Av0C ...  +C-5 22 .. ...  Position: 00:07.615 / 06:44.812  
::1+... .. .. ...  +G#5 19v0F ...  +... .. .. ...  +... ..v0A ...  +... .. .. ...  +... .. .. F00  +... .. .. ...  +... .. .. ...  Position: 00:07.673 / 06:44.812  
::2+F-5 19v14 G80  +... ..v05 ...  +F-5 19v16 G80  +C#5 1B .. ...  +D#5 09 .. ...  +... .. .. E00  +... .. .. ...  +... .. .. ...  Position: 00:07.731 / 06:44.812  
::3+... .. .. G00  +A#4 19v0F G80  +... ..v07 ...  +... ..v0A ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:07.788 / 06:44.812  
::4+A#5 19 .. G00  +... .. .. ...  +G#5 19v16 G00  +C#4 1B .. ...  +D#4 09 .. ...  +... ..v1E ...  +... .. .. ...  +... .. .. ...  Position: 00:07.846 / 06:44.812  
::5+... ..v14 G00  +F-5 19v05 G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... ..v14 E00  +... .. .. ...  +... .. .. ...  Position: 00:07.904 / 06:44.812  
::6+F-5 19 .. G00  +... .. .. G00  +A#4 19v16 ...  +... ..v00 ...  +C#5 1Bv16 ...  +... ..v0A ...  +... .. .. ...  +... .. .. ...  Position: 00:07.961 / 06:44.812  
::7+... ..v14 ...  +A#5 19v0F G00  +... .. .. ...  +... .. .. ...  +... ..v03 ...  +... ..v00 ...  +... .. .. ...  +... .. .. ...  Position: 00:08.019 / 06:44.812  
::8+A#5 19 .. G00  +... ..v05 G00  +F-5 19v07 G00  +... .. .. ...  +C#5 1Bv16 ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:08.077 / 06:44.812  
::9+... ..v14 ...  +F-5 19v0F G00  +... .. .. G00  +... .. .. ...  +... ..v03 ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:08.134 / 06:44.812  
:10+F#5 19 .. G00  +... ..v05 ...  +A#5 19v16 G00  +... .. .. ...  +C#4 1Bv16 ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:08.192 / 06:44.812  
:11+... ..v14 ...  +A#5 19v0F G00  +... ..v07 G00  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:08.250 / 06:44.812  
:12+A#4 19 .. ...  +... ..v05 ...  +F-5 19v16 G00  +... .. .. ...  +... ..v00 ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:08.308 / 06:44.812  
:13+... .. .. ...  +F#5 19v0F G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:08.365 / 06:44.812  
:14+F-5 19v14 G00  +... ..v05 ...  +A#5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:08.423 / 06:44.812  
:15+... .. .. ...  +A#4 19v0F ...  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:08.481 / 06:44.812  
:16+A#5 19 .. G00  +... .. .. ...  +F-5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:08.538 / 06:44.812  
:17+... ..v14 ...  +F-5 19v05 G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:08.596 / 06:44.812  
:18+F-5 19 .. G00  +... .. .. ...  +A#4 19v16 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:08.654 / 06:44.812  
:19+... ..v14 ...  +A#5 19v0F G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:08.711 / 06:44.812  
:20+A#5 19 .. G00  +... ..v05 ...  +F-5 19v07 G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:08.769 / 06:44.812  
:21+... ..v14 ...  +F-5 19v0F G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:08.827 / 06:44.812  
:22+F#5 19 .. G00  +... ..v05 ...  +A#5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:08.884 / 06:44.812  
:23+... ..v14 ...  +A#5 19v0F G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:08.942 / 06:44.812  
:24+C#5 19 .. ...  +... ..v05 ...  +F-5 19v16 G00  +... .. .. ...  +... .. .. ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:09.000 / 06:44.812  
:25+... .. .. ...  +F#5 19v0F G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:09.057 / 06:44.812  
:26+C-5 19v14 G00  +... ..v05 ...  +A#5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:09.115 / 06:44.812  
:27+... .. .. ...  +C#5 19v0F ...  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:09.173 / 06:44.812  
:28+G#4 19 .. G00  +... .. .. ...  +F#5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:09.231 / 06:44.812  
:29+... .. .. ...  +C-5 19v05 G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:09.288 / 06:44.812  
:30+... ..v14 ...  +... .. .. ...  +C#5 19v16 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:09.346 / 06:44.812  
:31+... .. .. ...  +G#4 19v0F G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:09.404 / 06:44.812  
:32+A#4 19 .. ...  +... .. .. ...  +C-5 19v07 G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:09.461 / 06:44.812  
:33+... .. .. ...  +... ..v05 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:09.519 / 06:44.812  
:34+... ..v14 ...  +... .. .. ...  +G#4 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:09.577 / 06:44.812  
:35+... .. .. ...  +A#4 19v0F ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:09.634 / 06:44.812  
:36+A#5 19 .. G00  +... .. .. ...  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:09.692 / 06:44.812  
:37+... ..v14 ...  +... ..v05 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:09.750 / 06:44.812  
:38+F-5 19 .. G00  +... .. .. ...  +A#4 19v16 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:09.807 / 06:44.812  
:39+... ..v14 ...  +A#5 19v0F G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:09.864 / 06:44.812  
:40+A#5 19 .. G00  +... ..v05 ...  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:09.922 / 06:44.812  
:41+... ..v14 ...  +F-5 19v0F G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:09.979 / 06:44.812  
:42+F#5 19 .. G00  +... ..v05 ...  +A#5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:10.037 / 06:44.812  
:43+... ..v14 ...  +A#5 19v0F G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:10.095 / 06:44.812  
:44+A#4 19 .. ...  +... ..v05 ...  +F-5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:10.153 / 06:44.812  
:45+... .. .. ...  +F#5 19v0F G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:10.210 / 06:44.812  
:46+... ..v14 ...  +... ..v05 ...  +A#5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:10.268 / 06:44.812  
:47+... .. .. ...  +A#4 19v0F ...  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:10.326 / 06:44.812  
:48+A#5 19 .. G00  +... .. .. ...  +F-5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:10.383 / 06:44.812  
:49+... ..v14 ...  +... ..v05 ...  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:10.441 / 06:44.812  
:50+F-5 19 .. G00  +... .. .. ...  +A#4 19v16 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:10.499 / 06:44.812  
:51+... ..v14 ...  +A#5 19v0F G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:10.556 / 06:44.812  
:52+A#5 19 .. G00  +... ..v05 ...  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:10.614 / 06:44.812  
:53+... ..v14 ...  +F-5 19v0F G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:10.672 / 06:44.812  
:54+F#5 19 .. G00  +... ..v05 ...  +A#5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:10.729 / 06:44.812  
:55+... ..v14 ...  +A#5 19v0F G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:10.787 / 06:44.812  
:56+C#5 19 .. ...  +... ..v05 ...  +F-5 19v16 G00  +... .. .. ...  +... .. .. ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:10.845 / 06:44.812  
:57+... .. .. ...  +F#5 19v0F G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:10.902 / 06:44.812  
:58+... ..v0A ...  +... ..v05 ...  +A#5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:10.960 / 06:44.812  
:59+... .. .. ...  +C#5 19v0F ...  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:11.018 / 06:44.812  
:60+F-5 19 .. G00  +... .. .. ...  +F#5 19v16 G00  +B-4 1B .. ...  +... .. .. ...  +... .. .. D00  +B-5 1Av0A ...  +... .. .. ...  Position: 00:11.076 / 06:44.812  
:61+... ..v14 ...  +... ..v02 ...  +... ..v07 ...  +... ..v0A ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:11.133 / 06:44.812  
:62+G#5 19 .. G00  +... .. .. ...  +C#5 19v16 ...  +B-3 1B .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:11.191 / 06:44.812  
:63+... ..v14 ...  +F-5 19v0F G00  +... .. .. ...  +... ..v0A ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:11.249 / 06:44.812  
::0+A#4 19 .. A03  +... ..v05 ...  +... ..v07 ...  +C#5 1B .. ...  +D#5 09 .. ...  +... ..v00 ...  +B-5 1Av0C ...  +... ..v00 ...  Position: 00:11.306 / 06:44.812  
::1+... .. .. ...  +G#5 19v0F ...  +... .. .. ...  +... ..v0A ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:11.364 / 06:44.812  
::2+F-5 19v14 G80  +... ..v05 ...  +F-5 19v16 G80  +C#5 1B .. ...  +D#5 09 .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:11.422 / 06:44.812  
::3+... .. .. G00  +A#4 19v0F G80  +... ..v07 ...  +... ..v0A ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:11.479 / 06:44.812  
::4+A#5 19 .. G00  +... .. .. ...  +G#5 19v16 G00  +C#4 1B .. ...  +D#4 09 .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:11.537 / 06:44.812  
::5+... ..v14 G00  +F-5 19v05 G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:11.595 / 06:44.812  
::6+F-5 19 .. G00  +... .. .. G00  +A#4 19v16 ...  +... ..v00 ...  +C#5 1Bv16 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:11.652 / 06:44.812  
::7+... ..v14 ...  +A#5 19v0F G00  +... .. .. ...  +... .. .. ...  +... ..v03 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:11.710 / 06:44.812  
::8+A#5 19 .. G00  +... ..v05 G00  +F-5 19v07 G00  +... .. .. ...  +C#5 1Bv16 ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:11.768 / 06:44.812  
::9+... ..v14 ...  +F-5 19v0F G00  +... .. .. G00  +... .. .. ...  +... ..v03 ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:11.825 / 06:44.812  
:10+F#5 19 .. G00  +... ..v05 ...  +A#5 19v16 G00  +... .. .. ...  +C#4 1Bv16 ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:11.883 / 06:44.812  
:11+... ..v14 ...  +A#5 19v0F G00  +... ..v07 G00  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:11.941 / 06:44.812  
:12+A#4 19 .. ...  +... ..v05 ...  +F-5 19v16 G00  +... .. .. ...  +... ..v00 ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:11.999 / 06:44.812  
:13+... .. .. ...  +F#5 19v0F G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:12.056 / 06:44.812  
:14+F-5 19v14 G00  +... ..v05 ...  +A#5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:12.114 / 06:44.812  
:15+... .. .. ...  +A#4 19v0F ...  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:12.172 / 06:44.812  
:16+A#5 19 .. G00  +... .. .. ...  +F-5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:12.229 / 06:44.812  
:17+... ..v14 ...  +F-5 19v05 G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:12.287 / 06:44.812  
:18+F-5 19 .. G00  +... .. .. ...  +A#4 19v16 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:12.345 / 06:44.812  
:19+... ..v14 ...  +A#5 19v0F G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:12.402 / 06:44.812  
:20+A#5 19 .. G00  +... ..v05 ...  +F-5 19v07 G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:12.460 / 06:44.812  
:21+... ..v14 ...  +F-5 19v0F G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:12.518 / 06:44.812  
:22+F#5 19 .. G00  +... ..v05 ...  +A#5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:12.575 / 06:44.812  
:23+... ..v14 ...  +A#5 19v0F G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:12.633 / 06:44.812  
:24+C#5 19 .. ...  +... ..v05 ...  +F-5 19v16 G00  +... .. .. ...  +... .. .. ...  +C-5 1C .. D04  +... .. .. ...  +... .. .. ...  Position: 00:12.691 / 06:44.812  
:25+... .. .. ...  +F#5 19v0F G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:12.748 / 06:44.812  
:26+C-5 19v14 G00  +... ..v05 ...  +A#5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:12.806 / 06:44.812  
:27+... .. .. ...  +C#5 19v0F ...  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:12.864 / 06:44.812  
:28+G#4 19 .. G00  +... .. .. ...  +F#5 19v16 G00  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:12.922 / 06:44.812  
:29+... .. .. ...  +C-5 19v05 G00  +... ..v07 ...  +... .. .. ...  +... .. .. ...  +... .. .. D00  +... .. .. ...  +... .. .. ...  Position: 00:12.979 / 06:44.812  
:30+... ..v14 ...  +... .. .. ...  +C#5 19v16 ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:13.037 / 06:44.812  
:31+... .. .. ...  +G#4 19v0F G00  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  +... .. .. ...  Position: 00:13.095 / 06:44.812    

danwills

I'm currently still wondering around how (in an openmpt123-code-world) one might be able to solo individual 'channels' of the mod (not stereo channels, the 'columns' of a 'pattern'), or how to mute-all-but-a-specified-instrument, as I'd love to add those as separation-options to the importer eventually.

Any pointers on what I could look into to support these two types of soloing would be most welcome! I found libopenmpt_impl.hpp which seems to contain other stuff that openmpt123 uses like mod.get_current_row(), but I haven't figured out what methods could mute channels or instruments yet and any pointers there would be very helpful.

In terms of code, i'm happy to either make a patchfile for you to take a look at, or if you want to make a branch in the repo, I'll commit to that (assuming I'm allowed!).. I am fairly sure I've currently broken regular pattern-mode with my changes, so I'd like to make sure that I can re-do what I did without breaking the existing behaviour before showing y'all anyway, I just thought it probably can't hurt to be ready early in case there's svn stuff to work out.. all good!

danwills

Heya guys! Apologies this took me far too long but I've managed to get a visual example made so you can check out the kind of stuff you can do with my Houdini importer/wrapper in its current (very prototype, but functioning) form:

https://www.youtube.com/watch?v=jsPzG0YZu20

I'm still so keen to show anyone the code diffs for mainly openmpt123 and talk it over, I'd love for these changes to be able to hit the trunk with you guys one day!! Any thoughts on what I could do to help that happen more easily I'd love to hear them!

danwills

Just wanted to update ya on this, a new better version of the video is now online:

https://www.youtube.com/watch?v=O2iy0EzVuVA

And I'm making one for Deadlock by Elwood next .. I coincidentally noticed (long after after I had chosen it) that it is/was in the Mod Archive top 10!! Learned this via another youtube video only today!.. A visualization of Deadlock will be my next upload.

I'm still very keen to hear if MPT peeps are interested in looking at my openmpt123 changes? I can provide patch-sets or commit to a branch if you want to make one, either way!

danwills

I uploaded my rough changes to openmpt123 on github, as well as the HDA with its python module, and wrote a bit of a readme:

https://github.com/danwills/openmpt-houdini-importer/blob/main/README.md

I've also been continuing to refine the visualizations, a recent highlight being this one for 'Deep in Her Eyes' by Skaven that I rendered using Mantra (a software-renderer that comes with Houdini) at 4k as I've been seeing some serious glitching/compression-artifacts with other recent uploads (OpenGL renders at 1k), upping the res and proper motion-blur seems to help a fair bit!

https://www.youtube.com/watch?v=4WMXwquRiWE