jit.gl.hap provides native support for the Hap quicktime codec. Images are decoded and rendered directly to an OpenGL texture. Non-hap quicktime files are also supported. To play Hap optimized files, the quicktime codec must be installed, found here. For general information about Hap, see the Hap project.

Currently only supported on 32 bit Macs, OS 10.6 and later and 32 bit Windows. Requires Max 6 and later.


March 15, 2013 | 10:10 am

You are the man Rob! Thanks!

March 17, 2013 | 2:14 am

Hello, are there any possibility that this can be made for Max 6.0.8 as well?

August 15, 2013 | 5:42 am

hi Rob. thank you for this tool. its very exciting. however, it isnt working on my side at all. I have downloaded the necessary hap files to run the codec on my machine, installed them, and converted some files to HAP and HAP-Q using mpeg streamclip. However, when attempting to play in Max, it either it doesnt play the clip at all, or the fps meter is running but no image. Can you advise? (Macbook Pro 2.8GHz, Intel Core i7 + Max 6.1.3)

August 22, 2013 | 6:51 am

Same problem as Joshua. It worked (and still working on MacBookPro Retina OS 10.8.2 + Max 6.1.3), but not on brand new Macminis bought this week (it worked on some that I bought last May).
It’s really urgent, can you help us?



August 22, 2013 | 2:20 pm

hey guys, not sure what the issue could be.
would you mind posting this to the forum? it will be much easier for me to track and respond.

October 5, 2013 | 12:05 pm

This is awesome! Wish I had seen it out a few months ago before building a big VJ patch. The decrease in CPU usage as compared with playing 720p ProResLT movies is pretty incredible. I’m going to change my patch and video library over to Hap!

Any chance of having a mode where when rate is increased it only reads frames from disk that are needed to fulfill a certain frame rate (like 30 fps) an skips those in between – this would mean you could play movies at, say 8x without using 8x the disk bandwidth. I hacked together a way to do this using frame commands with a metro and a counter, but having it in the object would be cool. This would make it much more plausible to stream a pair of 720p Hap movies from a Firewire800 drive.

October 8, 2013 | 12:28 pm

yeah, the best way to play with speed changes is to stop the movie, and control using the frame message. otherwise, quicktime takes over playback, and there’s no way to prevent that from happening.

sounds like you came up with a good solution though.

March 3, 2014 | 7:19 pm

jit.gl.hap has just been updated to fix the following issues:
– weird cropping in some instances when going fullscreen
– causing non-automatic objects to change their dimensions
– loopreport will now report when a file reaches the end even is looping is turned off

happy hap-ing!

March 3, 2014 | 9:07 pm

Thanks Rob!

March 4, 2014 | 1:56 am

Thanks, cool!

March 4, 2014 | 3:59 am

& with ‘loadram’ …


March 4, 2014 | 5:46 am

Hey Rob, is the version through Package Downloader up-to-date ?

March 4, 2014 | 6:55 am

so apparently Max Package DOwnloader directly grabs latest disstrib from Github repos, so teh answer should logically be yes :)

March 4, 2014 | 8:01 am

Rob just updated the package-info.json file so you should see the update in max package downloader although since it pulls master you’ll always be up to date if you press download.

March 6, 2014 | 2:39 am


This is probably stupid question… How to install HAP codec on Windows (or: where to download it?). Typically I’m using Rob’s [jit.gl.hap] external on Mac, but I want to (oh, actually I don’t want to, but I have to) move one of my projects into Win.

March 6, 2014 | 4:21 am

Thanks Nat


(@Yaniki : it says "Currently only supported on 32 bit Macs, OS 10.6 and later" so… you have to do something else)

March 6, 2014 | 4:35 am

Thanks… this is something I thought…

May 29, 2014 | 9:00 am

hey guys, i’m excited to announce that vidvox has just released the Hap codec on windows:

i have updated the hap package to version 1.0.3. this includes a windows external that gives similar performance as the mac version.

additionally, the update fixes an issue with loading audio-only files, and allows for changing the name of the output-texture.

May 29, 2014 | 1:14 pm

Yes, I know! This is a "news of the day" for me ;-)

October 21, 2014 | 4:48 am

After upgrade to Yosemite and Max 6.1.9 I’m experiencing very low performance, when I’m working with [jit.gl.hap]. I reinstalled hap codec and the [jit.gl.hap] (latest versions), but without any positive change.

I made some simple tests: first: I connected fpsgui to the [jit.gl.hap] and – and this is strange – the framerate is not falling, but if – for example – I’m using [jit.gl.videoplane] receiving video data from [jit.gl.hap] I see, the content of the [jit.gl.videoplane] is refreshed only once per few seconds. From the other hand: soundtrack attached to the video file is played without any drops – seems something is wrong when [jit.gl.hap] is decoding o transferring data into other objects?

I’m working on MacBook Pro 17inch (i7, 16GB RAM). On the same hardware configuration, but with Max 6.1.8 and Mavericks, hap was working perfectly.

Does anyone of you encountered this problem?

October 21, 2014 | 9:34 am

Hi Yaniki,
Do you mean your video plays some seconds, freezes and then restarts and so on?

I’m using jit.gl.hap without any issue with Yosemite and Max 6.1.9 (MacBook Pro 15′, 16GB RAM, Late 2013).


October 30, 2014 | 6:24 am

I experimented with the problem bit. The results are rather positive. Previously, I used hi-res video files (3840x1080px). It worked great under Mavericks, but not under Yosemite. But typical HD files (1920x1080px) coded with HAP are still played perfectly on my computer with [jit.gl.hap] – so (even if I experienced a drop in performance) for most applications [jit.gl.hap] is still the best and highly efficient solution.

November 9, 2014 | 1:11 pm

I’m on win7. I’m experiencing a similar issue as Yaniki.

I’m only getting started with jit.gl.hap so I’m not sure what causes the issue. I have a a 75 seconds long 1920×1080 hapQ file at 24fps. I want to play it in a loop. It runs fine a couple of times but then it stops. Pressing play again will resume the playback where it should have been if it did not stop, play for about 2 seconds then stops again. Of course there is no issue with the jit.gl.render since it’s still rendering the videoplane at 60fps without any problems.

I will test with a smaller file but in theory my computer should run it. The same HapQ file runs well in TouchDesigner.

November 9, 2014 | 1:48 pm

Strange. Seems it’s rather connected to Max, not to OS.

November 9, 2014 | 2:03 pm

Yeah I think it’s tied to the object or Max. Definitely not the OS. I use HapQ just fine in other contexts.


I tested with the same file but encoded with the Hap codec. So it’s about half the bit rate. I get the same issue. But I also noticed when I get the issue:

Suppose a new jit.gl.hap object that wasn’t used before. I read a file and send a play message to it. Doing this I get no issue. But as soon as I send other messages while the video is playing, then it will play for roughly 2 seconds and stop until I press play again, where it will play for another 2 seconds.

  • This reply was modified 1 year by  jbl.
November 29, 2014 | 9:22 am

Great work !

Curious to know, if non-Hap codec files are loaded in, are they then automatically re-encoded into the correct codec format ? If so I am guessing the benefit of encoding all my files to Hap first is to save some CPU that would need to take place during the encoding process.

December 9, 2014 | 3:41 pm

I have the same problem that jit.gl.hap stops playing, when sending another message to it after "start". When I send "start" again it plays roughly for 2 secs and then stops again. This only happens on Windows on OSX Mavericks it runs fine. Is there any solution or workaround to this? Is it ok performance wise to send "start" every frame?

December 10, 2014 | 7:59 am

Oh. I did not know it was on windows only. I had the issue and the way around it is quite simple. add @autostart 0 (or is it autoplay?) so the object doesn’t use its internal playback system. Then just create an external player using a counter object banged by a metro object. That way, everything is handled with basic max object and you can do anything you want. It’s much cleaner.

December 10, 2014 | 1:13 pm

Thanks JBL, I figured it out myself and am happily running 8 HD videos with 60fps now :) The only limit at the moment is that it only uses 1 thread. I get maxed out at 12% load with an i7. But I guess for that there is no simple solution…

December 22, 2014 | 7:23 pm

@Django – i was having a similar problem with videos only playing for 2 seconds then stopping on OS X 10.9 and Max 7. It only happened when I loaded the videos with Overdrive on. I found that if I always load the video file into jit.gl.hap in the main thread (not the scheduler) by using eg deferlow, it worked fine even when overdrive was on. It didn’t matter what thread the video was banged or started/stopped in, just what thread it was initially loaded in.

January 5, 2015 | 9:30 am

HAP codec is now available under AVF: http://vdmx.vidvox.net/blog/hap-in-64-bit-avfoundation

Maybe this is a time for 64bit [jit.gl.hap]? Or [jit.movie] is good enough now?

  • This reply was modified 1 year by  yaniki.
  • This reply was modified 1 year by  yaniki.
April 4, 2015 | 10:06 am

@Yaniki : does that mean you can only use this version with max 64-bits ? or does it work with the 32-bits version ? I already have the problem i described on the forum in the thread entitled ‘media problem with jit.gl.hap’ o I don’t want to screw up things more and uninstall a wrong version of the codec without more informations.

April 7, 2015 | 2:47 am

[jit.gl.hap] is 32bit only ;-) (you have to run Max in 32bit mode). The codec is now both 32/64bit – so, theoretically there is a change for 64bit version of [jit.gl.hap] in future.

Of course "hap mode" for build-in Max [jit.movie] will be even better…

April 7, 2015 | 10:54 am

Of course "hap mode" for build-in Max [jit.movie] will be even better…

I also hope this will happen in the near future as I’m now stuck with the current version.

May 13, 2015 | 9:59 pm

+1 on th gl.hap in 64 bit request :-) !
HAP codec is now available under AVF: http://vdmx.vidvox.net/blog/hap-in-64-bit-avfoundation
Maybe this is a time for 64bit [jit.gl.hap]? Or [jit.movie] is good enough now?

May 14, 2015 | 2:17 am

could we poor win64 users get a little hope to see some video in Max7? ;-)

June 8, 2015 | 1:03 am

One thing that I like with jit.movie and that I don’t find with jit.gl.hap is the ‘clear’ message.
But I’m a beginner, so maybe there’s a known workaround…

July 9, 2015 | 6:37 am


I’ve seen that the hap codec is now available for DirectShow for Windows in 32 bits and 64 bits.

I’ve install it, but it doesn’t seems to work with jit.movie, perhaps because output_texture is not supported on windows 64bits.

Maybe there is some stuff to do for Cycing’74 to make it work, but I think it (and I hope) it could work, as it work within Unity3D 64bits.


August 13, 2015 | 4:35 am

hi Rob
First of all thank you for this !
Quick question:
Is a compatible hap version for Max 7 in the works?

August 13, 2015 | 6:19 am

Hi MarieKe

jit.gl.hap is compatible with Max7 in 32bit mode. you meant 64 bit right?

August 13, 2015 | 6:28 am

yes sorry i mean 64 bit

September 29, 2015 | 3:06 pm


coming back to ALAINs question: "One thing that I like with jit.movie and that I don’t find with jit.gl.hap is the ‘clear’ message" – I asked something similar quite some time ago.


I still don’t know, how to "delete" the hap-content.
I mix several hap-objects and send them to a cornerpin or videoplane object. Even if I dispose one hap-object and meanwhile have another hap-object running content, I see the last frame of the first one, when I load a new file into it.
Really annoying. What is the way to really clear it?


September 30, 2015 | 10:34 am
— Pasted Max Patch, click to expand. —
Viewing 43 posts - 1 through 43 (of 43 total)

Explore More

Subscribe to the Cycling '74 Weekly Newsletter

Let us tell you about notable Max projects, obscure facts, and creative media artists of all kinds.

* indicates required