Blockhead daw - seriously impressive
-
- KVRian
- 924 posts since 24 Sep, 2016
Blockhead v0.47.1 alpha
https://www.patreon.com/posts/149501162
Update: Added keyboard shortcut to execute the script of the currently focused script editor (default: Ctrl+Enter, or Command+Enter on macOS)
Update: A crash handler was added to the Linux builds which should print and log a bunch of useful information for you to send to me in the event of a crash. Crash logs will be written to ~/.local/share/blockhead-crash-logs
Update: _block.end was removed from the scripting API because 'end' is a reserved word in Lua (and _block.length gives the same information.)
Bugfix: Crash when moving a lane which contains a tempo guide.
Bugfix: Crash when creating a block from an "empty" sampler plugin (one which does not have an active sample attached to it.)
Bugfix: Crash on "Replace sample..." operation.
Bugfix: Possible crash on startup.
Bugfix: Possible crash on shutdown on macOS.
Bugfix: Exporting a sample either crashes or generates a garbage file.
Bugfix: "Index out of range" exception if the captured input buffer region spans across the looparound point.
Bugfix: "ERROR: There are still MemoryPool allocs in use at exit!" printed to the terminal on shutdown.
Bugfix: Bouncing creates a block instance of the incorrect size.
Bugfix: Baking operations are erroneously triggered for sampler blocks which don't have an associated sample.
Bugfix: External script editing only works on Windows.
Bugfix: Project files saved on Linux can't be opened on macOS or Windows.
Bugfix: Lanes may not move to the correct location when moving around in history.
Bugfix: Area-selecting blocks will always append to the current selection even if the append modifier isn't held down.
Bugfix: project_settings.json fails to load from project file in certain situations.
https://www.patreon.com/posts/149501162
Update: Added keyboard shortcut to execute the script of the currently focused script editor (default: Ctrl+Enter, or Command+Enter on macOS)
Update: A crash handler was added to the Linux builds which should print and log a bunch of useful information for you to send to me in the event of a crash. Crash logs will be written to ~/.local/share/blockhead-crash-logs
Update: _block.end was removed from the scripting API because 'end' is a reserved word in Lua (and _block.length gives the same information.)
Bugfix: Crash when moving a lane which contains a tempo guide.
Bugfix: Crash when creating a block from an "empty" sampler plugin (one which does not have an active sample attached to it.)
Bugfix: Crash on "Replace sample..." operation.
Bugfix: Possible crash on startup.
Bugfix: Possible crash on shutdown on macOS.
Bugfix: Exporting a sample either crashes or generates a garbage file.
Bugfix: "Index out of range" exception if the captured input buffer region spans across the looparound point.
Bugfix: "ERROR: There are still MemoryPool allocs in use at exit!" printed to the terminal on shutdown.
Bugfix: Bouncing creates a block instance of the incorrect size.
Bugfix: Baking operations are erroneously triggered for sampler blocks which don't have an associated sample.
Bugfix: External script editing only works on Windows.
Bugfix: Project files saved on Linux can't be opened on macOS or Windows.
Bugfix: Lanes may not move to the correct location when moving around in history.
Bugfix: Area-selecting blocks will always append to the current selection even if the append modifier isn't held down.
Bugfix: project_settings.json fails to load from project file in certain situations.
SoundCloud
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
-
- KVRian
- 924 posts since 24 Sep, 2016
Blockhead v0.47.2 alpha
https://www.patreon.com/posts/150013575
Known Issue: Exporting a script block as an audio file will currently just create a silent file. A workaround is to bounce the script block first and then export the resulting block instead.
Bugfix: Crash when resizing a manipulator while block squashing is enabled.
Bugfix: Possible crash (only on macOS?) when creating (or loading from a project file) any plugin instance.
Bugfix: Another possible crash on shutdown.
Bugfix: "array:at" exception popping up in various places (only on macOS?)
Bugfix: "Unexpected data type for key 'value'" when trying to load project file.
Bugfix: Exporting in non-32-bit WAV format produces a corrupted file.
Bugfix: Exporting in WavPack format produces a corrupted file.
Bugfix: Mono WAV files aren't played correctly by the file browser preview.
Bugfix: Open Project dialog box doesn't include '*.blkhd_autosave' in the file filter.
Bugfix: '.blkhd_*' object files don't show up in the file browser.
Bugfix: Project/object files aren't recognized as such when dragging them onto the Blockhead window.
Bugfix: Baking errors when using send/receive blocks in many situations.
Bugfix: Selecting an output format on the export dialog may not actually select that format under the hood.
Bugfix: Fixed the typo "Text Editor: Rdo" -> "Text Editor: Redo"
https://www.patreon.com/posts/150013575
Known Issue: Exporting a script block as an audio file will currently just create a silent file. A workaround is to bounce the script block first and then export the resulting block instead.
Bugfix: Crash when resizing a manipulator while block squashing is enabled.
Bugfix: Possible crash (only on macOS?) when creating (or loading from a project file) any plugin instance.
Bugfix: Another possible crash on shutdown.
Bugfix: "array:at" exception popping up in various places (only on macOS?)
Bugfix: "Unexpected data type for key 'value'" when trying to load project file.
Bugfix: Exporting in non-32-bit WAV format produces a corrupted file.
Bugfix: Exporting in WavPack format produces a corrupted file.
Bugfix: Mono WAV files aren't played correctly by the file browser preview.
Bugfix: Open Project dialog box doesn't include '*.blkhd_autosave' in the file filter.
Bugfix: '.blkhd_*' object files don't show up in the file browser.
Bugfix: Project/object files aren't recognized as such when dragging them onto the Blockhead window.
Bugfix: Baking errors when using send/receive blocks in many situations.
Bugfix: Selecting an output format on the export dialog may not actually select that format under the hood.
Bugfix: Fixed the typo "Text Editor: Rdo" -> "Text Editor: Redo"
SoundCloud
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
-
- KVRian
- 924 posts since 24 Sep, 2016
Blockhead v0.47.3 alpha
https://www.patreon.com/posts/150019605
Bugfix: Stopped accidentally deploying unoptimized builds on macOS.
Bugfix: Possible crash on "Recall comfort view" operation.
Bugfix: "Allocating buffer..." message doesn't update or disappear from the input panel.
https://www.patreon.com/posts/150019605
Bugfix: Stopped accidentally deploying unoptimized builds on macOS.
Bugfix: Possible crash on "Recall comfort view" operation.
Bugfix: "Allocating buffer..." message doesn't update or disappear from the input panel.
SoundCloud
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
-
- KVRian
- 924 posts since 24 Sep, 2016
Blockhead v0.47.4 alpha
https://www.patreon.com/posts/150164756
Update: Blockhead should now run on much older macOS versions, (I think as early as 10.15). I don't have any older macOS computers to test this with so I am relying on others to let me know if it works or not. The earliest that has been reported to work so far is 13.3. If you have an older macOS computer that you can test with then please give it a try and let me know if it at least starts up and gets to the main screen. Then I can try to actually document exactly where the known cut-off point is.
Bugfix: QuickFind UI opens in the wrong mode when opening it from the Sampler block hotswitch button.
Bugfix: Waveform doesn't appear on newly created sampler blocks until they enter a lane for the first time.
https://www.patreon.com/posts/150164756
Update: Blockhead should now run on much older macOS versions, (I think as early as 10.15). I don't have any older macOS computers to test this with so I am relying on others to let me know if it works or not. The earliest that has been reported to work so far is 13.3. If you have an older macOS computer that you can test with then please give it a try and let me know if it at least starts up and gets to the main screen. Then I can try to actually document exactly where the known cut-off point is.
Bugfix: QuickFind UI opens in the wrong mode when opening it from the Sampler block hotswitch button.
Bugfix: Waveform doesn't appear on newly created sampler blocks until they enter a lane for the first time.
SoundCloud
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
-
- KVRian
- 924 posts since 24 Sep, 2016
i don't know about Patreon but u can join his Discord server.Michael L wrote: Sun Feb 15, 2026 4:26 am Do I need to join Patreon to tell you if it gets to the main screen on my 10.14 system?
https://discord.gg/4UvfnC9M3Q
SoundCloud
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
-
- KVRian
- 924 posts since 24 Sep, 2016
Blockhead v0.48 alpha
Update Notes
Scripting system updates
1. Workspace Tempo Information:
Information about the workspace tempo at the script block's current position is now available via the scripting API.
For documentation see: https://github.com/colugomusic/blockhea ... head-v0480
An example script is at: /scripts/examples/ws-tempo-example.lua
2. Alternative mono-table overloads for all functions
All functions can now be alternatively called with a single table argument containing named arguments. For example, instead of:
_set_frame(_output.buffer, _channel_L, 10, 0.0)
Now you can write:
_set_frame({
buffer = _output.buffer,
channel = _channel_L,
frame = 10,
value = 0.0
})
3. Script development panel
A new panel is available on the right-hand sidebar which displays debug_log() output and error messages for the selected script block. To open the development panel for a script block, right-click the block and select "Open In Development Panel" or click the new button in the footer of the script block.
4. New modules:
require('stdlib/tempo/ws-bpm')
require('stdlib/tempo/ws-tick')
5. New variables:
_ease_curve_back (integer)
_ease_curve_quadratic (integer)
_ease_curve_quartic (integer)
_ease_mode_in (integer)
_ease_mode_in_out (integer)
_ease_mode_out (integer)
_ease_mode_out_in (integer)
_ws_bpm (number)
_ws_ticks_per_beat (number)
_ws_tick (number)
_ws_tick_phase (number)
6. New functions:
_block_bpm(beats:number) -> number
Interprets the length of the script block as a bar, and returns the BPM assuming the given number of beats per bar.
_count_silent_frames_left(buffer:buffer) -> number
Returns the number of silent frames at the start of the buffer.
_count_silent_frames_right(buffer:buffer) -> number
Returns the number of silent frames at the end of the buffer.
_debug_log(...)
Print any number of arguments to the debug log. The debug log can be opened by right-clicking on the Block and selecting "Open In Development Panel".
_ease(value:number, curve:integer, mode:integer, [backstrength:number]) -> number
Generic easing function (replaces the now removed easein_out_quadratic(). The equivalent call would now be ease(value, ease_curve_quadratic, easemode_in_out)).
7. Removed functions:
_easein_out_quadratic
8. Updated functions:
_copy_buffer can now take the additional optional arguments: [source_beg], [source_end], [destination_beg], [source_channels], [destination_channels].
9. New example scripts:
Workspace Tempo Example (/scripts/examples/-ws-tempo-example.lua)
10. Updates to existing scripts:
CDP: Tweet (/scripts/examples/cdp-tweet.lua) script was updated to use the new _count_silent_frames_left function to re-align the wet signal to the dry signal in cases where CDP trims the silence from the start of the input audio.
11. Other updates to the scripting system:
Error messages generated by incorrect function arguments are now much more helpful.
Other updates
Update: Double-clicking on a project file in the file browser will now open it as a project.
Bugfix: Crash when creating a new macro from QuickFind without brushing a block region first.
Bugfix: Crash when deleting a workspace if "Synchronize workspace views" is enabled.
Bugfix: Possible crash when opening a project file if "Synchronize workspace views" is enabled.
Bugfix: Possible audio engine exception while previewing any audio file from the file browser.
Bugfix: "Key not found" exception when moving backwards in history to a point where a drop-inserted lane did not exist.
Bugfix: "Key not found" exception when bouncing a manipulated block.
Bugfix: Clicking artifacts at the edges of blocks in some situations.
Bugfix: readfile_audio() doesn't return a proper buffer table.
Bugfix: createtemporary_file_path("") with an empty string returns a path with a dot at the end.
Bugfix: Macro blocks appear twice in "importable objects" list.
Update Notes
Scripting system updates
1. Workspace Tempo Information:
Information about the workspace tempo at the script block's current position is now available via the scripting API.
For documentation see: https://github.com/colugomusic/blockhea ... head-v0480
An example script is at: /scripts/examples/ws-tempo-example.lua
2. Alternative mono-table overloads for all functions
All functions can now be alternatively called with a single table argument containing named arguments. For example, instead of:
_set_frame(_output.buffer, _channel_L, 10, 0.0)
Now you can write:
_set_frame({
buffer = _output.buffer,
channel = _channel_L,
frame = 10,
value = 0.0
})
3. Script development panel
A new panel is available on the right-hand sidebar which displays debug_log() output and error messages for the selected script block. To open the development panel for a script block, right-click the block and select "Open In Development Panel" or click the new button in the footer of the script block.
4. New modules:
require('stdlib/tempo/ws-bpm')
require('stdlib/tempo/ws-tick')
5. New variables:
_ease_curve_back (integer)
_ease_curve_quadratic (integer)
_ease_curve_quartic (integer)
_ease_mode_in (integer)
_ease_mode_in_out (integer)
_ease_mode_out (integer)
_ease_mode_out_in (integer)
_ws_bpm (number)
_ws_ticks_per_beat (number)
_ws_tick (number)
_ws_tick_phase (number)
6. New functions:
_block_bpm(beats:number) -> number
Interprets the length of the script block as a bar, and returns the BPM assuming the given number of beats per bar.
_count_silent_frames_left(buffer:buffer) -> number
Returns the number of silent frames at the start of the buffer.
_count_silent_frames_right(buffer:buffer) -> number
Returns the number of silent frames at the end of the buffer.
_debug_log(...)
Print any number of arguments to the debug log. The debug log can be opened by right-clicking on the Block and selecting "Open In Development Panel".
_ease(value:number, curve:integer, mode:integer, [backstrength:number]) -> number
Generic easing function (replaces the now removed easein_out_quadratic(). The equivalent call would now be ease(value, ease_curve_quadratic, easemode_in_out)).
7. Removed functions:
_easein_out_quadratic
8. Updated functions:
_copy_buffer can now take the additional optional arguments: [source_beg], [source_end], [destination_beg], [source_channels], [destination_channels].
9. New example scripts:
Workspace Tempo Example (/scripts/examples/-ws-tempo-example.lua)
10. Updates to existing scripts:
CDP: Tweet (/scripts/examples/cdp-tweet.lua) script was updated to use the new _count_silent_frames_left function to re-align the wet signal to the dry signal in cases where CDP trims the silence from the start of the input audio.
11. Other updates to the scripting system:
Error messages generated by incorrect function arguments are now much more helpful.
Other updates
Update: Double-clicking on a project file in the file browser will now open it as a project.
Bugfix: Crash when creating a new macro from QuickFind without brushing a block region first.
Bugfix: Crash when deleting a workspace if "Synchronize workspace views" is enabled.
Bugfix: Possible crash when opening a project file if "Synchronize workspace views" is enabled.
Bugfix: Possible audio engine exception while previewing any audio file from the file browser.
Bugfix: "Key not found" exception when moving backwards in history to a point where a drop-inserted lane did not exist.
Bugfix: "Key not found" exception when bouncing a manipulated block.
Bugfix: Clicking artifacts at the edges of blocks in some situations.
Bugfix: readfile_audio() doesn't return a proper buffer table.
Bugfix: createtemporary_file_path("") with an empty string returns a path with a dot at the end.
Bugfix: Macro blocks appear twice in "importable objects" list.
SoundCloud
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
-
- KVRian
- 924 posts since 24 Sep, 2016
Blockhead v0.48.1 alpha
https://www.patreon.com/posts/153913877
Bugfix: Crash when a manipulator target parameter is deactivated.
Bugfix: Crash (only on macOS?) when triggering a block via MIDI note.
Bugfix: Exception when pressing the "erase hovered item" shortcut (backspace) while hovering an empty lane.
Bugfix: Exception when interacting with the block context menu after the block whas deleted while the menu was still open.
Bugfix: Input buffer "Enabled" and "Monitor" checkboxes don't immediately take effect when toggled.
Bugfix: Input capture chunks don't preview correctly when they wrap around to the start of the buffer.
Bugfix(es): Several other obscure issues relating to input buffer playback.
https://www.patreon.com/posts/153913877
Bugfix: Crash when a manipulator target parameter is deactivated.
Bugfix: Crash (only on macOS?) when triggering a block via MIDI note.
Bugfix: Exception when pressing the "erase hovered item" shortcut (backspace) while hovering an empty lane.
Bugfix: Exception when interacting with the block context menu after the block whas deleted while the menu was still open.
Bugfix: Input buffer "Enabled" and "Monitor" checkboxes don't immediately take effect when toggled.
Bugfix: Input capture chunks don't preview correctly when they wrap around to the start of the buffer.
Bugfix(es): Several other obscure issues relating to input buffer playback.
SoundCloud
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
-
- KVRian
- 924 posts since 24 Sep, 2016
Blockhead v0.48.2 alpha
Update Notes
Bugfix: Crash when deleting a track with any blocks on it.
Bugfix: Crash on macOS when "Loop" is toggled on a meta block.
Bugfix: NaNs and INFs not being handled properly by various scripting library functions, usually resulting in a crash.
Bugfix: "Key not found" exception when exporting a track if the project contains more than one track.
Bugfix: Opening a project file as Blockhead starts up (i.e. associating .blkhd files with the OS, or dragging a .blkhd file onto the Blockhead executable) causes a myriad of weird bugs at startup.
Bugfix: Tracks don't visually initialize correctly just after loading an existing project.
Bugfix: Minimized track thumbnails don't span the full width of the available space.
Update Notes
Bugfix: Crash when deleting a track with any blocks on it.
Bugfix: Crash on macOS when "Loop" is toggled on a meta block.
Bugfix: NaNs and INFs not being handled properly by various scripting library functions, usually resulting in a crash.
Bugfix: "Key not found" exception when exporting a track if the project contains more than one track.
Bugfix: Opening a project file as Blockhead starts up (i.e. associating .blkhd files with the OS, or dragging a .blkhd file onto the Blockhead executable) causes a myriad of weird bugs at startup.
Bugfix: Tracks don't visually initialize correctly just after loading an existing project.
Bugfix: Minimized track thumbnails don't span the full width of the available space.
SoundCloud
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin
"I believe every music producer inherently has something unique about the way they make music. They just have to identify what makes them different, and develop it" - Max Martin