Skip to content

Libav experiment#198

Open
djdiskmachine wants to merge 41 commits into
1.5.0-candidatefrom
libav_experiment
Open

Libav experiment#198
djdiskmachine wants to merge 41 commits into
1.5.0-candidatefrom
libav_experiment

Conversation

@djdiskmachine
Copy link
Copy Markdown
Owner

Attempt to swap out ffmpeg for libav

djdiskmachine and others added 30 commits October 17, 2025 23:23
Could enable printfx on more platforms
Builds, runs and produces output equivalent to ffmpeg
Pad not implemented
Need to test in cross-compile job
Needs cleanup
Adds backwards compatibility
Bittboy config builds OK!
Garlic config
Miyoo does not build, missing libs in toolchain
Add support for garlicplus, rg35xxplus
Conditionally import libavprocessor if ffmpeg enabled
RG35xx is missing libavfilter required for porting
Added visual confirmation of includes
Fix build error in x86
Removed Miyoo from targets
Fix legacy ffmpeg for garlicplus
Updated vcproj
Update README table
Make LibavProcessor errors more obvious
Remove unnecessary channel forcing in libav parser
Fix typo in makefiles
Logging in rules file
restore vs2008 build
Updated pull request template to improve clarity and add new checklist items.
1.5.0
Contributions:
purelygrey
Per-project option for soft clipping the output (#145)
* Per-project option for soft clipping the output
* Projects with Master Volume over 100 will be capped to 100
* Use pregain to saturate
* Multiple saturation modes
Remove drawing optimization that causes flashing in Song view (#147)
* Removed drawing optimization that caused flashing in Song view

clsource
    Scales
    * implementation by @MaksMakes
    * instrumentation by clsource

simotek
    Add color options for Border Play and Mute (#143)    
    * Adds different color for the > play and _ mute indicators
    Fix rg35xx mapping (#139)            
    * rshoulder and lshoulder were the wrong way
    * Attempt to fix audio randomly dying (185)

kompadre
    Enable skipping JUNK section for WAVs
    * Load more old sample pack CD rips!

mrtnvgr
    Hide lgpt_ prefix for songs #165
    Consistent view title separators #166

nine-h
Reduce nag dialogs (#187)
Allow user to save, load, save as and quit while song is playing


Copy columns (#141)
* Enables copying fx+params into any column in tables and phrases
  Pasting fx into notes column etc does nothing

Nudge functionality (#130)
* In Project view, select tempo and hold B+LEFT/RIGHT to nudge slower/faster
* In Song view, pressing LT+LEFT/RIGHT will do the same

Printable fx in InstrumentView (#155)
* Uses ffmpeg to print reverb to currently selected sample
* New sample with fx is created and assigned to the current instrument
* Only available for platforms mentioned in README of this repo

Other:
    Add line-by-line clang format (#144)
    Check uploads artifacts (#138)
    Globally accessible notifications (#137)
    Update to github actions checkout@v4.1.7 (#136)

Fixes:
Another fix for long sample names
    Sample names that start with the same characters get mixed up
    After reloading the project, samples starting with the same characters
    before being shortened would be mixed up and cause crashes
Fix audio randomly dying (#194)
Long sample names causing crashes in InstrumentView (#189)
Fixed Garlic docker being outdated (#194)
Bug in chainview: column warping (#134)
Jumping below lowest row would cause infinite loop
Jumping from row 0 was not possible in chainview
Limit jump to maximum lowest populated row
Set songview b jumping length to 16 rows in correspondence with LSDJ and M8
Scales no longer affect instrument numbers ([#172](#172))
Bug in Variable:SetString [#169](#169)

Issue in deep clone (#135)
Was possible to accidentally deep clone position into another position

Fix build error for Raspi (#133)
Restore 32bit linux config

Crash when nudging below 0 BPM (shoutout @merumerutho) #127
* Fix packaging for MacOS
    Moving folders named pattern*/ is apparently illegal in macOs 15
* clang-format fixed
    It broke for some reason. Got rid of an unnecessary fetch while at it
* Disable shallow clone
    Switch to master
* Fix grep exit with 0 on no files
* Bump and format Project.h
* Change how macos downloads to avoid the globbing issue
Fix the many errors that happened when moving to MacOS 15
Use find to locate resource folders
Authenticate latest tag fetching
Use jq instead of grep / head / cut extract version number
Move and rename Garlicplus shell scripts to add them to build
* task: add ADDR type
* task: use ADDR for soundfont samples
* fix: load bank using correct type
* fix: use ADDR for loading riff
* task: run clang-format
* fix: win32 build
* task: update CHANGELOG
* task: bump version in project.h
* task: update README
* task: change version to 1.6.0-bacon0


---------

Co-authored-by: Ben Clegg-Li <ben@clegg.tech>
* Support concatenating notifications
When concatenating strings, display notification will no longer be only junk

* Change notification from char* to string
Solves both junk concatenation issue as well as memory leaks.

* Enable y offset for notifications
Useful if not in a loaded project
Allows negative offsets, use with care

* Set default xoffset for notifications

#213
…ce (#215)

* Don't allow creating a new project with the same name in the same place

Allow creating a project with the same name in a different path
Pass currentDirectory to NewProjectDialog
Path field added to NewProjectDialog
When randomising a project name, re run randomizer if name already in use

Adresses #175
* Interpolate selection

Select rectangle of value columns then R+B will fill in values
from the lowest to the highest.
Available in tables and for note values

Removes help legend in value columns, keep only in command cols
    Save as now discards unsaved changes to current project
    Unsaved changes only written to project under new name
    Adds filesystem function Delete(Path&)
    Adds optional argument to PersistencyService::Save(const char* name)

    Save temp file
    Copy temp file to new location
    Delete temp file
    Bump CHANGELOG

    #212
Possible to render from ProjectView

    Notify users when entering and exiting recording
    Remove old config-based recording and references in documentation.
    Add view item
    Pass render mode to MixerService on ProjectView::Update
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants