XaiJu
colugomusic

colugomusic

patreon


colugomusic posts

Blockhead v0.6.1 alpha

Update Notes:

  • Update: Added "master soft clip" option to development controls (enabled by default)
  • Update: Master level meter now displays post-gain levels instead of pre-gain
  • Update: Master level gain now affects both song output and catch buffer preview output
  • Update: Default grain uniformity is now 100%
  • Update: Removed the DC blocker from the lo-fi effect because it was reducing headroom I don't think it's necessary anymore now that the param...

    View Post

Blockhead v0.6.0 alpha

Bigger release than usual. There have been many internal changes related to background tasks. I had one crash while testing the new catch buffer feature which I have not been able to reproduce since. As usual if you happen to find some way to consistently reproduce a crash or bug then let me know!

Update Notes:

  • Feature: Individual volume control for tracks
  • Feature: Added a widget to the bottom panel to show currently running background tasks
  • Feature: Catch ...

    View Post

Dev log #25 - The Catch Buffer

I came up with this idea while I was working on song rendering (it's coming i promise!). I couldn't stop thinking about this stupid idea so I put song rendering on hold to work on it. It seems simple but it's taken about 4 days so far. It's not done yet but here's a video of what it looks like currently.

The catch buffer is a circular buffer which constantly records the engine output. Once it gets to the end it loops back to the start and overwrites what's already there. The size of the...

View Post

Dev log #24 - Background Tasks

Some tasks are run in a background thread to avoid blocking the interface. This currently includes loading sample data from files, bounce operations, generation of grain offset data, and eventually song rendering.

When a bounce is triggered the operation is placed on a queue and doesn't actually start until the previous bounce has finished. This means you should be able to bounce a block, place...

View Post

Blockhead v0.5.0 alpha

Update Notes:

  • Added some basic level meters/clipping indicators for tracks and master
  • Fixed the bugs that were introduced to the block stamper in v0.4.0 which allowed blocks to overlap
  • Can now hold down SHIFT to temporarily disable snapping while placing blocks (was previously CTRL but that now conflicts with block stamping modifier)
  • Changes to block stamping when cloning blocks (the design of this is still in flux and will probably chan...

    View Post

Blockhead v0.4.0 alpha

Update Notes:

  • Added a user settings window (F2 or button in bottom right of window)
  • Added option to use a larger font. Let me know if anything looks weird of visually breaks !
  • Cloned blocks that span multiple tracks will now stay in their source lanes while stamping (hold CTRL for original behavior)
  • Adding or cloning many blocks at once should now be a bit faster (room for more optimization here in the future)
  • Fixed an issue whe...

    View Post

Blockhead dev log #23

Addition of the BIGFONT is almost done. It's been a horrible time trying to bend the layout engine to my will. This is the first time during development where I've felt like I've been really fighting against Godot to get it to do something.

The changes I have been making to support the larger font option means I have had to revisit of lot of UI elements and so I've also taken the opportunity to...

View Post

Blockhead dev log #22

I am currently working on the mind numbingly boring task of adding the option to use a bigger font for everything.

It took a while to actually figure out how to implement this so that it can be toggled at runtime because Godot's theming system isn't really designed to do it. Annoyingly I have to go through every bit of text in the DAW and explicitly tell it via script to update itself whenever the global font changes. I was expecting to have to do something like this anyway though as ma...

View Post

Blockhead v0.3.0 alpha

Update Notes:

  • Added ability to set the audio device sample rate (currently at the bottom of the window). ASIO drivers in particular are horribly buggy when it comes to hot switching sample rates so there are some hacks involved in getting this working but it should be okay. Let me know if it breaks!
  • Internal changes to sample playback engines (stop assuming 44100 for everything)
  • Fixed a bug where blocks would go silent after changing track
  • <...

    View Post

Blockhead v0.2.5 alpha

Update Notes:

  • Fixed issue where frequency points were not being interpolated correctly
  • Fixed a bug where clicking artifacts would be produced at the start of samples in Fudge mode
  • Fixed a visual bug where mod editor gridlines were not being blended properly with the panel beneath
  • Fixed a performance problem where switching between modulation envelopes was really slow
  • Fixed an issue where zip file entries for samples would repeat...

    View Post

Blockhead v0.2.4 alpha

Update Notes:

  • Fixed a case where the GUI would hang upon reviving a deleted sample
  • Fixed a bug where an actively playing block would continue playing when it was deleted, potentially leading to crash)
  • Changed the way object deletions are synchronized internally (should fix some potential crashes, hopefully did not introduce any new ones!)
  • Fixed right-click opening a context menu while a track was being dragged
  • Fixed Ctrl+C incor...

    View Post

Blockhead v0.2.3 alpha

Update Notes

  • Fixed a bug where initiating a block gesture (shift-drag) while fudge mode was enabled would cause the block to get stuck in block gesture mode
  • Fixed a visual bug where warp markers would jitter while changing sample offset via block gesture.
  • Fixed a visual bug where tempo guides would not be updated when a guide stopping block was moved out of the way.
  • Changed hotkey for view panning from "M" to "N"
  • Reduced engine fade-out period w...

    View Post

Blockhead v0.2.2 alpha

Update Notes

  • Fixed Lofi effect converting signal to mono
  • Fixed saturation effect going silent at 100% drive
  • Fixed a bug where effect parameters could enter a state where they would continuously update through the last few values, causing humming artifacts (temporarily removed a broken optimization that was causing this)
  • Fixed modulation point recalculations (hold CTRL while changing step size or snap amount) being completely off the wall...

    View Post

Blockhead v0.2.1 alpha

Update Notes

  • Fixed incorrect panning calculations (at center pan each stereo channel was mixing in half of the other channel!)
  • Fixed issue where bounced data was inaccurate/dull (caused by panning issue above)
  • Fixed a bug where block effects were not being managed correctly when cloning blocks (may have been a source of some random crashing?)
  • Fixed right-click while dragging a selection causing the selection lasso to get stuck
  • F...

    View Post

Blockhead v0.2.0 alpha

Update notes

  • Added panning (only as a block modulation option currently)
  • Removed the "enable bias" item from effect knob context menu because that's not implemented yet.
  • Uniformity is now a percentage instead of ranging from 0.0 to 1.0 (may break existing save files)

Some answers to feedback

  • Where is sample data stored? When you save a project, the samples are converted to FLAC and stored ...

    View Post

Explanation of Fudge resynthesis

If you click the button on the top right of a block you can switch the playback mode from "Classic" to "Fudge". This is a granular resynthesis algorithm which is designed to sound "interesting" and be very flexible. If it also happens to sound "good" at times then that's more of a happy side effect than a design goal. Many good sounding granular or time-stretching approaches are best at one thing or another, for example some might be good at maintaining snappy transients, some have good sound...

View Post

Blockhead v0.1.0 alpha

You will need to unzip this somewhere to run it. Please let me know if it doesn't work. If you just see the Blockhead splash screen and then it closes then it's probably some horrible DLL loading issue or packaging problem that I will have to investigate.

If you report a crash or bug it's helpful if you can give a description of exactly how to reproduce it.  If it was a random crash that you can't reproduce consistently then just try to explain what you were doing when it happened....

View Post

Blockhead dev log #21

Blockhead now seems to work fine on my laptop. Since it's a pretty bad laptop I hope this means it will work well on the average machine but I'm sure I will encounter some computer specific issues as more people use it.

There are still many bugs I know about, many things that need to be improved, many many many features that need to be implemented, some big (VST support, MIDI support etc) and some small, more effects that need to be added, but I think I'm finally at the first release mi...

View Post

Blockhead dev log #20

I have an old shitty laptop in my wardrobe that I'm currently trying to get Blockhead to work on. The hardware is super old but it would be cool if I could get it working. The PC I've been developing on has a pretty beefy graphics card and up until now I've been using certain GPU features without worrying about it, but unfortunately some of these features are unsupported on the laptop. For example waveforms don't render at all because they use an unsupported OpenGL shading language feature ca...

View Post

Blockhead dev log #19

I've been having trouble posting updates on Patreon, I think they are having server problems. I didn't have much to post anyway because it's been mostly bug fixing and small UI improvements. Here's a quick video of the updated samples panel which is a long way off from being a proper "sample manager" but it's ok for now.

I've been doing a lot of stability testing and still finding loads of issues but I am fixing bugs at a faster rate than I am finding them. I think the alpha will be rea...

View Post

Blockhead dev log #18

Today I fixed a bunch of small bugs, including the sample rate issue I found yesterday.

I then starting working on improving the sample manager panel since at the moment it's really useless. I've been putting off doing this for ages. I won't be making it fully featured yet but at the very least you should be able to rename samples, and scroll through all of the loaded samples, neither of which you can do yet.

I also created this hotkey reference which can be toggled by pressing F1...

View Post

Blockhead dev log #17

I started working through my list of known bugs. In the process I found a bunch of new bugs so my bug list ended up even bigger! I'm getting through them pretty quick though because it's mainly just very small things. There is one big issue with samples with different sample rates no longer playing back properly. No idea what I broke there because I think that was all working before.

I also implemented effect renaming. The rack tries to ensure that every effect always has a unique name ...

View Post

Current roadmap

This changes all the time so take it with a grain of salt. This is only showing the things I have planned for the first two releases. I have a massive list of items on the backburner that are in my tracker but not displayed here.

The main three features I want to finish for the beta release are track effects/modulation, song rendering and panning.

Song rendering should be pretty similar to the bouncing functionality I already have so hopefully that will be easy.

At the momen...

View Post

Blockhead dev log #16

Modulation now seems to be pretty stable. The system in place for managing undo/redo for everything is quite mind bending so I'm not 100% confident that it's all bug free at the moment but I've been doing a bunch of testing and it all seems okay.

I'm using Godot's built-in undo/redo which works pretty well but can be confusing. I'm not an expert but I think there is two main approaches for implementing undo/redo. One is to take a snapshot of the entire program state every time the user ...

View Post

Blockhead dev log #15

Almost done with basic parameter modulation now. There's a bunch of things that are broken but I'm almost there.

One stupid thing that I had to spend a bunch of time on was having values transform correctly between the editor controls and the engine. For example when editing filter frequency the modulation editor and knob will range from something like  0.08Hz to around 16.7kHz. The interesting part of that range is usually around 1kHz and below which would be like the bottom 5% of...

View Post

Blockhead dev log #14

The past few days I have been grinding out the changes to the modulation system which is taking a while but I haven't hit any major problems. I'm probably about 50% done. I am spending a bit more time on it than I need to because I decided to take the opportunity to future-proof things a bit more.

Once I'm done with block effects I might put track effects on hold and work through some of my backlog of known bugs and UI issues. I have 13 items in my tracker of varying complexity, and som...

View Post

Blockhead dev log #13

After yesterday's diversion I'm back to rewriting a bunch of the front-end UI code for modulation parameters.

Part of the problem is that currently every modulatable block parameter and it's envelope data is directly tied to the associated button that appears at the top of the block UI, and it is assumed that each parameter (such as "Amp", "Pitch" etc.) is standard to every block and belongs to at least one sample playback category.

None of this really makes sense for effect param...

View Post

Blockhead dev log #12

I went to bed still thinking about that bug I found yesterday and did my trick of lying there thinking about solutions instead of sleeping. So today I implemented a nice fix which didn't involve any complex rewriting of the block processing system as I feared I would have to do. I did however introduce a theoretical limit on the number of blocks that can be cleanly processed at once (currently set to 4096). Even if some mad person does try to do that it won't crash or anything, but it might g...

View Post

Blockhead dev log #11

Nightmare day. I found a bug unrelated to anything I was working on which causes effects to leave artifacts in some cases.

By design block effects are not processed when the playhead is outside the edge of a block (whereas track effects will work the same way they do in other DAWs). So to avoid clicking at the edges of blocks I add a small fade-in and fade-out when appropriate, and effect data needs to be cleared so that for example the tail of a reverb does not carry over when the arra...

View Post

Blockhead dev log #10

I'm currently working on the boring task of restructuring the way modulation data is stored. The way I originally designed this has worked fine up until now but unfortunately the introduction of effect parameter automation has led to loads of problems, mostly related to saving and loading, and block copy and paste operations.

Trying to get everything working with the current design was just leading to more and more confusing spaghetti code so it's time to throw some stuff away and redo ...

View Post