- Fixed bug introduced in 2.3.6 allowing some unstable experimental instruments to be selected in the band UI.
Under The Hood
- Google Analytics event tracking
- Changed some copy related to purchasing Hookpad
- New metronome sound
- New Electro Pop demo song “Great Times”
- Basic drums now export to midi on their proper pitches
- Fixed bug where some instruments were exporting to sheet music in the wrong octave
- Fixed bug where suspending a diminished chord was crashing sheet music export in some cases
- Fixed bug where projects wouldn’t play on load when there is no note or chord in the first measure
- Fixed a text entry mode bug reported by @JMW and @HertzDevil: when a chord is selected, clicking and dragging anywhere else on the chord track moves the currently selected chord to the mouse cursor.
- Fixed NaN bug with Tempo.
- Fixed broken vertical scrolling in some Chromium-based browsers.
- Fixed broken MIDI input introduced in v2.3.0
Improved MIDI Exporting: Now Hookpad can export MIDI for note, chord, or measure selections of individual tracks in the Band Editor. How to use:
- open the Band Editor (keyboard shortcut “b”)
- select the notes, chords, or measures you want to export
- in the Band Editor, click the MIDI clip icon of the track(s) you want to export.
- drag the downloaded .mid file from your browser of your downloads folder into your DAW.
- Shareable Project URLS Click File -> “Create a Sharable URL” to create a URL that you can share with people that you want to view and play your project. This URL can be deleted anytime by clicking File -> “View Sharable URL” and following the instructions.
- Clicking in the empty space below the list of band tracks now opens the “Add Track” menu. It is the same as clicking the “Add Track” button
- Keyboard shortcut “b“ now shows / hides the Band Editor
- Fixed a MIDI export bug causing notes with a volume of zero to be exported with a velocity of one.
- Added piano instrument visualizer
- Added setting for downloading LilyPond .ly files with sheet music export
- Added advertisement for Hooktheory books that auto-hides when using Hookpad+
- Added new Electro-Metal demo song named “Lost Tranquility”
- Midi export for instruments that use more than one sound font now output only to a single track
- Disabled lyrics in TheoryTab Player
- Added duration and beat sanitizer to fix round-of-errors in legacy Hookpad 1.x XMLs causing some score exports to crash
- Added shaker instruments into band templates
- Fixed bug causing notes edited by a midi controller to turn to rests in some cases
- Fixed bug blocking note and chord entry for some midi channels
- Fixed bug causing the score export of certain instruments to crash in swing time
- Added new Shaker drum instrument patches
- New “Swan song” demo song
- Double-clicking slider values in band GUI resets the value to default
- Added new debug info in midi console.
- Fixed bug causing MIDI export of some guitar regions to be cut short
- Fixed MP3 export which broke in 2.1.8
- Fixed bug causing MIDI exports to always output on the same pitch that was introduced in 2.1.8
- Added MIDI console to detect incoming midi messages from external midi controllers
- Fixed bug allowing non-plus users to use MIDI input in some cases
- Fixed bug causing score export to crash when using FS Electric Guitar in some time signatures
- (Possibly) fixed SVG scale/transform bug causing Hookpad to crash while chords or notes are resized by dragging edges with the mouse.
- Keyboard shortcuts for copy, paste, undo, redo, select all, and new now work with cmd and ctrl modifiers.
- Orange play button in TheoryTab Player
Under The Hood
- Improved flow for YouTube Syncing (unreleased).
- Major refactor allowing multiple instances of Hookpad and TheoryTab player to be created from single code instance, allowing improved performance on TheoryTab web pages
- When forking a TheoryTab, “Save” routes to “Save As” which opens a dialog allowing the user the opportunity to name the project before saving.
Under The Hood
- Added state for the id of the root-level div. Poppers now use this state property rather than assuming the root level div has an #id of “root”.
- Removed all unnecessary #id on elements and prefixed remaining #id on elements with the name of the root element so multiple Tab instances can be launched on single page and all work independently
- Passing StoreRepresentation all the way down through the top instead of it being a global
- Fixed issue that could cause meter changes to misplace bands/key changes/breaks.
- Changing MIDI menu to enable/disable all MIDI inputs at once. This is to fix an issue where some MIDI instruments were being labeled on incorrect ports. We will add back the ability to individually enable MIDI inputs once this is worked out.
Under The Hood
Preparation for TheoryTab 2.0 Player
- Ability to change the loop region in TheoryTab Player mode
- Loading a demo song or doing File -> new no longer clears all templates in the Band Editor
Under The Hood
Preparation for TheoryTab 2.0 Player
- Refactored PitchPlayer play / stop to be called through RxJS Epics and cleaned up PitchPlayerUtils
- Added support for two messages, ‘pauseFromInstrumental’, and ‘pauseFromYouTube’ that can be posted into the iframe to pause other Tab Player instances on a page. Also playGuiPlay() and youTubePlay() look for support function in parent to call to post these messages into each other tab on the page
- Added support for scrolling in tab mode with single finger touch (native) and tap will place cursor
- Added support for showNoteStaff and showChordStaff settings.
- Added a setWidthOfBeatOnLoadToObtainBleedInTabMode setting and wired it in to Epics so have Tabs be able to auto width themselves to be full width of their containing div or iframe
- Added setting for ignoreBreaks that is wired in in tab mode.
- Enabling showKeyControl, showVolumeControl, showStableControl, showTempoControl, showLoopControl settings for TheoryTab
- Added support for looping in Tab mode (works for instrumental and YouTube audio sources)
- In Tab mode, clicking the loop region on loop staff to turn off looping now also hides the loop staff
- Added support for Tab zooming, which works in factors of two.
Preparation for TheoryTab 2.0 Editor
- Added p key shortcut for starting stopping YouTubes
- Fixed bug in all browsers except Chrome that would cause Hookpad to not download sound assets. This bug was introduced in 2.1.2 earlier today.
- Fixed crash when loading Hookpad 1.x projects with a YouTube attached. This is still not supported but it no longer causes Hookpad to crash.
- Restored MIDI input, which was accidentally removed in v2.1.1
- Loading a demo song and saving no longer overwrites previous project
- Key, band, tempo, and meter flags now show up on correct measure when pickup measure is enabled
- Sheet music export no longer downloading .ly file
Under The Hood Changes
- Upgraded to RxJS 6
- Upgraded to RxJS 6 version of redux-observable
- Upgraded to Redux 4
- Improved Band Editing
- The Band Editor can now be toggled in and out of persistent view, making it easier to simultaneously tweak the band and the music.
- The Band Editor can now be vertically resized to show more or less content
- As the cursor moves, the Band Editor us updated to reflect the band at that point in time.
- Lyrics Editor can now be resized.
- Reinstated circular control buttons
- Audio buffers are now only decoded as-needed in a performance to save memory.
- Sheet music score export now hides empty staves
- Sheet music score export now uses abbreviated instrument names on pages after the first page
- Sheet music score export now exports landscape.
- Fixed bug causing sheet music to skip some lead voices when composite instruments are used
- Sheet music chord name track now spaces chord names properly when there is empty space in between chords
- Fixed bug causing bottom octave distorted power chords to always play C5
- Midi export now properly contains fills and pickup measures
- Midi controller entry for chords now chooses the most popular chord based on the entered bass scale degree
- Midi controller entry for notes now picks the most logical enharmonic in the given key and scale
- Midi controller entry for notes no longer picks the wrong note octave in some keys.
- Improved Magic Chord and Magic Bass
- Magic Chord now shows chord-use data, displaying examples of songs that use the suggested chord in the same context.
- Magic Chord and Magic Bass choosers now have buttons for previous chord, next chord, audition, cancel and accept.
- Magic Chord and Magic Bass choosers can now be controlled with keyboard shortcuts ←, →, ↑, and ↓
- Magic Chord and Magic Bass choosers now drop down from the top and don’t cover the score.
- Magic Bass button now shows bass color of selected chord
- Improved Exporting
- MP3 export now adds exactly 1 beat of silence before export region to facilitate syncing in DAWs more effectively. - Midi export grids notes on prescribed beats rather than using the timing of Hookpad playback
- Midi export tracks now have instrument names attached for clarity
- Sheet music export adds instrument names to staves.
- Sheet music export now only exports one consolidated melody per lead voice rather than one stave per lead instrument.
- Sheet music export shows guitar strums as slashes
- A pickup measure can now be added to your project
- Lyrics can be ignored using block-style /* */ comments
- Improved support for touch interactions (mobile still not officially supported)
- Forms for add key / meter / tempo / band now drop down from the top and don’t cover as much of the score
- Removed extra padding on some menu bar menus
- Acoustic guitar leads now play correctly above G5.
- Chord labels that span measure crossings no longer have the measure line interfering with the label
- Fixed cursor placement after removal of the last measure
- Fixed bug causing magic bass to sometimes include a chord from a different bass
- Volume and octave values now show in band tool as sliders are adjusted
- Taller measure staff for easier selection
- Loop region color changed from blue to yellow
- Added 5 px of padding between measure staff and loop staff
- Octave slider disabled for drum pickups
- Magic chord “full preview” now stops scrubber at the end of playback
- Mp3 export now downsamples according to client hardware specification sample rate to fix exports in wrong key/tempo.
- Mp3 export now properly exports stereo sound.
- Fixing bug requiring multiple taps on mobile devices to enter chords and notes (in preparation for mobile support in the future)
- Fixed the “Add Track” modal within the band GUI from being partially hidden by the band GUI
- Fixed issue with Menu Bar and Controls Bar not showing up in Firefox. This bug was introduced in 2.0.4
- Fixed issue during drag selection that caused vertical reflows and odd flickering / shaking behavior of the score during drag selection. This bug was introduced in 2.0.4
- Fixed dropdown menus from being clipped by the chord / note GUI in Safari. This bug was introduced in v2.0.4
- Note lightup and scrubber are throttled back during mp3 export to improve performance
- Project no longer plays while an mp3 is being recorded
- Midi and mp3 export now name files the same name as the project name
- Fixed a bug causing pickup bands to crash during mp3 record.
- Fixed a bug causing project to bounce mp3 using first band only.
- Sample rate of project and mp3 encoding are synched which should fix detuning bug on some platforms.
- Updated layout so horizontal scroll bars on the Menu Bar, Controls Bar, and the Context Gui do not cover any of the GUIs; they now show up below and things reflow to make room
- Fixed a problem causing Hookpad v1.x projects to not load properly when there is no lead1 instrument, harmony or bass instrument
- Fixed lyrics import from Hookpad v1.x projects to properly account for spaces at the beginning of lines
- Chord symbol for applied chords are now correctly being displayed
- Relaxed conditions for non-Hookpad+ band changes so that non-plus users can edit volumes of bands.
- Configured Hookpad to accept tabs copied from the TheoryTab library.
- Fixed a bug causing certain old Hookpad projects to crash when loading into the new Hookpad.
- Fixed a bug causing the old version of Hookpad to not properly load in some cases.
- More Intuitive Entry and Editing The familiar text-like entry mode is still supported, but a new entry mode allows lets you edit without affecting music ahead of the edit point.
- Key Changes, Tempo Changes, Meter Changes, and Band Changes Within a Project You can now change the key, tempo, meter, or band as many times as you want within a project.
- Expanded Library of Sounds And Instruments Hookpad 2 has all of the Hookpad 1 sounds plus 42 guitar presets, 108 drums, 72 leads, and 61 basses.
- Measure-Level Exporting Hookpad 2 lets you export sections of your song with measure granularity.
- Chord Bass Collections Hookpad 2 lets you choose from a palette of chords that share a common bass note.
- Expanded Support for Simple and Compound Meters Hookpad 2 supports standard time signatures for simple and compound meters. Drum, guitar, and harmony instrument rhythms adjust automatically based on the meter.
- Improved Performance Hookpad 2 is more performant and no longer requires the Adobe Flash Plugin.
- Hookpad 2 is Backwards Compatible Hookpad 1 projects can be opened, edited, and saved with Hookpad 2.
Hookpad 1 is Not Forwards Compatible
- New projects originating from Hookpad 2 cannot be opened by Hookpad 1.
- Hookpad 1 projects that are opened in Hookpad 2 and saved with Hookpad 2 can still be opened with Hookpad 1, but they won’t contain any of the changes made with Hookpad 2.
- Added checks for Hookpad+ in polyphony.
- Changed non-plus experience for bands: now non-plus users can use any default band template, but can no longer change instruments or add new instruments to a band.
- New demo songs
- Default band templates can no longer be deleted
- Added demo songs
- Adding default band templates for various styles.
- New instrument rhythms: Acoustic guitar breaks, piano upbeat patterns, piano rolls
- Adjusted logic for which alterations are valid on various chord types. Alterations on the highest degree of the chord are now not allowed. Alterations of a degree are now forbidden when adding that degree
- Renamed add4 and add6 to add11 and add13 respectively
- Allow support of adding sus4 to 9th chords
- Allow support of adding 13 to 9th chords
- Reorganized instrument names
- Added support for lyrics properly importing from HP1
- Removing Youtube button, as this will not be a part of the initial Hookpad release.
- Allowing more levels for horizontal zoom, and setting minimum global zoom to 50%
- Pickup drums with no subsequent drum track are no longer voiced
- Key changes now preserve octaves correctly.
- Fixed a bug that was causing Safari to crash in some cases
- In measure wrap mode, the correct number of measures are now being drawn at the end of a song
- Removed various settings from undo state
- Fixed a bug causing borrowed chords from very old HP1 projects to not import properly.
- Fixed a bug causing drag handlers to not show up in some cases.
- Adjusted some A-barre guitar chords that were sounding on the wrong pitch
- 13th chords in full voicing mode now play the 5th.
- Inverted suspended chords are now spelled correctly
- Alterations of minor 7th chords are now spelled correctly
- Full voicing no longer omits suspensions.
- Various new instruments
- Sheet music export works with chords requiring “+” sign.
- Fixed bug causing chord degree omission voicing no3 and no5 to remove other scale degrees in some cases when using “full” voicing.
- Midi export now exports drum track in the octave expected by most DAW drum instruments.
- Add6 chords now properly preserve 7th of chord in 7th chords.
- Changed absolute notation of major sixth chords to the suffix “6” as in “C6”
- Fixed bug causing addX chords to drop chord tones in sheet music export in some cases.
- Guitar rhythms featuring percussive guitar sounds now show these sounds as rests in sheet music export
- Made split and tie buttons visually distinct from the other duration buttons
- Line break button in measure operations GUI placed in separate column
- Help menu with links to keyboard shortcuts and Hookpad manual
- All tempo forms now allow typing in the beats per minute
- Updated distortion model for metal guitar to be more realistic
- Added prescribed bass patterns for bossa and reggae basses
- Added prescribed rhythm patterns for piano harmony tracks in various styles
- Metal guitar now plays power chords in the standard guitar range for default octaves
- Harpsichord and Harp now roll chords
- Tuned playback parameters of various instruments
- When loading new song, duration gui updates to the meter at the location of the cursor
- When loading from disk (.json file), project name updates to name of .json file
- Blank state hints now show up correctly if entire first line is empty.
- Measure staff blank state hint now goes away if there is a measure selection.
- Fixed bug with special characters (e.g., b for flat) in absolute chord graphics with suspensions.
- Now properly labelling accidentals on minor 13th chords
- Midi export no longer can create notes with velocities outside of the interval [0, 127].
- 13th chords with explicit alterations of 5 now play this degree.
- Fixed bug where multiple composite instruments on the same instrument type would crash playback
- Bass rhythms now play correct chord tones on inverted chords
- Fixed several sheet music export bugs:
- Empty measures now properly export rests
- Minor, augmented, suspended, and diminished chords now export when having explicitly altered scale degrees
- Chords on B now correctly export
- Double chord tone accidentals no longer crash, however they display as single accidentals.
- Notes that cross octave boundaries due to accidentals now display in the correct octave.
- Compound meter using beat unit of 1 now displays chords in chord mode with correct durations.
Fixed bug where ‘+’ was being dropped from .ly files when transferring to server.
- Hookpad now verifies Hookpad+ status with server
- Added keyboard shortcuts (enter, escape) for the delete project confirmation modal.
- Fixed bug with auto-scroll not working properly at zooms other than 100%
- Key changes using navigation bar button now spell correct enharmonic based on available key tonics.
- Sheet music export bug fixes:
- Fixed bug associated with exporting projects with multiple time signature changes
- Now exporting 6, 9, and 12 beats measure measure as 6/4, 9/4, and 12/4 when beatUnit == 1
- “6/9” chords no longer crashing
- Chords that add scale degrees with accidentals now work. E.g., add#4, addb9, etc
- Chords that have suspensions with accidentals now work
- Added support for mp3 export (requires Hookpad+)
- Fixed bug causing rest chords to show stable scale degrees 1, 3, and 5 on mouse hover
- Fixed bug causing rest chords to show stable scale degrees 1, 3, and 5 with “stable” toggle on
- Added support for two-dimensional melody selection.
- Added support for renaming saved projects through File -> Open menu.
- Addes support for deleting saved projects through File -> Open menu
- Added split and tie buttons to the duration selector.
- When split is activated through duration selector or by holding “/”, cursor changes to indicate that clicking will split the chord / note that is clicked.
- Added support for score, tab, lead sheet export (requires Hookpad+).
- Added support for mp3 export in next release (requires Hookpad+) Still need to fix worker path bug.
- Added raise/lower by half step, step, and octave buttons to melody GUI.
- Added global volume menu with mute buttons for melody, chord, bass and drum tracks.
- Added new vocal instruments.
- Added “full” voicing, which does not organically omit scale degrees for chords.
- “Piano Full Chords” Harmony option will include bass, and can be used to export to MIDI to achieve bass note in harmony voicing (MIDI exporet requires Hookpad+).
- Certain band sounds now require Hookpad+
- Holding ‘b’ (for both) allows dragging notes up and down and left and right simultaneously.
- Added support for line breaks. Hitting enter will add a line break at the cursor. Also can add a break from measure selection gui when a measure is selected.
- Fixed bug causing drum pickup rhythms in swing eights time to crash.
- When opening from disk, any instruments that need to be loaded are now loaded. (requires Hookpad+)
- Bug fixes for adding blanks space and rests when converting between classic/table insert entry mode and when deleting line breaks/measures causing rewraps
- Removed erroneous augmented symbol applied to the target of an applied chord.
- Band saving / loading / deleting added
- Save to disk / load from disk added
- Magic Chord, Magic Bass Chord, Exporting, and Lyrics now require active Hookpad+ membership.
- Eventually measure export, saving band templates, and certain band sounds will require Hookpad+.
- Horizontal zoom now supported
- Added auto scroll during playback
- Updating sound chain to include a compressor and limiter node
- Playback can now be “solo”-ed for leads 1-4, harmony, bass, and drums. This applies to mp3 export as well.
- Added smart pickup drums that play lead-ins to drums on the measure before a drum region start
- Added drum breaks for each drum instrument
- Smart drums now places fills based on the drum region length
- New band tracks now add at default volume
- Added new instruments:
Classical Choir(male + female),
Pop Bass(various rhythms),
Rock Bass(various rhythms)
- Sheet music export now supports lyrics
- Magic chord auditions that span various key signatures now play in the correct corresponding keys
- Fixed bug causing the first note of playback on some instruments to have a late attack.
- Projects imported from Hookpad 1 containing chords borrowed from “supermodes” now correctly preserve these modes.
- Seventh chords in 3rd inversion omit the “7” label only for major, minor, diminished, augmented and major minor seventh qualities.
- Eleventh chords now display in slash notation when applicable (as voiced, with 3rd and 5th omitted)
- Fixed bug causing mp3 export to crash
- Note staff and chord staff now properly update when stable button is toggled
- Relative transpositions are supported for valid relative scales.
- Adjusted and balanced various instruments
- Added a master compressor node to deal with multiple instrument playback
- Added new instruments:
Studio Piano Lead,
Acoustic Lead Sustain,
Pop Bass(+ melody and 1/8s),
Rock Bass(+ melody and 1/8s), and
Cl. Electric Lead Sustain
- Added raise / lower buttons to note GUI
- Loop region now snaps to measures when creating a new area and snaps to 16th/quarter beat with and without shift when enlarging an existing (before it was always to measure)
- added support for polyphonic pasting when copying a measure selection.
- inactive melody notes now light up during playback
- rests in inactive melodies are hidden.
- experimenting with different inactive melody color schemes to be easier to read
- voices can be made visible and invisible
- Improved drawing performance
- Note staffs, chord staffs on separate layers and only redraw when required
- Note staff highlight on chord hover separated to different layer and only redraws when required
- Note staff background rainbow separated to different layer and only redraws when required
- Note staff border separated to different layer only redraws when required
- Note staff measure, beat, and octave, lines separated to different layer and only redraw when required
- The fifth of sus42 chords now properly gains accidentals when appropriate in borrowed modes.
- Changing a band, key, or tempo in the middle of playback no longer crops playback of old setting and no longer double-hits drums.
- Fixed a bug that sometimes caused ghost notes to appear when changing key or loopstate in the middle of playback
- Loading projects from Hookpad v1.x no longer adding a default drum track
- Loading projects from Hookpad v1.x no longer causing voice 4 to be loaded at full volume.
- Add9s are now properly loading from Hookpad v1.x
- Fixed an issue causing meter changes from
Beat Unit = 3to
Beat Unit = 1to put the scrubber in the wrong location.
- Fixed note drag up/down with expanded staff
- Fixed bug in enlarging loop region
- When loop region snaps to measures it now respects meter changes.
- When loop region is inactive it is invisible mouse drags. Fixed custom cursor changes during mouse over inactive regions to match this behavior.
- fixed issues with shift selecting across notes and chords.
- slicing notes/chords with shift was not saving state for undo
- Fixed issues with pasting in classic (text-like) entry mode (need to ensure rests are filled appropriately)
- pasting won’t overflow a line in classic entry mode.
- it is not possible to copy paste a key/meter/tempo/band change by clicking on the flag to select it.
- Fixed issue with clicking notes/chords sometimes not selecting the item (occured only on some platforms with certain input devices).
- using arrow keys to change note selected plays the note when the selection changes
- fixed bug with dragging notes on chromatic staff.
- Band UI is now a menu, consistent with meter, key, and tempo menus.
- Change key/tempo/meter/band within measure-level operations now support keyboard shortcuts (escape for cancel and enter for OK)
- Inversions of altered chords are now properly showing stable scale degrees and coloring.
- Scale degrees ##2 and ##6 are now displaying color and position properly in the phrygian dominant and harmonic minor scales respectively
- Chords #vii˚/#vii and V/#vii obtained by borrowing major chords in the minor mode no longer freeze Hookpad. This bug is fixed for all combinations of borrowed/applied chords that create double-sharped scale degrees.
- Descending chromatic transposition via the ‘,’ key now properly displays on the note context GUI in scales that do not contain a leading tone 7.
- Alterations of the 5th are now playing properly on ninth, eleventh, and thirteenth chords.
- Inversions of altered chords no longer alter incorrect scale degrees.
Mid Electric Pickinstrument is now caching properly
- Fixed issues that allowed note durations to be set to 0
- Fixed bug in smart note entry that picked octave based on rests instead of previous note
- Fixed checks to make sure notes can’t go above/below max octave
- Fixed issue with deleting measures not shifting bands over correctly
- Dragging notes up / down with expanded note staff now works. Still have a bug with chromatic / option drag with expanded staff.
##2.0.0-beta.1 (2018.03.17 )
- Original beta release
To read about the prior version of Hookpad, see Hookpad v1 Release Notes