Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
422 commits
Select commit Hold shift + click to select a range
a0fded9
Improve metainfo with version and more
kowalski7cc Dec 1, 2024
49f324a
Merge pull request #12 from milkytracker/master
capehill Dec 1, 2024
686d39c
Update version to 1.05
capehill Dec 2, 2024
74b278b
master: update documentation
coderofsalvation Dec 4, 2024
dc3150f
Remove unused files
capehill Dec 4, 2024
d5e93cb
vertical scrolling bugfix [thanks silvermantis7] https://github.com/m…
coderofsalvation Dec 5, 2024
5244636
documentation update
coderofsalvation Dec 5, 2024
583d84f
Merge pull request #358 from kowalski7cc/master
coderofsalvation Dec 5, 2024
2acd91e
Initialize hexIndex
capehill Dec 7, 2024
37973c5
Fix some memory leaks
capehill Dec 7, 2024
57bf78c
Allocate instrument from the heap to reduce stack usage
capehill Dec 7, 2024
1a5db40
Initialize hexIndex
capehill Dec 7, 2024
3c24ccd
Fix reference to expired domain
lmnoop Dec 11, 2024
7696622
Fix CSS class name
lmnoop Dec 11, 2024
f36de93
Merge pull request #363 from milkytracker/domainfix
coderofsalvation Dec 11, 2024
cea7a96
Merge pull request #359 from capehill/fix-uninitialized-variable
coderofsalvation Dec 11, 2024
023b7b7
Use C++11 standard version to compile. C++98 doesn't work on GCC11
capehill Dec 11, 2024
92a7fc0
Check stack usage on AmigaOS 4
capehill Dec 11, 2024
cfb5821
move 'Volume ramping' to master FX + rename 'reset limit on mod.load'…
coderofsalvation Dec 19, 2024
1e1f8b5
Merge branch 'feat/volume-ramp-default-off'
coderofsalvation Dec 19, 2024
2b7716c
reverted volume ramping ettings
coderofsalvation Dec 19, 2024
e205287
bugfix: re-enable instrument preview/keyjazz after [accidentally] dis…
coderofsalvation Dec 22, 2024
c3ac78b
added volume ramping type-dialog
coderofsalvation Dec 23, 2024
de215c3
added volume ramping docs
coderofsalvation Dec 23, 2024
7e9360a
added volume ramping docs
coderofsalvation Dec 23, 2024
2b6bd49
doc: typofix
coderofsalvation Dec 23, 2024
3f4f61c
added ASCIISTEP16 + docs + up/down disables pattern-follow
coderofsalvation Dec 26, 2024
1cd8ca7
added check for invalid pathEntries [AmigaDOS] (thanks @Trixie)
coderofsalvation Dec 26, 2024
ca5f05a
ux fix: deselect selection after copy to clipboard (https://modarchiv…
coderofsalvation Dec 26, 2024
ef05af9
documentation update
coderofsalvation Dec 26, 2024
4aaf2d5
master: update documentation
coderofsalvation Dec 26, 2024
cd493fc
updated docs
coderofsalvation Dec 26, 2024
37c2df7
milkymode: ctrl+shift+arrowkeys extends selection downwards (to compe…
coderofsalvation Dec 26, 2024
1ad4fbb
added PasteStep() (ctrl+alt+v in milkymode) for polymeter repeat
coderofsalvation Dec 26, 2024
dbe8210
bugfix: ctrl + minus inserts volslide in volume-column
coderofsalvation Dec 26, 2024
04ce1ac
removed milkytrackerX mention + updated GIF
coderofsalvation Dec 27, 2024
6d7e919
fix: update gif in docs
coderofsalvation Dec 27, 2024
11cbf62
README.md: update showreel GIF
coderofsalvation Dec 27, 2024
758e34a
master: update documentation
coderofsalvation Dec 27, 2024
30337c5
doc: reposition showreel
coderofsalvation Dec 27, 2024
e874bae
added missing VolumeRamp helper
coderofsalvation Dec 27, 2024
22ab6c4
added missing ASCIISTEP16.h
coderofsalvation Dec 27, 2024
3543da3
bugfix: flickering 'patterns'-label during audioclip
coderofsalvation Dec 27, 2024
7b98fb3
wip: add about + help to context menu
coderofsalvation Dec 24, 2024
338edf1
added missing about-shortcut
coderofsalvation Dec 27, 2024
a95b9ca
bugfix attempt: appveyor windows buildfix
coderofsalvation Dec 27, 2024
74b1e70
render to sample now supports overdub-mode (preserves sample-loop-len…
coderofsalvation Dec 28, 2024
63d37c0
bugfix: wav rendering no longer pre-pends silence and extra tick (tha…
coderofsalvation Dec 29, 2024
b57ec44
reverted render bugfix [needs more work]
coderofsalvation Dec 29, 2024
db78d7c
milkymode: ctrl+r repeats current note/value/selection with step-value
coderofsalvation Dec 30, 2024
e1a85aa
nonclassic mode: SEQ=>ADD CLN=>DUP
coderofsalvation Dec 30, 2024
31ba8a9
feature: multitrack WAV export
coderofsalvation Dec 30, 2024
1eacee8
Set C++ standard to C++11.
techanvil Dec 30, 2024
ece27b5
Add export-to-wav utility.
techanvil Dec 27, 2024
b4fa593
Add debug logging to export-to-wav.
techanvil Dec 27, 2024
aa8a6d0
Add debug build target.
techanvil Dec 27, 2024
1e6b9a9
Handle return value correctly.
techanvil Dec 28, 2024
da98993
Create trackerlib library for shared functionality.
techanvil Dec 28, 2024
c4ed563
Use ModuleServices::exportToWAV instead of PlayerGeneric::exportToWAV.
techanvil Dec 28, 2024
89dd087
Use export params from tracker config,
techanvil Dec 28, 2024
6589283
Add explicit cast to fix build error.
techanvil Dec 28, 2024
c69d448
Add command line args to export-to-wav.
techanvil Dec 28, 2024
194f63b
Allow DMG build to be skipped.
techanvil Dec 28, 2024
569c9a3
Allow multi track output.
techanvil Dec 28, 2024
e5e1b74
Rename CLI args.
techanvil Dec 28, 2024
c76fa8c
Remove silent wavs in multi-track mode.
techanvil Dec 28, 2024
ff348fb
Add build-debug to .gitignore.
techanvil Dec 30, 2024
ceee915
Move export-to-wav to its own directory.
techanvil Dec 30, 2024
fc53709
Lift isWavSilent into separate utility.
techanvil Dec 30, 2024
3935e34
Create Parameters class with RAII handling for automatic cleanup.
techanvil Dec 30, 2024
0809549
Fix build errors.
techanvil Dec 30, 2024
77790c1
Rename Wav -> WAV for consistency.
techanvil Dec 30, 2024
d502771
Use platform specific osinterface include.
techanvil Dec 30, 2024
8254e04
Fix build errors.
techanvil Dec 30, 2024
1dbebec
Add comment.
techanvil Dec 31, 2024
c9cba14
Add a verbose flag to export-to-wav.
techanvil Dec 31, 2024
5db46fe
Remove unnecessary changes.
techanvil Dec 31, 2024
b24140b
file-button shows non-opiniated filebrowser
coderofsalvation Jan 3, 2025
8220348
Support Haiku in the CMake build
korli Dec 17, 2024
14479ff
removed CMakeCache.txt
coderofsalvation Jan 10, 2025
c098c45
add env var to prevent autoenv from re-entering nix-shell
coderofsalvation Jan 12, 2025
00fedd6
feature: statusline with builtin docs
coderofsalvation Jan 12, 2025
7972b11
persist statusline when scrolling
coderofsalvation Jan 12, 2025
884c0ab
improved pasteStep + pasteStepFill + selection
coderofsalvation Jan 12, 2025
9c42425
improved contrast regarding empty rows
coderofsalvation Jan 12, 2025
f4aa107
added hightlight row as default
coderofsalvation Jan 12, 2025
71b74ab
improved readability/fontAutoSize for high screenres
coderofsalvation Jan 12, 2025
e90d457
improved preset-button (round-robin gives more expectability as rando…
coderofsalvation Jan 12, 2025
2def93f
bugfix: StepFill functions now calculate maximum row
coderofsalvation Jan 12, 2025
5227de0
bugfix: shift+plus was ignored as well
coderofsalvation Jan 12, 2025
8bd89b5
declutter: moved special paste-methods to own submenu in non-classic …
coderofsalvation Jan 13, 2025
3057e6a
bugfix: https://github.com/milkytracker/MilkyTracker/issues/366
coderofsalvation Jan 13, 2025
4823a75
added A-F to embedded docs for instrument-column
coderofsalvation Jan 13, 2025
ce730ca
cosmetic fix: align items + don't increase font beyond system font
coderofsalvation Jan 13, 2025
9593c96
added synth algo + presets
coderofsalvation Jan 13, 2025
7af91af
optimized contrast [revert]
coderofsalvation Jan 13, 2025
26201a9
added value-memory for custom fade, saturate and milkyexcite fx
coderofsalvation Jan 13, 2025
a25e3ed
allow simultanious synth-modal & pattern editing
coderofsalvation Jan 22, 2025
28e8ed8
added tiny sonant synth
coderofsalvation Jan 22, 2025
ca5d63f
Merge branch 'master' into trh/export-to-wav
techanvil Jan 24, 2025
25cc081
Refactor WAV export functionality: Introduce WAV export parameters an…
techanvil Jan 14, 2025
01636e8
Update export-to-wav include paths and CMake configuration
techanvil Jan 23, 2025
27152d1
Enhance WAV export command-line parsing with improved input validatio…
techanvil Jan 23, 2025
4472ee3
Rename WAVExportParams to WAVExportArgs and update related files
techanvil Jan 23, 2025
b649c6f
Refactor export-to-wav to improve error handling and configuration lo…
techanvil Jan 23, 2025
1f923a6
Improve WAV export arguments initialization and memory management
techanvil Jan 24, 2025
802d385
Add input file existence check in export-to-wav tool
techanvil Jan 24, 2025
78a3ce4
Update SDL_Main.cpp to use WAVExportArgs header
techanvil Jan 24, 2025
18bde8a
Refactor export-to-wav tool: Extract WAV export logic into WAVExporte…
techanvil Jan 24, 2025
d5b3a04
Unify WAV export implementation across platforms using WAVExporter
techanvil Jan 24, 2025
c800ee0
Refactor WAVExporter to support modular export process and improve er…
techanvil Jan 24, 2025
ead9830
Implement deep copy and memory management for WAVExportArgs
techanvil Jan 24, 2025
98b4d34
Fix memory management in WAVExportArgs command-line parsing
techanvil Jan 24, 2025
a6392e1
Add channel count support to WAV export process
techanvil Jan 24, 2025
d044e8d
Improve WAV export error handling and muting array management
techanvil Jan 24, 2025
3ec0bc2
Refactor WAVExporter error handling and argument parsing
techanvil Jan 24, 2025
8f882f7
Add CLI argument parsing library and refactor WAV export argument han…
techanvil Jan 24, 2025
ace6765
Add built-in help functionality to CLIParser
techanvil Jan 24, 2025
45e4715
Enhance CLIParser with additional help text and refactor WAV export a…
techanvil Jan 24, 2025
a20edf8
Improve CLIParser option value validation
techanvil Jan 24, 2025
b146115
Integrate CLI parsing with AppDelegate and main for macOS tracker
techanvil Jan 24, 2025
cd61af7
Refactor WAVExporter to support new CLI parser integration
techanvil Jan 24, 2025
584d869
Refactor WAVExporter to improve parser-based export workflow
techanvil Jan 24, 2025
dd25df0
Update CLI parsing in macOS tracker main and WAV export arguments
techanvil Jan 24, 2025
8fa0013
Add method to set positional argument values in CLIParser
techanvil Jan 24, 2025
a0fcace
Improve file loading during macOS tracker startup
techanvil Jan 24, 2025
081c5a1
Enhance CLIParser to support required positional arguments
techanvil Jan 24, 2025
21a876f
Refactor WAVExporter and CLIParser to improve export workflow
techanvil Jan 24, 2025
8771821
Improve error handling and input validation in WAV export workflow
techanvil Jan 24, 2025
2dc3038
Refactor WAV export main workflow and error handling
techanvil Jan 24, 2025
90d4110
Remove unused CLI option handling in AppDelegate
techanvil Jan 24, 2025
ac1eb56
Standardize code formatting across WAV export and CLI parsing modules
techanvil Jan 25, 2025
1045326
Simplify include paths and remove commented-out code
techanvil Jan 25, 2025
ce63f77
Enhance CLIParser with option value validation and improved usage dis…
techanvil Jan 25, 2025
f476336
Refactor CLIParser to support template constructor and improve memory…
techanvil Jan 25, 2025
2e2b3a6
Enhance CLIParser option detection to support single-letter options
techanvil Jan 25, 2025
ad6c5e7
Enhance CLIParser help flag handling and support custom help flags
techanvil Jan 25, 2025
9b3e2e2
Refactor SDL_Main argument parsing and help handling
techanvil Jan 25, 2025
273c1b7
Simplify SDL_Main argument handling and add debug logging
techanvil Jan 25, 2025
a812242
Improve SDL_Main argument handling with safer memory management
techanvil Jan 25, 2025
af1aa6d
Rename positional argument and remove debug print statements
techanvil Jan 25, 2025
1e74da8
Add support for single-dash CLI option formats in WAV export
techanvil Jan 25, 2025
5ab613f
Update WAVExporter to pass dash format to WAVExportArgs registration
techanvil Jan 25, 2025
481d471
Remove redundant -output option from SDL_Main
techanvil Jan 25, 2025
492e6b3
Add debug method to dump parsed CLI options and arguments
techanvil Jan 25, 2025
3f54daf
Refactor dumpParsedOptions() to use range-based for loop
techanvil Jan 25, 2025
5f086a2
Refactor WAVExporter error handling
techanvil Jan 25, 2025
652f3e8
Remove debug print statements for loadFile and outputWAVFile
techanvil Jan 25, 2025
fbf7350
Consolidate CLI and WAV export functionality into commandlib
techanvil Jan 25, 2025
a61ee5d
Merge pull request #4 from trh-x/trh/export-to-wav-integration
trh-x Jan 25, 2025
5e19d9f
Update input file argument description for module file
techanvil Jan 25, 2025
ee58eff
added UNZ synth + presets
coderofsalvation Jan 25, 2025
e29c96f
improved event-flow between modal and containers based on mousecursor
coderofsalvation Jan 28, 2025
a22a52b
added jump-buttons in help-dialog
coderofsalvation Jan 29, 2025
9f90cf6
updated docs + helpdialog bookmarks + helpdialog now remembers scrollpos
coderofsalvation Jan 29, 2025
fa9179b
Standardize CLI options to use single-dash format
techanvil Feb 8, 2025
613c16b
Improve CLI usage output formatting with dynamic option alignment
techanvil Feb 8, 2025
5ba41e3
Replace export-to-wav tool with milkycli command-line interface
techanvil Feb 8, 2025
d9936f3
Add delay to DMG setup script, to avoid "Can’t get disk" errors.
techanvil Feb 8, 2025
445d7ac
Add missing algorithm header to CLIParser
techanvil Feb 8, 2025
abffcf4
Add a toggle for enharmonic sharps/flats in pattern ctx menu
ebinwalter Feb 5, 2025
37db1be
Merge remote-tracking branch 'trh-x/trh/export-to-wav'
coderofsalvation Feb 12, 2025
7136b2c
feature: percussive UNZsynth
coderofsalvation Feb 12, 2025
a939c4f
bugfix: don't update fonts of contextmenu which are NULL
coderofsalvation Feb 12, 2025
f685c4a
Merge branch 'feat/UNZsynth'
coderofsalvation Feb 12, 2025
3b83543
allow keyjazz on input-less dialogs
coderofsalvation Feb 12, 2025
c398b5c
finished UNZsynth + bugfix FM synth overflow
coderofsalvation Feb 12, 2025
9725e73
updated help dialog
coderofsalvation Feb 12, 2025
759f9ec
bugfix: deselect to prevent additive synthesis after randomnize synth
coderofsalvation Feb 12, 2025
aa650be
tweak: remember help scrollposition after launching synthdialog
coderofsalvation Feb 12, 2025
3b3af46
update default FM preset
coderofsalvation Feb 12, 2025
266974b
tweak: disable loop for percussive UNZsynth
coderofsalvation Feb 12, 2025
a1fafa1
regressionfix: show checkbox checkmark
coderofsalvation Feb 13, 2025
3105472
bugfix: adjust 9XX offset of each pattern not orderposition (thanks M…
coderofsalvation Feb 20, 2025
c47a7ad
windows buildfix #1
coderofsalvation Feb 21, 2025
c571c48
C++11 optimisations
coderofsalvation Feb 21, 2025
62c33c1
added sonant synth bell preset
coderofsalvation Feb 21, 2025
0e62805
UX fix: selection-length (not step) decides repeat (ctrl+r or ctrl+al…
coderofsalvation Feb 21, 2025
1223db4
feature: sf2 import
coderofsalvation Feb 21, 2025
21afa31
bugfix: keydown events did not fallthrough properly
coderofsalvation Feb 25, 2025
739bf9f
feature: addons
coderofsalvation Feb 25, 2025
f175ad8
cosmetic: shortened name to stay within menuruler-length
coderofsalvation Feb 25, 2025
00d68cd
better filebrowser keyjazz vs cycle optimisation
coderofsalvation Feb 26, 2025
bbf9495
bugfix: addon-files did not merge
coderofsalvation Feb 27, 2025
9f09dfa
bugfix: don't bubble keys twice
coderofsalvation Feb 27, 2025
112d741
added pipewire to shell.nix
coderofsalvation Feb 27, 2025
6d1d050
fixed internal/dialog fileselect UX inconsistencies [VK_RETURN now st…
coderofsalvation Feb 27, 2025
14baa28
soundfont-dialog now triggers filebrowser
coderofsalvation Feb 27, 2025
dfdcbe4
expose fill selection to contextmenu
coderofsalvation Feb 27, 2025
4296034
UX cleanup: moved repeat from pattern-submenu below paste
coderofsalvation Feb 27, 2025
c33b38f
cleaned up duplicate items in contextmenu
coderofsalvation Feb 27, 2025
3123588
improved dialog vs section focus (via mouseclick, not mouseover) + re…
coderofsalvation Feb 27, 2025
7a44fb5
UX fix: rightmouse click can focus section/dialog too (faster sample/…
coderofsalvation Feb 27, 2025
fcfadbd
edge-case: dont enable nonexisting envelope (after loading .pat-file)…
coderofsalvation Feb 27, 2025
4ae31e0
bugfix: mouse-rightclick-to-focus does not work reliable on all platf…
coderofsalvation Feb 27, 2025
e952dd7
bugfix: resample offset-checkbox now gets remembered (thx misthalu)
coderofsalvation Feb 27, 2025
ad02c50
swapping sf2 loader for simplified MilkyPlay SF2 loader
coderofsalvation Feb 28, 2025
e6dfdc9
appveyor.yml update to 1804 [1604 no longer supported]
coderofsalvation Feb 28, 2025
7d4677e
appveyor.yml typofix
coderofsalvation Feb 28, 2025
fba004c
appveyor.yml added new google debian key for linux build
coderofsalvation Feb 28, 2025
0c9246f
appveyor build: fix CMakeLists.txt
coderofsalvation Feb 28, 2025
c90130f
setenv() windows compatibility fix
coderofsalvation Feb 28, 2025
ebf0c3b
double-click filebrowser temporarely stops filename-cycling
coderofsalvation Feb 28, 2025
573ecb4
accessibility: enter does not play song in filebrowser
coderofsalvation Feb 28, 2025
d50cb27
limit addons to mac/linux (windowsusers: feel free to enable+test)
coderofsalvation Feb 28, 2025
a5715bd
bugfix: set dangling dialog-pointers to NULL
coderofsalvation Feb 28, 2025
174e090
fix: ramp-in type is now respected during export too
coderofsalvation Mar 1, 2025
a05ba70
fix: decouple sharing of dialog (had side effects)
coderofsalvation Mar 1, 2025
3bd9743
improved rampin handler for HDrecorder
coderofsalvation Mar 1, 2025
bcd120d
fix: ignore note-offs when backtracing instrument
coderofsalvation Mar 1, 2025
5146dde
fix: undostack no longer crashes when there's no sample to compare with
coderofsalvation Mar 2, 2025
2bfb19c
swapped soundfont/sf2.h for a proper (and smaller) SF2 SampleLoader +…
coderofsalvation Mar 3, 2025
4365df5
reroute SF2 instruments from loadInstrument() to loadSample()
coderofsalvation Mar 3, 2025
01de3bc
windows fix for sf2loader integertypes
coderofsalvation Mar 3, 2025
827d2db
add crossfade-option to loop fold fx
coderofsalvation Mar 3, 2025
bf7d870
feat: [new fx: soothe+convolution] by calling existing reverbcode dif…
coderofsalvation Mar 4, 2025
4d727c5
allow more keyjazz on dialogs in non-classic mode
coderofsalvation Mar 4, 2025
25d8e0e
bugfix: dont free empty clipboard
coderofsalvation Mar 4, 2025
8461353
cleanup: removed leftover printf
coderofsalvation Mar 4, 2025
25e277f
ux: remove non-significant sliders in convolutionfx
coderofsalvation Mar 5, 2025
980c584
ux: remove non-significant vars in convolutionfx
coderofsalvation Mar 6, 2025
b2cfee6
fix: xfade loop fold end-fade
coderofsalvation Mar 6, 2025
452822d
don't allow contextmenu's when modaldialogs are open
coderofsalvation Mar 6, 2025
30c31c5
feat: roundrobin instrument toggle
coderofsalvation Mar 7, 2025
8de5ab7
highlight roundrobin in listbox + set nonflat control as default for …
coderofsalvation Mar 9, 2025
1c85edc
improved labels for RR
coderofsalvation Mar 9, 2025
c920777
bumped minimum polyphony for [midi] keyjazz to 12
coderofsalvation Mar 9, 2025
adfa093
removed non-save-able extensions in save-dialog"
coderofsalvation Mar 10, 2025
9d009c5
increased max delay slider
coderofsalvation Mar 11, 2025
4128967
Merge branch 'master' of https://github.com/milkytracker/MilkyTracker…
capehill May 18, 2025
af5164a
Use gnu++11 to workaround compilation error related to strcasecompare
capehill May 18, 2025
683cd79
Merge branch 'milkytracker-master'
capehill May 18, 2025
1d6371a
Link with -athread=native
capehill May 20, 2025
c617aee
Revert gnu++11 change but enable extensions
capehill May 20, 2025
ec05806
always enforce hex instrument numbers when repainting instrumentlist
coderofsalvation Jun 10, 2025
d57ba1a
bugfix: scopes under mainmenu not clickable due to exceeding container
coderofsalvation Jun 11, 2025
227e9a8
bump version for 1.06 release
coderofsalvation Jun 18, 2025
fa63e6b
bumped version in helptext
coderofsalvation Jun 18, 2025
5ee00c4
Check hasArgumentError in milkycli
jcowgill Aug 10, 2025
60ce53e
Use UTC when writing metainfo timestamp
jcowgill Aug 11, 2025
7ada48c
POSIX: fix error of undeclared strcasecmp()
carlo-bramini Aug 15, 2025
517b27f
Build: SET CMP0004 OLD only if CMake < 4.0
kowalski7cc Sep 14, 2025
bb244ca
Compiler needs to know these are constant expressions to not error on…
SpinningSpinLock Feb 5, 2026
c69843e
Move UI operations to main thread
SpinningSpinLock Feb 5, 2026
4894ef3
Merge pull request #392 from carlo-bramini/fix-cygwin-1
coderofsalvation Mar 31, 2026
95cbb9f
Merge pull request #396 from kowalski7cc/hotfix/cmake-list
coderofsalvation Mar 31, 2026
144f1e4
Merge pull request #388 from jcowgill/milkycli-hasargumenterror
coderofsalvation Mar 31, 2026
1c15a66
Merge pull request #404 from SpinningSpinLock/master
coderofsalvation Mar 31, 2026
0b93a4d
fixed 2 SONANT sliders (thanks theorize)
coderofsalvation Mar 31, 2026
2a3ca89
Merge branch 'milkytracker:master' into master
capehill Apr 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# The build output folder
# The build output folders
build/

# Resources generated with docerator on OSX
resources/pictures/docicons/osx/MilkyTracker-*.icns
resources/pictures/docicons/osx/docerator/
build-debug/

# Editor config files
.vscode/
.vs/

# Audio files
*.wav
*.wav.asd
44 changes: 0 additions & 44 deletions .travis.yml

This file was deleted.

47 changes: 27 additions & 20 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
cmake_minimum_required(VERSION 3.10)
project(MilkyTracker)

# Set C++ standard to C++98
set(CMAKE_CXX_STANDARD 98)
set(CMAKE_CXX_EXTENSIONS OFF)
# Set C++ standard to C++11
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_EXTENSIONS ON)

# Enable IDE solution folders
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
Expand Down Expand Up @@ -52,8 +52,8 @@ list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

# Version number in format X.YY.ZZ
set(VER_X 1)
set(VER_YY 03)
set(VER_ZZ 00)
set(VER_YY 05)
set(VER_ZZ 01)
set(VER_FULL "${VER_X}.${VER_YY}.${VER_ZZ}")

# Generate version header from the above
Expand All @@ -63,7 +63,9 @@ configure_file(
)

# Packaging
if(APPLE)
option(BUILD_DMG "Build DMG package on macOS" ON)

if(APPLE AND BUILD_DMG)
set(CPACK_GENERATOR DragNDrop)
set(CPACK_DMG_VOLUME_NAME "${PROJECT_NAME} ${VER_FULL}")
set(
Expand All @@ -89,17 +91,6 @@ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "FastTracker II compatible music tracker")
include(CPack)

if(APPLE)
# Warn if deployment target isn't set to Lion
if(NOT CMAKE_OSX_DEPLOYMENT_TARGET MATCHES "10.7")
message(WARNING
"Your deployment target is either unset or not set to \"10.7\", "
"which means that the binaries produced may not run on earlier "
"versions of macOS.\n"
"Please re-run CMake with '-DCMAKE_OSX_DEPLOYMENT_TARGET=10.7' "
"or change the variable in the CMake GUI to target Lion and newer."
)
endif()

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")

# Set variables for generating the Info.plist file
Expand Down Expand Up @@ -166,10 +157,16 @@ elseif(WIN32)
# Windows MIDI support requires no external libraries
message(STATUS "Enabled MIDI support (WinMM)")
add_subdirectory(src/midi)
elseif(HAIKU)
# Haiku MIDI support requires no external libraries
message(STATUS "Enabled MIDI support (Haiku)")
add_subdirectory(src/midi)
else()
# Workaround for SDL bug #3295, which occurs in SDL2 <2.0.5
# https://bugzilla.libsdl.org/show_bug.cgi?id=3295
cmake_policy(SET CMP0004 OLD)
if(${CMAKE_VERSION} VERSION_LESS "4.0.0")
cmake_policy(SET CMP0004 OLD)
endif()

find_package(SDL2 REQUIRED)
endif()
Expand Down Expand Up @@ -198,8 +195,9 @@ if(UNIX)

# Linux MIDI support requires ALSA and RtMidi
if(ALSA_FOUND)
find_package(RTMIDI 2.1.0)
if(RTMIDI_FOUND)
find_package(RTMIDI 2.1) # 2.1.0 and compatible versions
if(RTMIDI_FOUND) # https://github.com/milkytracker/MilkyTracker/issues/309
set(CMAKE_CXX_STANDARD 11) # https://github.com/milkytracker/MilkyTracker/issues/262
message(STATUS "Enabled MIDI support (ALSA/RtMidi)")
add_subdirectory(src/midi)
else()
Expand All @@ -208,6 +206,14 @@ if(UNIX)
else()
message("MIDI support disabled (ALSA unavailable)")
endif()

# Metainfo version and timestamp configuration, mandatory for flathub
string( TIMESTAMP METAINFO_DATE "%Y-%m-%d" UTC )
configure_file(
${PROJECT_SOURCE_DIR}/resources/org.milkytracker.MilkyTracker.metainfo.xml.in
${PROJECT_BINARY_DIR}/resources/org.milkytracker.MilkyTracker.metainfo.xml
@ONLY
)
endif()
endif()

Expand All @@ -223,6 +229,7 @@ add_subdirectory(src/fx)
add_subdirectory(src/milkyplay)
add_subdirectory(src/ppui)
add_subdirectory(src/tracker)
add_subdirectory(src/tools/milkycli)

# Set MilkyTracker target as startup project in Visual Studio
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT tracker)
41 changes: 41 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,46 @@
# MilkyTracker ChangeLog

## 30/11/2024 (v1.05):

* sample-editor: synth-buttons are disabled on non-generated samples (https://github.com/milkytracker/MilkyTracker/issues/341#issuecomment-2138497797)
* documentation: updated with synth / sample-editor fx usage
* ui: cleanup ui interface (classic ui available via config > layout > classic UX)
* ui: removed onboarding text in listboxes (= help button now)
* pattern recording: handle row rounding for note-offs (thanks Guy Sviry)
* pattern recording: Control roundToClosestRow using new config flag (thanks Guy Sviry)
* pattern recording: Enable RecPosProvider roundToClosestRow (thanks Guy Sviry)
* ui scaling: nearest pixel-filtering can be enabled via SCALE_NEAREST=1 env-var
* sample-editor: better compand + defaults
* smaple-editor: added vocoder, saturator, milky exciter, delay, timestretch
* system: screensaver is no longer inhibited (thanks silvermantis7)
* system: initialise ticker to 0 (thanks psykose)
* MacOS: Detect Control key in addition to Command
* MacOS: Remove docicons and fix packaging
* repo: added nix shell definition
* system: [bugfix: hint windows to find std::getenv
* ui: added vu-meters from MilkyTrackerX

## 05/07/2023 (v1.04):

* [pattern-editor: stamp-like drag-drop selections](https://github.com/milkytracker/MilkyTracker/pull/277)
* [UX: responsive file dialog](https://github.com/milkytracker/MilkyTracker/pull/285)
* [copy/pasting sample now reflects relative note too](https://github.com/milkytracker/MilkyTracker/pull/290)
* [liveperformance: shortcuts for channel highlighting/muting ](https://github.com/milkytracker/MilkyTracker/pull/289)
* [linux: midi-in port selection](https://github.com/milkytracker/MilkyTracker/pull/289)
* [sample-editor: fadein, fadeout, loop fold](https://github.com/milkytracker/MilkyTracker/pull/299)
* [sample-editor: improved algo & UX of compressor](https://github.com/milkytracker/MilkyTracker/pull/300)
* [improved navigation milkytracker-keyboard](https://github.com/milkytracker/MilkyTracker/pull/288)
* UX: added CTA's in instrument editor for new users

## Bugs fixed
* switch to C11 when compiling RTMIDI
* [ability to run in non-opengl mode again](https://github.com/milkytracker/MilkyTracker/pull/289)
* Fix uninitialized read in piano control (nyanpasu64 ❤)
* Fix About screen reading uninitialized memory (nyanpasu64 ❤)
* Fix uninitialized fields in PPListBox (nyanpasu64 ❤)
* Fix uninitialized fields in PatternEditorControl (nyanpasu64 ❤)
* fix wrong cwd when loading file from command line (mothcompute ❤)

## 12/12/2020 (v1.03):

### What's new:
Expand Down
27 changes: 25 additions & 2 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ line.
Step 2 varies depending on the target OS/build system.
On Linux and macOS (when using GNU make):

The above steps can be accomplished by running `build.sh`. This will also
attempt to generate a release package appropriate to the current system.

```
$ make
```
Expand All @@ -101,5 +104,25 @@ recommended way of obtaining these is by using Homebrew or MacPorts.
- libtool
- xmlto

The correct way to build a release .DMG for macOS, including
special document icons, is to run the `build_macos.sh` script.
The correct way to build a release .DMG for macOS is to run the `build.sh`
script.

## Rebuilding internal documentation + default addons file

The following scripts (rarely) need to be run when one of these file changes:

* `doc/Milkytracker.html` needs `src/tool/generateHelp.sh` (to generate `src/tracker/DialogHelpText.h`)
* `src/tools/addons.txt` needs `src/tool/generateAddons.sh` (to generate `src/tracker/Addons.h`)

> NOTE: don't update `doc/Milkytracker.html`, instead update/mirror https://github.com/milkytracker/manual

## Environment flags

| env var | info |
|---------------|----------------------------------------------|
| NO_SCALE=1 | disabling resizing/scaling UI |
| SCALE_NEAREST | sharper pixels (default linear filtering is more blurry) for resizing window|
| MIDI_IN=2 | select MIDI port 2 (default=0) for midi input (requires portmidi compiled)|
| HOME | directory for home-button in filebrowser |
| NO_OPENGL | disable hardware acceleration (embedded devices e.g. |
| XDG_CONFIG_HOME | for linux: specifies where to store config |
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
MilkyTracker - Cross-Platform XM Tracker
========================================

[![Travis Build Status](https://travis-ci.org/milkytracker/MilkyTracker.svg?branch=master)](https://travis-ci.org/milkytracker/MilkyTracker)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/milkytracker/MilkyTracker?branch=master&svg=true)](https://ci.appveyor.com/project/Deltafire/milkytracker)

<img src="https://milkytracker.org/img/milkytracker.gif" style="max-width:600px"/>

MilkyTracker is an multi-platform music application for creating .MOD
and .XM module files. It attempts to recreate the module replay and
user experience of the popular DOS program Fasttracker II, with
special playback modes available for improved Amiga ProTracker 2/3
compatibility.

Refer to http://milkytracker.titandemo.org/?about for further details.
## [⬇ DOWNLOAD](https://milkytracker.org/downloads)

## [CHAT COMMUNITY](https://milkytracker.org/community/)

Refer to http://milkytracker.org/about for further details.

Please read the file [INSTALL.md][] for installation instructions.

Expand Down
66 changes: 59 additions & 7 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,80 @@ platform:
- Win32
- x64

image:
- Ubuntu1604
- Visual Studio 2017

environment:
APPVEYOR_YML_DISABLE_PS_LINUX: true

install:
- git submodule update --init --recursive
- ps: |
$env:GIT_TAG = (git describe HEAD | sed -E "s/-.+$//")
Update-AppveyorBuild -Version "$env:GIT_TAG-$env:APPVEYOR_BUILD_NUMBER"

before_build:
- md c:\projects\milkytracker\build
- cd c:\projects\milkytracker\build
- if %platform% == Win32 cmake -G "Visual Studio 14" -T v140_xp ..
- if %platform% == x64 cmake -G "Visual Studio 14 Win64" -T v140_xp ..
- sh: wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
- sh: sudo apt-get update
- sh: sudo apt-get install libjack-dev liblhasa-dev librtmidi-dev libsdl2-dev libzzip-dev -y
- sh: if [ $PLATFORM == "Win32" ]; then exit 0; fi
- sh: mkdir -p build
- sh: cd build
- sh:
- cmd: pwd
- cmd: md build
- cmd: cd build
- cmd: if %platform% == Win32 cmake -G "Visual Studio 15 2017" -T v140_xp ..
- cmd: if %platform% == x64 cmake -G "Visual Studio 15 2017 Win64" -T v140_xp ..
- cmd: dir

for:
-
matrix:
only:
- image: Ubuntu1604

build_script:
- sh: cmake -DCMAKE_BUILD_TYPE=Debug ..
- sh: pwd
- sh: make
- sh: cpack -C %configuration% -D CPACK_GENERATOR="ZIP"
- sh: cd ..
- sh: unzip build/milkytracker*.zip
- sh: echo create AppImage
- sh: ls -la
- sh: cp -r milkytracker-* Milkytracker-x86_64.AppDir
- sh: cd Milkytracker-x86_64.AppDir
- sh: echo -e '#!/bin/sh\nHERE="$(dirname "$(readlink -f "${0}")")"\nLD_LIBRARY_PATH="$HERE/usr/lib:$LD_LIBRARY_PATH" $HERE/bin/milkytracker "$@"' > AppRun && chmod +x AppRun
- sh: echo CHECKING LIBS && find . -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq
- sh: mkdir -p usr/share usr/lib
- sh: objdump -p bin/milkytracker | awk '/ NEEDED/ {print $2}'
#- sh: objdump -p bin/milkytracker | awk '/ NEEDED/ {print $2}' | while read lib; do { set +e; test -f /usr/lib/x86_64-linux-gnu/$lib && cp /usr/lib/x86_64-linux-gnu/$lib usr/lib/.; set -e; } done
- sh: cp /usr/lib/x86_64-linux-gnu/{librtmidi*,libzzip-0.so.13,libsnd*,libvorb*,libFLAC*,libffi*,libogg*,liblhasa*} usr/lib/.
- sh: cd usr && ln -s lib x86_64-linux-gnu && cd -
- sh: cp ../resources/pictures/carton.png milkytracker.png
- sh: cp ../resources/milkytracker.desktop .
- sh: sed -i 's|MilkyTracker|Milkytracker|g;s|Comment=.*|Comment=A Portable SampleTracker DAW|g' milkytracker.desktop
#- sh: cp ../resources/org.milkytracker.MilkyTracker.metainfo.xml /usr/share/metainfo/
- sh: find .
- sh: cd ..
- sh: wget 'https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage';
- sh: chmod +x appimagetool*.AppImage
- sh: ./appimagetool-* Milkytracker-x86_64.AppDir
- sh: pwd

build:
project: c:\projects\milkytracker\build\MilkyTracker.sln
project: build\MilkyTracker.sln

after_build:
# https://github.com/chocolatey/chocolatey/issues/431
- cmake -E remove -f c:\programdata\chocolatey\bin\cpack.exe
- cpack -C %configuration%
- cmd: cmake -E remove -f c:\programdata\chocolatey\bin\cpack.exe
- cmd: cpack -C %configuration%

artifacts:
- path: build\milkytracker*.zip
- path: Milky*.AppImage

deploy:
description: Release $(appveyor_repo_tag_name)
Expand Down
Loading