Blockhead v0.38.0 alpha
Added 2024-05-14 14:48:24 +0000 UTCUpdate Notes
Feature: Non-destructive exporting and importing of blocks, tracks, and workspaces. Select 'Object' from the drop-down menu when exporting things. This will export everything in the right-hand list to the output directory in blockhead's project format.
Exporting Notes:
The output files will be named .blkhd_block, .blkhd_track, or *.blkhd_ws. These are all basically the same format.
Exporting an item will always result in a file which includes all of its dependencies, e.g. if you add a workspace to the list, you don't need to explicitly add all of its sub-tracks for the resulting workspace file to be complete. If a workspace contains one track and you add both the workspace and the tracks to the list, what you will end up with is two files, a .blkhd_ws which contains the entire workspace and a .blkhd_track which contains just the track. Again, the track file will include all of its dependency blocks and samples, there is no need to explicitly add them to the list.
Output file names are auto-generated. If you export to the same directory twice then it might overwrite things. I don't currently notify when this happens or do anything to stop it so in the meantime make sure you export to a separate directory each time, if you want to avoid overwriting old exported files.
Importing Notes:
The left-hand list is the object files that you are importing from.
The central list is a consolidated list of all the importable items contained in the object files.
The right-hand list is the items that will be imported into the project when you click the "Import" button. Drag the items you want to import from the central list into the right-hand list.
You can also import objects from full *.blkhd project files.
No effort is currently made within the import dialog to differentiate sub-tracks and sub-workspaces of macro blocks from "regular" tracks and workspaces that exist at the top of the workspace hierarchy. More generally, if a project or an object file contains multiple items with the same exact name then I'm not currently doing anything in the import dialog to differentiate them. So for example you may end up with a bunch of "Track 1; Track 1; Track 1; Track 1" items in the central list. Macro workspaces will look something like like "Workspace @512". I think that generating decent contextual information for the object data would not necessarily be hard but it would be complex and time consuming and not something I really want to work on right now. So a workaround in the meantime, if you plan on importing things from project files, is to make sure you give your tracks and workspaces custom names so that you can identify them in the import dialog.
There is not currently any way to audio-preview items in the import dialog. This is technically possible so I will most likely add that in the future but again it is not something I want to work on at the moment.
Imported blocks will be added to the block browser. If they didn't have a custom folder set then they will be automatically added to an "Imported" folder. Reminder: blockhead automatically deletes any unused blocks unless they have a custom name or folder set.
Imported tracks will be appended to the current workspace.
Imported workspaces will be appended to the workspace list, unless "Import workspaces as macros" is enabled.
Enabling "Import workspaces as macros" will auto-generate macro blocks from the imported workspaces, instead of adding them as top-level workspaces.
Importing won't currently generate an undo/redo action, but I will get to it in the future.
Update: Dragging one or more object files into the Blockhead window from the operating system will open the import dialog with those files automatically added. Dragging a single *.blkhd file will open the project as usual. Dragging any number of non-blockhead files will add them to the project as samples as usual.
Update: .blkhd, .blkhd_block, .blkhd_track, .blkhd_ws are now considered recognized file types in the file browser. Trying to add one or more of them to the project will open the import dialog with those file automatically added.
Bugfix: [macOS] Crash on exit if the project contains at least one sampler block.
Bugfix: Crash when trying to add a track immediately after deleting the current workspace.
Bugfix: Crash when editing a send block after a connected receive block is deleted.
Bugfix: Possible crash when turning off baking.
Bugfix: Possible crash when an input buffer is created.
Bugfix: Possible crash when track is solo'd.
Bugfix: Rare but possible crash any time a workspace is deleted.
Bugfix: Rare but possible crash if you manage to really quickly click on the Blockhead window while it's in the process of starting up.
Bugfix: Possible hang when attempting to load an unsupported project version.
Bugfix: Audio files in the file browser are re-triggered on mouse-up events when autoplay is enabled.
Bugfix: Macros are not played back correctly while not editing a top-level workspace.
Bugfix: Sampler blocks can become silent in certain corner cases.
Bugfix: Multiple copied receive buses in the same lane as their send bus corrupts the send bus.
Bugfix: Can't immediately snap to newly placed block instances within the same stamping operation.
Bugfix: Manipulator destination editor mouse inputs are blocked by the right-hand block resizer.
Bugfix: Text can overflow the manipulator destination editor.
Bugfix: Weird envelope artifacts if there are envelope points outside of the visible envelope editor window.
Bugfix: 'Clear' button doesn't appear on option manipulators.
Bugfix: Tempo guide notches do not update properly in certain corner cases.
Bugfix: A block to the right of a tempo guide, being dragged to the right, does not snap to the newly revealed tempo notches.
Bugfix: Untranslated string: TR_WORKSPACE_MAP_VISIBLE in the workspace context menu.
Links
Manual (WIP): https://docs.google.com/document/d/1y6je_g2oNnxClL1eXV20dcQpoyZEkek5LTxQPyEFT0w
Known Issues: https://trello.com/b/MT1A3Zob/blockhead-issues
Discord: Blockhead (discord.com)
Development Videos: https://www.youtube.com/@colugo5172/videos