Go to www.hooktheory.com

Basic Drum kit as an instrument in band section

Hello would it be possible to add to the different instruments assignable to the hookpad 4 melody tracks a " drumkit instrument "?
This would allow to write ultra simple drum patterns that are not listed in the “band drum section” of course by sacrificing one or 2 “melody tracks” (but even in this case it could be very very usefull).

Another solution would be to allow the import of one audio file, but if i remember a previous discussion about this topic , you said that this function is not a priority for you.

Allowing midi sync with a daw or something like Ableton link could be a solution too.

Please consider this request , because hookpad is an awesome tool but this limitation in terms of rhythmic variety imply that users who compose in differents musics styles like (Afro,Caribbean , some Latin stuffs and others…) cannot use it to its full power.


I too would like to add samples and options to the service so that I can compose the type of music I perform! ~( ‘w’)/

1 Like

This is an interesting idea. In principle it wouldn’t be difficult to add a drum patch as a “lead” instrument, where the samples respond to the notes in the staff. There’s a couple issues with this though.

The first is that Hookpad was not designed to adjust velocities of single notes; all of the rhythmic patterns have been engineered with predetermined velocity values out of the box. For custom drums this arguably may be less useful since we would need to pick a default velocity for each note.

Second, we would need to make these drum “notes” not respond to key changes or transpositions, which is unlike how other notes act in Hookpad. A related issue is that to preserve the midi mappings, it may create awkward entry issues, e.g. having to use sd #4 for a crash sample for instance.

All of the issues are solvable of course, but unfortunately it’s not as simple as just adding the instrument in the list.

Syncing to a DAW would be ideal, but we have not identified a technology path that makes this possible yet. At one point we explored a VST plugin that could communicate with Hookpad via midi but it didn’t go anywhere. If anyone here is more experienced with VSTs and thinks this is possible, we’d be happy to have a chat


Hi thanks for the answer.

I better understand all the problems that the implementation of such a function will generate.

  • Concerning the velocity a fixed velocity would certainly not be the ideal but would at least allow to have a coarse rhythmic support but nevertheless useful.

  • Concerning the transposition indeed it is a big problem.

  • Another possibility would be to use the sync with youtube as audio support for the composition…I have already tried this type of experience by uploading a beat on youtube and sync it to hookpad to compose on it but it was very tedious, especially because because in this configuration, there are 2 play buttons (one for youtube and one for hookpad).

If we could sync a youtube audio, manage it in hookpad with the same play button as that of hookpad, that the sync and the playback of the audio be maintained whatever the measure or the loop played, that could be a viable solution.

Please let me know what you think about this last solution.


Love the idea of a VST version of Hookpad!

We are also interested in the third option you’re describing, effectively allowing users to harmonize or otherwise play along with a youtube video. This is also doable but challenging. The youtube API doesn’t allow us to command a video to play frames at given times, rather, we have to always be reacting to the youtube progress. You can notice this in theorytabs where the scrubber sometimes “jiggles” back and forth. This is the theorytab updating its scrubber position in real time based on the queried YouTube play position. The sync gets off for all sorts of reasons, but mostly network issues or browser lags. Syncing Hookpad playback would then require us to constantly be seeking the Hookpad timeline to match the YouTube one. This is doable, but in our experiments it was causing undesirable effects like Hookpad dropping notes or cutting other ones short.

I think that there are certainly ways around this, perhaps we could only reseek when the sync is off by an unacceptable amount, or perhaps we could brainstorm how to reengineer seeking to not be so disruptive, but at the moment it’s not a simple fix. We are currently in the process of migrating Hookpad’s entire playback scheduler to ToneJS, which is more robust in many ways than the current homebrewed solution, but the seek problem exists in that framework as well.


Ryan thank you very much for all these details!
I understand that all these eventualities are not easy to implement.

I was thinking of another solution, “the possibility of importing midi files into the band drum section”
(we could edit the desired patterns from the daw , and import them into drum section)
You could also communicate us the correspondence “which note for which instruments” and possibly give the ability to save some patterns in the band drum section.

Do you think that such a solution would be easier to implement ?

It’s funny that you mention that because that’s actually what we’re already working on. Dennis, who designs all of our drum patterns, had requested that we figure out how to let Hookpad read drum MIDI files, since it’s a lot easier for him to design drums by creating MIDI files in his DAW. Also it will allow us to make drums more realistic sounding since we’re adding the ability to randomize the samples (to get variety in certain sounds) and to choose different samples based on the MIDI velocity, more like the way a sampler would work in a DAW.

However, these are designed to be basic patterns that exist in a single measure rather than longer ones, so we’d have to figure out a way to tell Hookpad where you would want the pattern to start, and how long to play it for. Maybe we could do this by having a special drum instrument that is linked to an uploaded MIDI file.

Unfortunately this will require the new ToneJS framework migration to be complete before it ships because that’s where this new code exists. We’re eager to get it out, but there are a million little things to work out, since it’s a pretty big update, and we need to make sure that all of the current functionality still works.

1 Like


I am really happy to hear that there are some good things going on to make hookpad even better. I can’t wait for this migration to go well, and to see this drum midi import capability implemented.
Thanks for everything Ryan.

1 Like

One of the things I’m working on is to get each of our drum rhythms to play with each of our drum kits. I’m hoping to achieve this in a way that lets me implement new patterns and kits without much effort in the future.
I’m always looking for inspiration for new drums. So if you have ideas for drum sounds or patterns you want to have implemented you can just post a few links to some examples and I’ll be happy to add them to our library if possible.


Can there not be some kind of ‘free writing’ option so that drumlines are not tied to the lead or basslines at all?

How can a true musical artist BE an artist if all they are able to even do is the melody and then some computer tries to write the melody and support for them?

There should be no limit to the freedom of the composer to impose any changes they want.

So…since you have people designing drum patterns, does this mean that freestyle drum composition is not a thing with this platform? ~( ,m,)~