These are archival release notes from version 2.18 - 2.26 of Hookpad (releases between 2020.09.09 and 2023.09.06).
- For newer releases see Hookpad Release Notes.
- Chiptune Modern Kit
- Chiptune Vintage Kit
- Colors in section GUI now consistent with rest of GUI.
- Drum patterns with 2-bar pickups are now working properly before new band markers
- Fixing band templates
Blues Shuffle, and
Dark Electro, which previously were not working
- Fixing drum pickups, some of which were being played 1 bar too early
- Fixed bug introduced in 2.26.3 causing rock guitars to stop playback
- Fixed demo song link for
- Enchanted Nebula (Ambient)
- Celestial Drift
- Resonant Tusk
- Transcendent Beep
- Reverberant Growl Bass
- Serene Reverie
- Dreamscape Arp
- Reverberant Growl Pad
- Acoustic Chorus Guitar
- Reverberant Growl
- Golden 80s
- Electro Ambience Kit
- Ambient Dissipation
- Dreamy Gong
- Rev Cymbals
- Ambience 1
- Ambience 2
- Fixed absolute chord graphics having phantom accidentals. Steps to reproduce before fix: enter in a I chord, alter it with b5, toggle add9 on and off, each time it adds a flat symbol
- Fixing issue where certain instruments had a gap between the end of the main sample and the release sample
- When clicking on band change flags, band GUI now properly updates columns to refect the new selected instrument
- Instrument sample fadeouts for long notes now properly factor in playback-rate multiplier
- MIDI export now attaches program change messages to each track corresponding to the General MIDI instrument number that most closely matches the instrument patch. This will allow DAWs that smartly choose instruments on MIDI import to correspond more closely to Hookpad projects
- Fixing issue where tempo changes inside of a looped region would cause playback issues on the final measure of the loop
- Fixing bug where MIDI export omitted section, key, and tempo information when doing a full export and the project had a pickup measure
- No longer applying a lookahead time to MIDI export of Harmony and Bass instruments
- Fixing bug where MIDI export of harmonizer instruments sometimes chose the wrong chord
- MIDI melody import now works with MIDI files with upper case extensions “.MID” and “.MIDI”
- MIDI region export no longer exports ghost notes at the beginning of midi files, introduced in 2.25.x
- Note preview now respects band UI octave and transposition
- When editing the tempo using the numeric form, clicking outside now properly restores focus to Hookpad
- Added new band templates:
- Added new demo tracks:
Rainbow Street (Ska Rock),
Giant's Dance (Folk Metal)
- Fixing bug where sheet music and tab export were not responding to octave settings in the Band GUI for composite-type instruments
New instrument patches
- Reggae drum kit plus new reggae rhythms
- Electro Kit
- Dark Electro Kit
- Industrial Kit
- Synth Guitar
- FAW Lead
- Random Glider Lead
- Dark Pad
- Chrings Pad
- Chrings Bass Lead
- Chrings Bass
- 16th Super Saw Pad
- Hybrid Piano Lead
- Dark Pluck Bass Lead
- Dark Pluck Light Bass Lead
- Noise Percussion Patterns
- Drum Rises
MIDI Export features
- MIDI export tracks are now labeled by instrument group name instead of by rhythm to provide better track consistency
- MIDI export track names are now prefixed by a track type identifier (L, H, B, D) for increased clarity in DAW
- MIDI export now contains section names as MIDI meta markers
- Added app preference to ignore band volumes during MIDI export
Implemented a dynamic voicing lookahead window to improve playback performance at the start of a project
Optimized several instrument patches to use less sound files to decrease their memory footprint
Added option to export click track in MP3 and WAV exports (app preference)
Sheet music export files now append export type in filename (e.g. “lead”, “score”, “tab”)
Lyrics now combine multiple underscores into a single one for skipping notes
Added “Attach Youtube” to an icon in the primary Hookpad navigation
- Changing the volume of a drum track in the band browser during playback no longer causes playback skipping
- Click track now properly responds to Master Volume fader
- Fixed bug causing mute, patch volume, and patch octave changes to not always properly reflect in MIDI and sheet music export until an instrument change was made
- Fixed bug where undoing/redoing adding or removing a band member caused associated notes to sometimes drop out
- Looping made more robust to fix issues associated with dropped notes or double-played notes when loop region is modified during playback
- Double clicking volume in the band GUI to reset the volume no longer causes the score to revoice
- Reworking tempo changes during playback to prevent multiple redundant voicing of notes, chords and drums
- Sections now separate out pickup measure
- Playback voicing now responds more quickly responds to cut/copy/paste/undo/redo
- Added an optional rewind control to move the playback cursor to the beginning of the project. Enable with Settings → App Preferences → Show Rewind Control.
- Fixing keyboard shortcuts for cycling inversions, embellishments, and secondary chords. Broke in 2.25.8
- Fixed ordering of saved band templates so that newest is on the top of the list.
- Fixing bug causing score export to sometimes export an additional empty stave with one measure.
- Refactored reducers to never modify actions in preparation for session replay.
- Patched a security vulnerability associated with puzzle generation.
- Restoring File → “Open My Student’s Songs” feature for teachers with a Hooktheory Classroom license. This was accientally removed in a previous release.
- Adding Danish key bindings for durations
- Preview mode/lock note entry now will play sounds during playback to allow for easier demoing of different melodies over an existing progression. Note entry sounds had been disabled during playback to avoid clashes with the existing melody.
- Fixing bug introduced in 2.25.3 causing midi input from the piano keyboard to not work
- Fixing bug where German key bindings were not properly adding durations
- Fixing bug introduced in 2.25.3 causing midi input to not work
- Allowing midi input latency slider to go up to 200 ms.
- Implemented setting to allow multiple players with different bands to work on a single webpage.
- Added new
- Updated band templates with new drum patterns
- Fixing bug causing seeking to make drums stop playing in band region of the new cursor location
- Fixing bug causing songs with triplets and multiple voices to crash in some cases if a staff had no notes in it in one of the secondary voices.
- Adding a micro offset to mp3 export to make the resulting file line up better with WAV export.
- Fixing bug causing note durations close to the sound buffer duration to prematurely cut off instead of looping.
- Fixing bug causing seeking to measures during playback not to work (introduced in 2.24.0 with the move away from the ToneJS scheduler and transport)
- Fixing bug causing WAV and MP3 export to have the incorrect spacing between the sound file start and the start of the performance (should be one quarter beat in the given tempo, but was slightly longer than this previously)
- Fixing bug causing certain keyboard shortuct combinations to accidentally save Hookpad projects as chord crush puzzles.
- Improved YouTube video attach textbox to accept a broader amount of URL formats
- Adding volume controls to YouTube video to balance Theorytab submissions with instrumental audio.
- New drum samples and patterns for Jazz kit
- New “Songwriter” drum kit
- Adding demo tracks “Moonride” and “Colossus”
- Fixing bug causing notes and chords to sometimes drop at the beginning of a loop
- Fixing bug causing some drums to export to MIDI an octave too low
- Fixed two playback issues for the Hookpad Player introduced when merging Chord Crush branch into Hookpad branch. This will allow an eventual new build of the Hookpad Player.
- Fixing synchronization issues to allow a new version of the TheoryTab player to be pushed to the website
- Unifying sequencer framework to push new changes to the Chord Crush playback engine.
- Disabled most console logs
- Bumping sound library to 3.5
- Fixing sync issue between note lightup and audio playback causing the lightup to be around 0.1 seconds late.
- Fixing chord input with MIDI controllers for keys other than C Major.
- Fixing bug where the view would not scroll vertically to keep track of the cursor.
- Adjusting lookahead buffer to 3 seconds to account for slower draw rendering on some machines. This will give the playback engine a longer buffer without causing glitches in playback.
- Fixing Wav and MP3 export for entire regions, introduced in 2.24.0.
- Fixing bug where adjusting the mute state of an instrument sometimes affected adjacent bands
- Removing demo song
A Day At The Beachwhile we perform a performance audit on it.
- Fixing bug causing some
Open from diskactions to fail
- Adjusting pipeline of MP3 export to address stalling issues on Safari.
- Fixing bug created in 2.24.0 where certain instrument settings were not being properly applied to harmony instruments
- Fixed lower lines not rendering on load. This was caused by the score div having an incorrect height on load; caused by a CSS variable scope race condition between first paint and styles being available.
This release represents a (2nd) rework of our sequencer framework to address the performance problems introduced in 2.22.
- Reverting sequencing, timeline, and transport to the Hooktheory-built version present in 2.21.x
This release represents a rework of our sequencer framework to address the performance problems introduced in 2.22.
- Chord and melody translation and voicing now happens during playback in chunks rather than on project load. This will result in the faster project load times that users had in 2.21.
- Reverting back to the scheduling model from 2.21 where notes buffers are retrieved and scheduled up to 3 seconds before their playback. This removes the convenience of project state changes being reflected immediately in the performance, but allows for a much larger buffer time for CPU-intensive draw renders to happen without immediately affecting the performance computation, and allows us to preserve the ToneJS transport. This is our best guess at what was causing stuttering audio that users were experiencing.
- Fixing bug causing colors to not show up on chords in the Tone Sets palette, introduced in 2.22.0
- Rolling back a change made in 2.22.6 to stagger voicing, which may have caused music to drop out in some cases.
Continuing to optimize performance since moving to ToneJS scheduler in 2.22.0.
- Score no longer re-renders virtual DOM during playback
- Note gui no longer re-renders virtual DOM when adding notes
- Added some debugging utilities to learn which prop changes cause components to re-render when there is no visual change requiring the re-render
- Removed some obfuscation for improved performance
- Staggered ToneJS scheduling
- Fixing bug causing notes at cursor to sometimes not play
- Audio recording (WAV and MP3) migrated from web worker to audioworklet ahead of deprecation of scriptProcessorNode
- Audio contexts unified to be able to run playback using latencyHint = “playback” to hopefully address performance issues that some users are seeing.
- Sample buffers being disposed immediately after expiration. This resulted in a 30% reduction in CPU load in our internal testing, we’re hoping this can also mitigate the audio glitching that some users are experiencing.
- New “system” option for settings → appearance. When selected, Hookpad will use your system’s appearance (light / dark). Can still override with light / dark appearance settings.
- Measure selection WAV and MP3 recordings now do not include notes in measures outside of the measure selection.
- Adding “Pop Light” drums that use samples from Hookpad < v2.22.0
- Adding playback start delay to help with audio glitching since 2.22.0
- Fixing a bug introduced in 2.22.0 causing Locrian, Harmonic Minor, and Phrygian Dominant scales to not load properly.
- Fixing a bug causing MP3 export to fail introduced in 2.22.0
- Fixing a bug causing some drum patterns to have empty starting and fill patterns introduced in 2.22.0
- Hookpad’s audio sequencing is now fully migrated to ToneJS. This will result in better playback performance and looping management.
- Voicing of chords and notes now happens in real time rather than during playback, so this should result in enhanced playback performance for most users.
- Many drum patterns can now be played on multiple drum kits, allowing for over 1,500 new drum patch combinations
- New orchestral wind instruments including woodwind and brass.
- New color accessibility palettes to recolor chords and notes with CVD-friendly colors.
- Fixing a bug causing key-switch midi events to not be handled properly on midi import
- Added Google Tag Manager
- Improved note/chord GUI on small screens (e.g., iPhone in portrait). The context GUI is now overflow-x for device widths < 1200px. You can scroll left and right to access all options. For device widths > 1200px, nothing has changed. The chord palettes on the right (magic, popular, etc) are overflow-x, keeping the duration and primary chord buttons on screen, even when scrolling through options in one of the palettes.
- Fixing bug causing certain triplet rhythms to not export correctly
- New app setting for showing tooltips on hover (allows turning off tooltips).
Suggested by @jmmliberty
- Increased enter delay of tooltips from 100 ms to 1000 ms.
- Added a delete button in the YouTube sync GUI to easily remove the attached YouTube. Before had to go to Preferences → Attach YouTube → deselect.
- Fixing bug introduced in 2.20.4 causing some sheet music exports to fail
- New color for scale degree 5 “blue” in dark mode to improve visibility.
- YouTube sync GUI theme now matches new updated GUI themes as of 2.21.x.
- Added borders and round corners to each progression in the progressions palette.
- Dropdown menus in light mode have improved elevation. They became less prominent in 2.21.0.
- Modernized drop down menu item hover.
- Improved formatting of preferences → midi input latency.
- Improved formatting of lead track names seciton of melody inspector.
- Improved formatting of YouTube sync GUI.
- Updated swing tempo slider to use material.
- Updated attach YouTube modal with material input.
- Updated save as modal with material input.
- Removed padding between edit icon buttons in the control bar. They get even more compact when app preferences → show labels in GUI is off.
- New app setting for show nudge controls. Separated nudge controls from edit controls. Nudge controls show by default.
- New app settings for show lock control. Separated lock control from edit controls. Lock control shows by default.
- Edit controls are hidden by default since the keyboard shortcuts are standard and they are accessible from the edit menu.
- Key, meter, band, tempo change flags in dark mode use correct border color.
- Appearance setting (light mode vs. dark mode) now persists across sessions.
- Fixed color of absolute note labels in the bass sets palette bass chooser in dark mode.
- Fixed menu bar vertical scroll bar issue in macOS Safari.
- Removed appearance app setting from whitelisted project settings that are saved with projets.
- Fixed project settings not properly blacklisting app settings on load. This caused issues for songs saved with project settings that have since been turned into app settings.
- Refactored modal styling classes to use single base class for consistency.
- Refactored modals to use material buttons.
- Added badge to global zoom to show zoom level when not at default zoom.
- Improved visibility of text buttons. Some became less prominent in 2.21.0.
- Made play button more prominent. It became less prominent in 2.21.0.
- Made background of GUI in light mode a true gray rgb(235 235 235). Some users complained about the slight “pinkish” hue of the 2.21.0 release.
- Made the “hide” buttons for the lyrics editor, band editor, and sections navigation icon buttons instead of text buttons.
- Improved vertical alignment of radio buttons and their labels
- Added borders around primary buttons in the context GUI. (Still working on a solution for the duration buttons, but they are so thin, it ends up being worse with the borders).
- Made the Key, Beat, Tempo, Metrics controls collapse/expand as edit controls are shown/hidden in preferences.
- Improved styling of inputs in file → open modal
There are still a few things that need to be refined following the large refactor to support dark mode in the 2.21.0 release. These will continue to be pushed in the next days/weeks. Thanks for your patience and feedback!
- Fixed styling of input in search palette (introduced in 2.21.0).
- Fixed styling of note selectors in bass sets and tone sets palettes (introduced 2.21.0)
- Dark mode. To use dark mode, go to preferences → scroll to app preferences → appearance → dark.
- In light mode, added gray background to user interfaces.
- Collapsed key, meter, tempo, and metrics into a single UI button to reduce crowding
- New icons for horizontal zoom
- Round corners on note and chord buttons in the UI
- Fixing an issue causing certain triplet rhythms to fail in sheet music export.
- Bump to Material UI from v4 to v5
- Fixing an issue causing certain triplet rhythms to fail in sheet music export.
- Fixing an issue causing certain lyric combinations with quotes to fail lead sheet export.
- Fixing chord labels sometimes incorrectly sizing and positioning left of center on Safari and iOS Safari.
- Fixed a bug causing song metrics to not load when loading other assets
Quarter note and eighth note triplets are now supported in Hookpad. To make a triplet, select a half or quarter note and click on the “make triplet” button in the note GUI. Triplets must exist on a triplet grid, so this option will be greyed out for notes with invalid durations or invalid start beats. Currently you cannot record to or import MIDI to a triplet grid.
Song Metrics in Hookpad
Song metrics are now available! Compare how your song measures up to the average song in the Theorytab database.
You can now transpose Hookpad playback to be transposed relative to the displayed notes and chords. This is helpful for those of you who play transposing instruments (clarinet, saxophone, trumpet, horn, etc) and would like to have Hookpad playback align with your instrument.
- Fixing bug causing drums not to play when a pickup measure is added.
- Fixing bug causing lyrics in sheet music exports to appear in the wrong places in certain situations.
- Fixing bug causing guitar tabs to not export.
- Fixing bug causing sheet music export to fail when certain combination of lead instruments are used.
- Magic chord now displays suggestions in Harmonic Minor and Phrygian Dominant scales.
- Adding option to export sheet music in landscape orientation
- Fixing bug causing songs with the old
Clean Electric Lead Sustaininstrument to fail in some cases.
- Fixed left border on note staff
- Fixed bug causing white screen crash on drag-select when mouse-up occurs outside of the score and the cursor snap grid is set to 1/4 beat or beat.
- Added support for showMeasureLines configuration parameter. Used in Book One.
- Adding an input latency adjustment to control the placement of notes when recording.
- Fixing bug introduced in 2.19.6 causing sheet music export with “smart” rhythms to be dropping sixteenth notes
- Fixed bug causing playback to not properly reflect the current band settings immediately after deleting an entire band section
- Fixing drag and drop midi from the band browser for individual tracks.
- Fixing midi download in Theorytab players embedded in various parts of the site.
- Metronome now clicks by default during recording. This behavior is configurable in the preferences menu.
- Fixed bug causing projects containing certain combinations of guitar patches to fail to play on the first playback
- Fixing bug causing notes to not sound as they are inputted during recording mode
- Fixing bug causing projects containing a smart drum pickup in the last band to fail to load. This bug was introduced in 2.19.0
- Fixing bug where projects containing the instrument
Lead Guitar Single Notesfailed to load. This bug was introduced in 2.19.0
- Fixing bug associated with projects not loading in Safari. This bug was introduced in 2.19.0
Upgraded Sound Engine This update features a big overhaul of Hookpad’s playback engine. While much of this work was under the hood to enable more exciting features in the coming months, there are several improvements that will improve Hookpad’s workflow and performance immediately:
- Looping samples for most sustained instruments: This means that notes on most sustained instruments can be held indefinitely without the sounds cutting off (due to buffer expiration). This also means that the samples are smaller in size, which will improve download and processing time of the sound engine significantly.
- Pseudo-convolver engine for all lead instruments: All lead instruments now use Hookpad’s reverb engine, which means that they will have improved sound quality in general.
- New presets for drums: Smart drum patches can now be configured to remove the kick, crash, or fill, which is useful for many genres of music.
- More responsive volume controls: This refactor eliminated latency with mute and volume controls in the band browser which was causing delay between executing a command and hearing the change
- Lead track names can now be customized. These names will show up in sheet music exports
- New Accordion sound patch
- Changed default volume of instrument patches to 0.5 to allow for more head room in mixes
- Fixed issue that caused harmonizers to not properly export in MIDI
- Band instruments saved with zero velocity now properly retain this velocity on load
- Changed default cursor snap grid from “measure” to “1/4 beat”
- Fixing sheet music exports that were failing in projects with multiple sections and multiple lead voices in some cases.
- Fixing sheet music bugs associated with multiple sections.
- Fixed superscript, subscript, slash, and secondary portions of chord label disappearing on light-up and selection in Chrome. Solution was to remove the background filter. Pretty sure this is a Chrome rendering bug since it works in all other browsers with the filter.
<span>for the key/scale control
- New admin setting to not draw staff backgrounds. Used in Hooktheory Books exercise solutions.
- Added admin “scale centric” color setting that makes colors the same for each scale. I.E., scale degree 1 is always red. Scale degree 2 is always orange, etc.
- Bump react from 16.4.1 to 17.0.1
- Bump react-redux from 5.0.7 to 7.2.2
- Bump react-scripts from 3.4.1 to 4.0.1
- Added meta tag to prevent search engines from indexing Hookpad
- Updated robots.txt to prevent search engines from indexing Hookpad
- Fixed Clicking on the start of a hookpad project while it’s playing will sometimes cause everything to disappear
- Applied seventh chords in 3rd inversion no longer crash (bug introduced in 2.18.5)
- Fixed bug causing some inverted suspended seventh chords to leave out the chord 5th
- Changing applied viio seventh chords to fully diminished from half-diminished.
- New persistent setting for continuous auto scroll, where the score continuously scrolls during playback to keep the scrubber centered. Defaults off.
- Fixed Accidentals display incorrectly over line break reported by @Vaz123
- Fixing Piano instrument so that it once again:
- Shows notes during playback
- Enters notes and chords when keys are clicked
- Added ability to not cache instruments on loading a project
- When multiple app instances are on a single page and one instances requests to play while another is playing, the other instance now pauses.
- Namespaced CSS styles so Hookpad styles/CSS don’t modify external content when Hookpad app instances are rendered on webpages
- Enabled an inline configurable score + instrument player.
- Fast double tap in the control bar in iOS no longer causes the entire app to “zoom”. This is a standard accessibility feature for iOS Safari webpages, but doesn’t make sense in Hookpad.
- Fixed issue with section paste using whatever was on clipboard, even if not a section. Now section paste only works if a section has been copied to the clipboard.
- Fixed selection light-up indexing issue in projects with notes or chords that span the bounds of segments or lines. Bug introduced in 2.18.0.
- Added rewind button for Hookpad Player in Hooktheory Classroom.
- Fixed chord/note selection light-up becomes messed up if project has at least 32 bars reported by @Vaz123. Bug introduced in 2.18.1.
- Fixed the compact layout of the mixer dropdown in Hookpad Player
- Fixed crash when clicking “sections” when the project had no sections. Bug introduced in 2.18.0.
- Defaulting to regular (non-touch) controls. 2.18.0 accidentally pushed with touch controls as default. Since this is a persistent app setting, see Preferences → App Preferences → Touch Controls if you want to restore the normal controls.
- Removed drawing of extra selected measures during measure selections that caused slow performance with large measure selection regions.
- Removed note staff preferences when not showing note staff
- Added keyboard shortcuts to nudge tooltips
- Fixed tooltip for zoom out touch control
- Added tooltips to chord palette labels
- On touch devices, added a magnifying glass when editing notes to show what is under your finger. This is on by default but can be turned off in Preferences → App Settings → Peek Under Finger.
- New touch control bar that prioritizes delete, undo, redo, cut, copy, paste, nudge, and zoom. This is off by default but can be turned on in Preferences → App Settings → Touch Controls
- New app setting for the height of notes. Support 6px - 24px (default is 10px). On touch devices, I recommend increasing the height to at least 16 px. See Preferences → App Settings → Note Height.
- New app setting to hide the labels in the control bar for a minimalist look once you learn the icons. See Preferences → App Settings → Show Labels In GUI.
- Simplified the measure context GUI (it gets activated by selecting measures). My head spun looking at it before.
- Improved tooltips throughout the GUI. On touch, do a long press to see the tooltip.
- Rearrange sections by dragging them left/right in the section staff. This doesn’t work on the section flags“flags” in the score; only in the section staff.
- Improved formatting and organization of preferences menu
- Fixed crash when selecting popular chord palette before clicking any other palette.
- Fixed the meter for the master level spilling into a second row on mobile Safari.