diff --git a/.gitignore b/.gitignore
index a2dbb0f4..9e070367 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 0a8b5266..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-language: cpp
-git:
- submodules: true
-jobs:
- include:
- - os: linux
- dist: bionic
- addons:
- apt:
- packages:
- - libjack-dev
- - liblhasa-dev
- - librtmidi-dev
- - libsdl2-dev
- - libzzip-dev
- script: &cmake_build
- - mkdir build
- - pushd build
- - cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 ..
- - cmake --build .
- - cpack
- - popd
- - os: osx
- addons:
- homebrew:
- packages:
- - xmlto
- before_install:
- - pushd resources/pictures/docicons/osx
- - wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/docerator/docerator-2.0.zip
- - unzip docerator-2.0.zip -d docerator
- - rm docerator-2.0.zip
- - "/usr/bin/python genicons.py"
- - popd
- script: *cmake_build
-deploy:
- provider: releases
- token: $GITHUB_TOKEN
- skip_cleanup: true
- file_glob: true
- file: build/milkytracker-*
- on:
- repo: milkytracker/MilkyTracker
- tags: true
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0bce5937..85d3e191 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -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)
@@ -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
@@ -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(
@@ -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
@@ -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()
@@ -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()
@@ -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()
@@ -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)
diff --git a/ChangeLog.md b/ChangeLog.md
index ab802bef..9b7671bb 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -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:
diff --git a/INSTALL.md b/INSTALL.md
index f5f3c127..3de1010c 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -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
```
@@ -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 |
diff --git a/README.md b/README.md
index 604891b9..29d4f65a 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,21 @@
MilkyTracker - Cross-Platform XM Tracker
========================================
-[](https://travis-ci.org/milkytracker/MilkyTracker)
[](https://ci.appveyor.com/project/Deltafire/milkytracker)
+
+
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.
diff --git a/appveyor.yml b/appveyor.yml
index 69a5837e..775325ca 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -5,6 +5,13 @@ platform:
- Win32
- x64
+image:
+ - Ubuntu1604
+ - Visual Studio 2017
+
+environment:
+ APPVEYOR_YML_DISABLE_PS_LINUX: true
+
install:
- git submodule update --init --recursive
- ps: |
@@ -12,21 +19,66 @@ install:
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)
diff --git a/build.sh b/build.sh
new file mode 100755
index 00000000..a96f5e56
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+# https://crascit.com/2016/04/03/scripting-cmake-builds/
+
+# Set defaults
+BUILD_TYPE="Release"
+BUILD_DMG=ON
+
+# Parse arguments
+while [[ $# -gt 0 ]]; do
+ case $1 in
+ Release|Debug)
+ BUILD_TYPE="$1"
+ ;;
+ --no-dmg)
+ BUILD_DMG=OFF
+ ;;
+ *)
+ echo "Unknown argument: $1"
+ echo "Usage: $0 [Release|Debug] [--no-dmg]"
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+# Set build directory based on build type
+BUILD_DIR="build"
+CMAKE_FLAGS="-DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_DMG=$BUILD_DMG"
+
+if [[ "$BUILD_TYPE" == "Debug" ]]; then
+ BUILD_DIR="build-debug"
+ # Add debug-specific flags
+ CMAKE_FLAGS="$CMAKE_FLAGS -DCMAKE_CXX_FLAGS_DEBUG='-g3'"
+fi
+
+echo "Building MilkyTracker in $BUILD_TYPE mode in $BUILD_DIR..."
+if [ "$BUILD_DMG" = "OFF" ]; then
+ echo "DMG generation: OFF"
+fi
+
+cmake -E make_directory $BUILD_DIR
+pushd $BUILD_DIR
+cmake $CMAKE_FLAGS ..
+cmake --build . --config $BUILD_TYPE
+cpack .
+popd
diff --git a/build_macos.sh b/build_macos.sh
deleted file mode 100755
index 07b08673..00000000
--- a/build_macos.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-# https://crascit.com/2016/04/03/scripting-cmake-builds/
-unamestr=`uname`
-
-if [[ "$unamestr" != 'Darwin' ]]; then
- echo "Platform is not macOS but $unamestr"
- exit 1
-fi
-
-pushd resources/pictures/docicons/osx
-curl -O https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/docerator/docerator-2.0.zip
-unzip -o docerator-2.0.zip -d docerator
-rm docerator-2.0.zip
-./genicons.py
-popd
-
-cmake -E make_directory build
-pushd build
-cmake -DCMAKE_BUILD_TYPE=Release ..
-cmake --build . --config Release
-cpack .
-popd
diff --git a/build_rpi.sh b/build_rpi.sh
new file mode 100755
index 00000000..5e97a8d7
--- /dev/null
+++ b/build_rpi.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+# Usage:
+# locally: ./build_rpi.sh compile alpine
+# ./build_rpi.sh compile raspbian
+# and so on
+#
+# thru docker/podman:
+# ./build_rpi.sh oci # this will build all binaries
+
+toolkit(){
+ test -d rpi || git clone --depth=1 https://github.com/raspberrypi/tools rpi
+ test -d || mkdir build
+ export CC=$(pwd)/rpi/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi-gcc
+ export CPP=$(pwd)/rpi/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi-c++
+ cd build
+ cmake -D CMAKE_C_COMPILER=$CC -D CMAKE_CXX_COMPILER=$CPP ..
+ # 32bit: /rpi/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi-gcc
+ # 64bit: /rpi/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
+}
+
+compile(){
+ echo $1 | grep alpine && {
+ apk update
+ apk add sdl2-dev cmake build-base
+ }
+ echo $1 | grep raspbian && {
+ apt-get update
+ apt-get install cmake libsdl2-dev
+ }
+ cd /src
+ test -d build && rm -rf build
+ mkdir build
+ cd build
+ cmake ..
+ make
+}
+
+oci(){
+ OCI=$(which docker || which podman)
+ which qemu-arm || sudo apt install -y qemu qemu-user-static qemu-user binfmt-support
+
+ alpine(){
+ IMAGES="arm64v8/alpine:3.18.2 arm32v7/alpine:3.18.2 arm32v6/alpine:3.18.2"
+ $OCI run --rm --privileged multiarch/qemu-user-static:register --reset
+ for IMG in $IMAGES; do
+ set -x
+ $OCI run --rm --privileged docker/binfmt:820fdd95a9972a5308930a2bdfb8573dd4447ad3 # enable arm
+ $OCI run -it --privileged --rm --volume=$(pwd):/src $IMG src/build_rpi.sh compile $IMG
+ cp build/src/tracker/milkytracker milkytracker.$( echo $IMG | sed 's/[\/:]/-/g')
+ done
+ }
+
+ raspbian(){
+ ARCHS="linux/arm/v6 linux/arm/v7 linux/arm64"
+ for ARCH in $ARCHS; do
+ set -x
+ $OCI run --rm --privileged docker/binfmt:820fdd95a9972a5308930a2bdfb8573dd4447ad3 # enable arm
+ $OCI run -it --privileged --rm --volume=$(pwd):/src --platform=$ARCH navikey/raspbian-buster src/build_rpi.sh compile raspbian
+ cp build/src/tracker/milkytracker milkytracker.$( echo $ARCH | sed 's/linux//g;s/[\/:]//g')
+ done
+
+ }
+
+ raspbian
+ #alpine
+}
+
+"$@"
diff --git a/docs/ChangeLog.html b/docs/ChangeLog.html
index 118f6fa1..2f6154e3 100644
--- a/docs/ChangeLog.html
+++ b/docs/ChangeLog.html
@@ -150,6 +150,66 @@
- Hello and welcome to MilkyTracker, an open source multi-platform Fasttracker II compatible music tracker program. This document holds a lot of valuable information about the tracker but it's not a tracking manual. If you want to learn more about tracking and how it's done, the Internet is your friend. We host some resources on MilkyTracker.titandemo.org as well. + Hello and welcome to MilkyTracker, an all-in-one Tracker musicstudio. + It's open source, multi-platform and inspired by and compatible with Fasttracker II.
@@ -165,15 +170,18 @@
MilkyTracker currently runs on the following platforms:
@@ -232,16 +240,12 @@MilkyTracker is an open source, multi-platform music application; more specifically part of the tracker family. It attempts to recreate the module replay and user experience of the popular DOS application Fasttracker II, with special playback modes available for improved Amiga ProTracker 2.x/3.x compatibility. MilkyTracker is not "another Windows tracker", which should already be made obvious by the plethora of supported desktop and portable platforms. In fact it started as a project to bring tracking to the Pocket PC. When this milestone was reached, the next one was creating a truly FT2 compatible tracker for portable as well as modern desktop platforms.
- - -+ The sample editor is an exciting part of Milkytracker, and gives you access to synths, waveform generators and effects. + All these are straightforward in their use, an come in 3 types: +
++ Previewable effects are audible while playing a note/pattern with the selected sample, and + changing sliders at the same time. In other cases the effect needs to be applied first manually + (undo-button will undo the effect). +
+
+ Modulating effects use the clipboard contents (select a sample, and press the copy-button) to apply
+ the effect to a selected sample.
+ For example to vocode a sample with another, first copy a sample to the clipboard, then select another sample
+ before launching the vocoder (contextmenu > FX > Vocoder).
+
+ For samplist and sampletracker artists, the possibilities and combinations here are exciting & endless. +
+ +
+ Milkytracker is also a loopstation to create, edit and mix sample-loops for use in modules or external gear.
+ It ships with ability to render a pattern into a sample(loop):
+
+ The current selected sample (in the sample-editor) will be the target sample.
+ Overdub mode will act as a loop-pedal: it records the pattern into the sample (while preserving the target sample-length).
+ This allows for complex loops and exciting bundling capabilities.
+ These exciting features can be found in the pattern and sample-editor contextmenu.
+
+ MilkyTracker offers a modest a multi-synthesizer to generate looped or single/multi-cycle waveforms.
+ A synth-dialog appears when pressing the 'synth' or '*'-button in the sample-screen.
+ The first slider allows several synth-algorithms:
+
+ These rules apply to all synthesis options: +
++ Note: most parameters allow sample-overflow (long release/reverb/delay leaks into beginning of sample) + to aid seamless looping. Also, everything can be further modulated by the Instrument editor + (TIP: check the volume envelope-checkbox) to produce infinite unique textures and synths, so it does not + stop at the ADSR of FM. +
++ ASCIISYNTH naming-convention +
++ Pressing 'OK' after the 'synth'-button will name the sample via the ASCIISYNTH naming-convention. + This allows editing the generated preset across MOD/XM-modules (named with a 'M1' milkysynth prefix) later on. + In additive mode this gives you only access to the last generated preset. +
++ FM parameters: +
++ Cycle parameters: +
++ SONANT parameters: +
++ UNZ parameters: +
++ Milkytracker takes a revolutionary approach compared to a most midi samplers: +
++ MOD files are true pieces of art when it comes to combining things in max 4 channels. +
+
+ The scopes allow you to see the sample-signal & vu-meters, which can be controlled by mouse and keyboard:
+
MilkyTracker offers various resampling options for module playback, rendering and sample processing. These are:
@@ -285,111 +570,139 @@While the choice of resampler is a matter of personal taste, you should keep in mind that Linear interpolation represents the highest quality option available in Fasttracker II so that's what the majority of .XM files were probably made (to be played) with. Many chiptunes will however sound very muffled with interpolation because of their short samples and therefore relatively greater impact of interpolation. The Amiga modes are meant to be used with 4 channel .MODs only. Precise Sinc is a CPU killer - great for resampling in the sample editor but don't expect hot real-time performance.
-+ The purpose of ramping in samplers, is to avoid unwanted clicks in the song. Clicks happen when there is a sudden DC offset change, which usually occurs: +
+- MilkyTracker enables you to open and play up to 32 modules simultaneously and to exchange data between them. Initially, tabs are invisible but can be activated with keyboard shortcuts described below. There are some configurable options for tabs as well, like automatically opening modules in new tabs and background stopping behavior control. You can choose to never stop playback on background tabs, or to automatically stop on tab change or stop when playback on another tab is started. Playback can also resume upon returning to a tab. + Let's talk about the last two cases. Ramping is good in these cases because otherwise a click is simply unavoidable. + When a sample cuts in the song, the song author has little choice about the phase/position of the sample at the beginning of a tick. +
++ In the first case, however, we can say that if the sample starts with a DC offset, then the sample actually contains a click. + Is it an intentional click or a mistake of recording? + In old mod files, there are certainly plenty of circumstances where there was some error in sampling, and the tools back then could not easily deal with DC offset removal, etc, so it's fine if we ramp it in, even though it may not be "authentic" (plenty of old mod players did not have ramping). + This is basically in the same category of 'the listener fixing the song' as surround sound, reverb, EQ in the player.
++ MilkyTracker enables you to open and play up to 32 modules simultaneously and to exchange data between them. Initially, tabs are invisible but can be activated with keyboard shortcuts described below. There are some configurable options for tabs as well, like automatically opening modules in new tabs and background stopping behavior control. You can choose to never stop playback on background tabs, or to automatically stop on tab change or stop when playback on another tab is started. Playback can also resume upon returning to a tab. +
- -MilkyTracker can import a wide range of tracker module formats but since Milky is a FT2 clone, modules are replayed in an FT2 environment which means not all features of different formats are supported. MilkyTracker also has basic archive support, so it's possible to load zipped, powerpacked and UMX modules directly.
| .669 | 669 Composer/Unis669 (PC) |
| .AMF | Asylum Music Format ("Crusader" in-game music) (PC) |
| Digital Sound and Music Interface (DSMI) library (PC) | |
| .AMS | Extreme Tracker (PC) |
| Velvet Studio (PC) | |
| .CBA | Chuck Biscuits+Black Artist module format (PC) |
| .DBM | DigiBooster Pro (Amiga) |
| .DIGI | Digibooster 1.0-1.7 (Amiga) |
| .DSM | Digisound Interface Kit (DSIK) library (PC) |
| Dynamic Studio (PC) | |
| .DTM | Digital Tracker (Atari) |
| DigiTrekker 3.0 (PC) | |
| .FAR | Farandole Composer (PC) |
| .GDM | General Digimusic (PC) |
| .GMC | Game Music Creator (Amiga) |
| .IMF | Imago Orpheus (PC) |
| .IT | Impulse Tracker (PC) |
| .MDL | DigiTrakker 1.0-3.0 (PC) |
| .MOD | Sound-/ProTracker and variants (Amiga & PC) |
| .MTM | MultiTracker (PC) |
| .MXM | Cubic Tiny XM (PC) |
| .OKT | Oktalyzer (Amiga) |
| .PLM | DisorderTracker II (PC) |
| .PSM | Epic MegaGames MASI (PC) |
| .PTM | PolyTracker (PC) |
| .S3M | Scream Tracker 3.0 (PC) |
| .SFX | SoundFX (Amiga) |
| .STM | Scream Tracker 2.0 (PC) |
| .ULT | UltraTracker (PC) |
| .UNI | MikMod (PC) |
| .XM | Fasttracker II (PC) |
| .MOD | ProTracker boundaries (including 64kb max sample length), although can save 2–32 channels |
| .WAV | Microsoft/IBM PCM Waveform audio rendering |
| .XM | Fasttracker II compatible, not as common as one might think |
Milky can load practically anything as RAW PCM audio samples; one of FT2's famous features.
| .8SVX / .IFF | Compressed/uncompressed Interchange File Format |
| .AIF / .AIFF | Apple Audio Interchange File Format |
| .WAV | Microsoft/IBM uncompressed PCM Waveform audio |
| .* | RAW PCM audio |
| .IFF | Uncompressed Interchange File Format |
| .WAV | Microsoft/IBM uncompressed PCM Waveform audio |
MilkyTracker can load and save FT2's eXtended Instrument (.XI) format and additionally import Gravis Ultrasound GF1 Patch (.PAT) files.
- - - - -MilkyTracker handles FT2's eXtended Pattern (.XP) and eXtended Track (.XT) files with full compatibility.
- - -By user request, MilkyTracker features two edit modes. You can switch between these in the Config screen (Misc. tab). To learn about the differences and which might better suit you, read the appropriate sections below. There are a couple of shortcuts that are the same for both modes so let's clear those out of the way first:
- Please note that under Mac OS X the Command key is used instead of the Ctrl key. + Please note that under Mac OS X the Command key can be used in addition to the Ctrl key.
| Alt-Enter | Switch between full screen and windowed display (Windows & SDL) |
| Shift-Command-F | Switch between full screen and windowed display (OS X) |
| Shift-M | Mute current channel |
| Ctrl-Shift-M | Invert muting |
| Shift-U | Un-mute all |
| Ctrl-Shift-T | Open a new tab |
| Ctrl-Shift-W | Close current tab |
| Ctrl-Shift-Left | Select previous tab |
| Ctrl-Shift-Right | Select next tab |
| Ctrl-= | Increment instrument number of all notes in the current selection | +
| Alt-= | Increment instrument number of all notes in the current selection |
| Ctrl-- | Decrement instrument number of all notes in the current selection | +
| Alt-- | Decrement instrument number of all notes in the current selection |
| Ctrl-Shift-= | Increment instrument number of all notes in the current track under the cursor |
| Ctrl-Shift-- | Decrement instrument number of all notes in the current track under the cursor |
- The MilkyTracker mode basically is a bit more "modern" because you can focus on different parts (e.g. Pattern Editor, Instrument listbox, Sample listbox etc.) and when you're pressing keys, they're routed to the focused control. Keyboard shortcuts are also more standard; you can select by pressing the SHIFT key and navigating with the cursor keys, cut, copy & paste by using Ctrl-X/C/V etc. Users who are new to tracking will probably find this a bit more intuitive. + The MilkyTracker mode basically is a bit more "modern" because you can focus on different parts (e.g. Pattern Editor, + Instrument listbox, Sample listbox etc.) and when you're pressing keys, they're routed to the focused control. + Keyboard shortcuts are also more standard / compatible with slim keyboards. + Users who are new to tracking will probably find this a bit more intuitive.
+| Ctrl-Alt- | +|
| Ctrl-Alt-Space | (cycles thru pattern/instrument/sampler section) |
| A | Advanced edit | +
| Ctrl-Alt-A | Advanced edit |
| C | Configuration | +
| Ctrl-Alt-C | Configuration |
| D | Disk operations | +
| Ctrl-Alt-D | Disk operations |
| I | Instrument editor | +
| Ctrl-Alt-I | Instrument editor |
| R | Disk recorder | +
| Ctrl-Alt-R | Disk recorder |
| S | Sample editor | +
| Ctrl-Alt-S | Sample editor |
| T | Transpose | +
| Ctrl-Alt-T | Transpose |
| X | Main screen | +
| Ctrl-Alt-X | Main screen |
| Z | Toggle scopes | +
| Ctrl-Alt-Z | Toggle scopes |
| 2, 3, 5, 6… | Play / insert notes (depending on whether edit mode is on) |
| Q, W, E, R… | |
| S, D, F, G… | |
| Z, X, C, V… | |
| F1…F8 | Select octave |
| Ctrl-Shift-1…8 | |
| Space | Toggle pattern editor focus (edit mode on/off) |
| Enter | Play song from current order |
| Ctrl-Enter | Play current pattern from beginning |
| Shift-Enter | Play current pattern from cursor position |
| Shift-F9 | Play current pattern from beginning (same as Ctrl-Enter) |
| Shift-F10 | Play current pattern from position after the first quarter of the pattern length |
| Shift-F11 | Play current pattern from position after the second quarter of the pattern length |
| Shift-F12 | Play current pattern from position after the third quarter of the pattern length |
| Alt-Space | Play song from current row (stop and return when keys are released) |
| Shift-Space | Play row by row |
| Esc | Stop |
| Ctrl-F | Toggle song follow |
| Ctrl-P | Toggle prospective pattern view |
| Ctrl-W | Toggle pattern wrapping |
| Ctrl-L | Toggle pattern change behavior (live mode) |
| Ctrl-O | Load song |
| Ctrl-S | Save song |
| Ctrl-Shift-S | Save song as… |
| Ctrl-Q | Exit program |
| Alt-F4 |
| Cursor keys | Move around |
| Tab | Jump to next channel |
| Ctrl-Tab | +Jump to previous channel | +
| PageUp | Jump 16 rows up |
| PageDown | Jump 16 rows down |
| Home | Jump to first row |
| End | Jump to last row |
| F9 | Jump to beginning of the pattern |
| F10 | Jump to position ¼ through the pattern |
| F11 | Jump to position halfway through the pattern |
| F12 | Jump to position ¾ through the pattern |
| Ctrl-Z | Undo |
| Ctrl-Y | Redo |
| Shift-Cursor keys | Select block |
| CTRL+Shift-Cursor keys | +Expand Selected block downwards | +
| Shift-Alt-Cursor keys | Extend block |
| Ctrl-A | Select entire pattern |
| Ctrl-X | Cut |
| Ctrl-C | Copy |
| Ctrl-V | Paste |
| Ctrl-ALT-V | +Paste with Step-value (polymeter repeat) | +
| Ctrl-R | +Repeat current note/value (or selection) with Step-value (polymeter repeat) | +
| Ctrl-Shift-V | Convert current pattern to sample |
| Ctrl-I | Interpolate values |
| Delete | Delete note/instrument/volume/effect/parameter |
| Shift-Del | Delete note, volume and effect at cursor |
| Ctrl-Del | Delete volume and effect at cursor |
| Alt-Delete | Delete effect at cursor |
| Insert | Insert space on current track at cursor position |
| Shift-Insert | Insert row at cursor position |
| Alt-Backspace | Insert space on current track at cursor position (alternative for keyboards with no Insert key) |
| Shift-Alt-Backspace | Insert row at cursor position (alternative for keyboards with no Insert key) |
| Backspace | Delete previous note |
| Shift-Backspace | Delete previous row |
| The key right of LShift | Enter key-off |
| The key below Esc | Enter key-off (Windows only) |
| 1 | -Enter key-off (OS X only) | +
| 1 | +Enter key-off (OS X only) | +
| Ctrl-Plus or Shift-J | +Increase Add value | +
| Ctrl-Minus or Shift-H | +Decrease Add value | +
| Ctrl-J | +Increase BPM by 1 | +
| Ctrl-H | +Decrease BPM by 1 | +
| Ctrl-K | +Increase BPM by 5 | +
| Ctrl-G | +Decrease BPM by 5 | +
| Alt-I | +Load Instrument (current slot) |
| Alt-Minus | -Increase Add value | +
| Mousedrag selection | +move selection |
| or Alt-Plus | -Decrease Add value | +
| Shift+Mousedrag selection | +clones selection (when 'advanced dnd' is enabled in Misc-tab in config) |
| Alt-F7 | Transpose current instrument in block down |
| Alt-F8 | Transpose current instrument in block up |
| Shift-F7 | Transpose current instrument in track down |
| Shift-F8 | Transpose current instrument in track up |
| Ctrl-F7 | Transpose current instrument in pattern down |
| Ctrl-F8 | Transpose current instrument in pattern up |
| Alt-F1 | Transpose all instruments in block down |
| Alt-F2 | Transpose all instruments in block up |
| Shift-F1 | Transpose all instruments in track down |
| Shift-F2 | Transpose all instruments in track up |
| Ctrl-F1 | Transpose all instruments in pattern down |
| Ctrl-F2 | Transpose all instruments in pattern up |
| Ctrl-Shift up/down | Select next/previous sample | +
| Shift & drag | Quick draw | +
| Shift & drag | Quick draw |
| Ctrl & drag | Resize selection |
| Alt & drag | Move selection or loop range |
| CTRL+H | decrease BPM | +
| CTRL+J | increase BPM | +
| CTRL+G | decrease fine BPM | +
| CTRL+K | increase fine BPM | +
| ALT+I | load instrument | +
| CLTR+O | load module | +
| SHIFT+Q..H | (un)toggle note (ASCIISTEP16) | +
| SHIFT+1..9 | (un)mute channel (ASCIISTEP16) | +
| CTRL (SHIFT) M | (un)solo channel | +
| mouseclick scope | (un)mute channel | +
| left+right mouseclick scope | (un)solo channel | +
+ ASCIISTEP16 stepsequencer mode +
- -
- The FT2 edit mode is for the die-hard FT2 users and probably isn't very intuitive to beginners. Please note that not all FT2 shortcuts are implemented yet and some may differ for various technical reasons. Also note that this edit mode may not be optimal on Pocket PC because of the limitations of some input devices.
+ ASCIISTEP16 is a pckeyboard standard & translation of popular hardware 16-step drum/midi/sampler-sequencers.
+ It adds a 'grid'-like keyboard-performancemode to trackers, which toggles pattern-notes/channels.
+ In Milkytracker pressing SHIFT activates ASCIISTEP16-mode (pressing SHIFT+Q e.g.).
+
+ Below is the keyboard-to-step translation: +
++ key step comment + --- --- ------- + Q 0 + W 1 + E 2 + R 3 + T 4 + Y 5 international equivalent 'Z' e.g. + U 6 + I 7 + A 8 + S 9 + D 10 + F 11 + G 12 + H 13 + J 14 + K 15 + + [un]mute + channel key + ------- --- + 1 '1' + 2 '2' + 3 '3' + 4 '4' + 5 '5' + 6 '6' + 7 '7' + 8 '8' + 9 '9' + 10 '0' + 11 '-' + 12 '=' ++ + + +
+ The FT2 edit mode is for the die-hard FT2 users and probably isn't very intuitive to beginners. Please note that not all FT2 shortcuts are implemented yet and some may differ for various technical reasons. Also note that this edit mode may not be optimal on Pocket PC because of the limitations of their input devices.
| Ctrl- | -|
| A | Advanced edit | +
| Ctrl-A | Advanced edit |
| C | Configuration | +
| Ctrl-C | Configuration |
| D | Disk operations | +
| Ctrl-D | Disk operations |
| I | Instrument editor | +
| Ctrl-I | Instrument editor |
| R | Disk recorder | +
| Ctrl-R | Disk recorder |
| S | Sample editor | +
| Ctrl-S | Sample editor |
| T | Transpose | +
| Ctrl-T | Transpose |
| X | Main screen | +
| Ctrl-X | Main screen |
| Z | Toggle scopes | +
| Ctrl-Z | Toggle scopes |
| 2, 3, 5, 6… | Play / insert notes (depending on whether edit mode is on) |
| Q, W, E, R… | |
| S, D, F, G… | |
| Z, X, C, V… | |
| F1…F8 | Select octave |
| Right Ctrl | Play song from current order |
| Enter | Play song from current order |
| Right Alt | Play current pattern from beginning (Windows &SDL) |
| Ctrl-Enter | Play current pattern from beginning |
| Shift-Enter | Play current pattern from current row |
| Shift-F9 | Play current pattern from beginning (same as Ctrl-Enter/Right Alt) |
| Shift-F10 | Play current pattern from position after the first quarter of the pattern length |
| Shift-F11 | Play current pattern from position after the second quarter of the pattern length |
| Shift-F12 | Play current pattern from position after the third quarter of the pattern length |
| Alt-Space | Play song from current row (stop and return when keys are released) |
| Shift-Space | Play row by row |
| Space | Stop / Edit |
| Shift-Left | Increase song position |
| Shift-Right | Decrease song position |
| Ctrl-Left | Increase current pattern number |
| Ctrl-Right | Decrease current pattern number |
| Ctrl-F9 | Delete current order position |
| Ctrl-F10 | Insert new order position |
| Ctrl-F11 | Decrease current order pattern number |
| Ctrl-F12 | Increase current order pattern number | -
| Key below ESC (ANSI: Alt-Minus)* | Increase Add value |
| Shift-key below ESC (ANSI: Alt-Plus)* | Decrease Add value |
| Ctrl-F | Toggle song follow |
| Ctrl-P | Toggle prospective pattern view |
| Ctrl-W | Toggle pattern wrapping |
| Ctrl-L | Toggle pattern change behavior (live mode) |
| Shift-Ctrl-L | Load song |
| Shift-R | Toggle record mode |
| Shift-Ctrl-S | Save song |
| Esc | Exit program |
| Alt-Cursor keys | Select block |
| Shift-Alt-Cursor keys | Extend block |
| Alt-F3 | Cut block |
| Alt-F4 | Copy block (yes, even under Windows =) |
| Alt-F5 | Paste block |
| Alt-F6 | Porous paste block |
| Shift-F3 | Cut track |
| Shift-F4 | Copy track |
| Shift-F5 | Paste track |
| Shift-F6 | Porous paste track |
| Ctrl-F3 | Cut pattern |
| Ctrl-F4 | Copy pattern |
| Ctrl-F5 | Paste pattern |
| Ctrl-F6 | Porous paste pattern |
| Ctrl-Alt-Z | Undo |
| Ctrl-Alt-Y | Redo |
| Ctrl-Alt-A | Select entire pattern |
| Shift-I | Interpolate values |
| Alt-V | Volume scale block |
| Shift-V | Volume scale track |
| Ctrl-V | Volume scale pattern |
| Shift-Alt-1…0 | Read command/volume at cursor |
| Alt-1…0 | Write command/volume at cursor |
| Alt-F7 | Transpose current instrument in block down |
| Alt-F8 | Transpose current instrument in block up |
| Shift-F7 | Transpose current instrument in track down |
| Shift-F8 | Transpose current instrument in track up |
| Ctrl-F7 | Transpose current instrument in pattern down |
| Ctrl-F8 | Transpose current instrument in pattern up |
| Alt-F1 | Transpose all instruments in block down |
| Alt-F2 | Transpose all instruments in block up |
| Shift-F1 | Transpose all instruments in track down |
| Shift-F2 | Transpose all instruments in track up |
| Ctrl-F1 | Transpose all instruments in pattern down |
| Ctrl-F2 | Transpose all instruments in pattern up |
| Shift-Up | Select previous instrument | +
| Shift-Up or Ctrl-Up | Select previous instrument |
| Shift-Down | Select next instrument | +
| Shift-Down or Ctrl-Down | Select next instrument |
| Ctrl-Shift-Up | Select previous sample |
| Ctrl-Shift-Down | Select next sample |
| PC | Mac | |
| Num 0…9 | Num 0…9 | Digit 0…9 |
| Num / | Num = | Digit A |
| Num * | Num / | Digit B |
| Num - | Num * | Digit C |
| Num + | Num - | Digit D |
| Num Enter | Num + | Digit E |
| Num , | Num Enter | Digit F |
| Shift & drag | Quick draw |
| Ctrl & drag | Resize selection |
| Alt & drag | Move selection or loop range |
| BPM | Traditionally Beats Per Minute, but in tracker terminology it defines the speed of ticks. |
| Effect memory | When an effect command is called with 0 parameters, previous parameters are used. |
| Row/line | Refers to one line of "text" on a pattern. In playback its duration depends on how many ticks there are per row (Speed) and fast they are (BPM). |
| Sample fine-tune/volume/panning | Per sample default settings available through the instrument editor (thus also called instrument volume etc). Overrideable with effect commands. .MODs support these as well but with lower precision. (Save module and load back to enforce .MOD precision.) |
| Tick | The base time unit in traditional trackers like MilkyTracker, originating from Amiga. Notes are triggered on the first tick of a row (unless delayed) and effects are applied on the following ticks. |
| Semitone | The smallest musical interval in Western music and in MilkyTracker. A C# note is one semitone away from the note C. |
| Speed (Spd.) | Number of ticks per row. |
- *) Not implemented, no plans to support
- **) Not implemented yet, will be required for feature completeness
- ***) Not supported on Amiga nor in FT2, effect relocation (8xx, Px) advised
+ *) Not implemented, no plans to support
+ **) Not implemented yet, will be required for feature completeness
+ ***) Not supported on Amiga nor in FT2, effect relocation (8xx, Px) advised
| Syntax: | 0 |
@@ -1373,14 +1826,14 @@
y = semitone offset |
|
| Example: |
- C-4 ·1 ·· 037
|
| Notes: |
In MilkyTracker you don't have to and indeed you CAN'T enter the effect digit 0. Just start with the parameter digits and the effect digit will be filled in. @@ -1418,7 +1871,7 @@Fasttracker II |
| Syntax: | @@ -1427,14 +1880,14 @@|
xx = portamento speed |
|
| Example: |
- C-4 ·1 ·· 103
|
| Notes: |
ProTracker 2/3@@ -1461,7 +1914,7 @@ProTracker 2/3 |
| Syntax: | 2 |
@@ -1469,14 +1922,14 @@
xx = portamento speed |
|
| Example: |
- C-4 ·1 ·· 203
|
| Notes: |
ProTracker 2/3@@ -1497,7 +1950,7 @@ProTracker 2/3 |
| Syntax: | 3 |
@@ -1505,14 +1958,14 @@
xx = portamento speed |
|
| Example: |
- C-4 ·1 ·· ···
|
| Syntax: | 4 |
@@ -1537,14 +1990,14 @@
y = depth |
|
| Example: |
- C-4 ·1 ·· 481
|
| Syntax: | 5 |
@@ -1569,14 +2022,14 @@
y = volume slide down speed |
|
| Example: |
- C-4 ·1 ·· ···
|
| Notes: |
ProTracker 2/3@@ -1599,7 +2052,7 @@ProTracker 2/3 |
| Syntax: | 6 |
@@ -1610,14 +2063,14 @@
y = volume slide down speed |
|
| Example: |
- C-4 ·1 ·· 481
|
| Notes: |
ProTracker 2/3@@ -1640,7 +2093,7 @@ProTracker 2/3 |
| Syntax: | 7 |
@@ -1651,14 +2104,14 @@
y = depth |
|
| Example: |
- C-4 ·1 ·· 787
|
| Syntax: | 8 |
@@ -1680,14 +2133,14 @@
xx = panning position |
|
| Example: |
- C-4 ·1 ·· 880
|
| Notes: |
ProTracker 2/3@@ -1714,7 +2167,7 @@Fasttracker II |
| Syntax: | 9 |
@@ -1722,14 +2175,14 @@
xx = sample offset |
|
| Example: |
- C-4 ·1 ·· ···
|
| Tips: |
Resampling a loop to exactly (0x10000=) 65536 bytes gives you the highest possible level of control over the sample.
@@ -1749,7 +2202,7 @@ 9xx Sample offset |
| Syntax: | A |
@@ -1760,14 +2213,14 @@
y = volume slide down speed |
|
| Example: |
- C-4 ·1 ·· A04
|
| Notes: |
ProTracker 2/3 |
| Syntax: | B |
@@ -1801,14 +2254,14 @@
xx = song position |
|
| Example: |
- C-4 ·1 ·· ···
|
| Tips: |
@@ -1830,7 +2283,7 @@ Bxx Jump to order |
| Syntax: | C |
@@ -1838,14 +2291,14 @@
xx = volume |
|
| Example: |
- C-4 ·1 ·· ···
|
| Notes: |
Fasttracker II@@ -1868,7 +2321,7 @@Fasttracker II |
| Syntax: | D |
@@ -1876,14 +2329,14 @@
xx = row number on next pattern |
|
| Example: |
- C-4 ·1 ·· ···
|
| Notes: |
@@ -1908,7 +2361,7 @@ Dxx Pattern break |
| Syntax: | E1 |
@@ -1916,14 +2369,14 @@
x = portamento speed |
|
| Example: |
- C-4 ·1 ·· E11
|
| Syntax: | E2 |
@@ -1945,14 +2398,14 @@
x = portamento speed |
|
| Example: |
- C-4 ·1 ·· E11
|
| Syntax: | E3 |
@@ -1974,14 +2427,14 @@
x = glissando control toggle on/off |
|
| Example: |
- C-4 ·1 ·· E31
|
| Notes: |
@@ -2003,7 +2456,7 @@ E3x Glissando control |
| Syntax: | E4 |
@@ -2011,14 +2464,14 @@
x = vibrato waveform selection |
|
| Example: |
- C-4 ·1 ·· 48C
|
| Notes: |
@@ -2048,7 +2501,7 @@ E4x Vibrato control |
| Syntax: | E5 |
@@ -2056,14 +2509,14 @@
x = fine-tune |
|
| Example: |
- C-4 ·1 ·· E54
|
| Syntax: | E6 |
@@ -2138,14 +2591,14 @@
x = set loop point / number of iterations |
|
| Example: |
- C-4 ·1 ·· E60
|
| Notes: |
@@ -2174,7 +2627,7 @@ Fasttracker II |
| Syntax: | E7 |
@@ -2182,14 +2635,14 @@
x = tremolo waveform selection |
|
| Example: |
- C-4 ·1 ·· E72
|
| Notes: |
@@ -2219,7 +2672,7 @@ E7x Tremolo control |
| Syntax: | E8 |
@@ -2227,7 +2680,7 @@
x = panning position |
|
| Explanation: |
@@ -2245,7 +2698,7 @@ E8x Set note panning position |
| Syntax: | E9 |
@@ -2253,14 +2706,14 @@
x = triggering interval |
|
| Example: |
- C-4 ·1 ·· E93
|
| Syntax: | EA |
@@ -2282,14 +2735,14 @@
x = speed |
|
| Example: |
- C-4 ·1 10 EA2
|
| Syntax: | EB |
@@ -2311,14 +2764,14 @@
x = speed |
|
| Example: |
- C-4 ·1 ·· EB2
|
| Syntax: | EC |
@@ -2340,14 +2793,14 @@
x = tick number |
|
| Example: |
- C-4 ·1 ·· EC1
|
| Syntax: | ED |
@@ -2369,14 +2822,14 @@
x = tick number |
|
| Example: |
- C-4 ·1 ·· ···
|
| Syntax: | EE |
@@ -2398,14 +2851,14 @@
x = amount of rows |
|
| Example: |
- C-4 ·1 ·· ···
|
| Syntax: | F |
@@ -2427,14 +2880,14 @@
xx = speed/BPM value |
|
| Example: |
- C-4 ·1 ·· F90
|
| Syntax: | G |
@@ -2456,14 +2909,14 @@
xx = volume |
|
| Example: |
- C-4 ·1 ·· G40
|
| Syntax: | H |
@@ -2488,14 +2941,14 @@
y = volume slide down speed |
|
| Example: |
- C-4 ·1 ·· H04
|
| Notes: |
@@ -2517,7 +2970,7 @@ Hxy Global volume slide |
| Syntax: | K |
@@ -2525,14 +2978,14 @@
xx = tick number |
|
| Example: |
- C-4 ·1 ·· K03
|
| Syntax: | L |
@@ -2554,14 +3007,14 @@
xx = envelope position |
|
| Example: |
- C-4 ·1 ·· L20
|
Explanation: |
- Makes the currently playing note jump to tick |
| Syntax: | P |
@@ -2587,14 +3040,14 @@
y = panning slide left speed |
|
| Example: |
- C-4 ·1 ·· P04
|
| Notes: |
@@ -2616,7 +3069,7 @@ Pxy Panning slide |
| Syntax: | R |
@@ -2627,14 +3080,14 @@
y = triggering interval |
|
| Example: |
- C-4 ·1 ·· R81
|
| Notes: |
- This command is very buggy from the start, straight from the source, Fasttracker II. While FT2's own documentation is inaccurate in many places, this is different. Extensive testing has revealed almost bizarre qualities of this effect and it's up to MilkyTracker to emulate it all. Without doubt the quirk the team has spent the most time and iterations working on getting it right. And still we advise to be careful with it. When using This command is very buggy from the start, straight from the source, Fasttracker II. While FT2's own documentation is inaccurate in many places, this is different. Extensive testing has revealed almost bizarre qualities of this effect and it's up to MilkyTracker to emulate it all. Without a doubt the quirk the team has spent the most time and iterations working on getting it right. And still we advise to be careful with it. When using
Setting volume on the volume column ( Rxy Re-trigger note with volume slide |
| Syntax: | T |
@@ -2695,14 +3148,14 @@
y + 1 = ticks off |
|
| Example: |
- C-4 ·1 ·· T13
|
| Notes: |
@@ -2724,7 +3177,7 @@ Txy Tremor |
| Syntax: | X1 |
@@ -2732,14 +3185,14 @@
x = speed |
|
| Example: |
- C-4 ·1 ·· X11
|
| Syntax: | X2 |
@@ -2761,14 +3214,14 @@
x = speed |
|
| Example: |
- C-4 ·1 ·· X11
|
| Syntax: | xx = volume |
| Example: |
- C-4 ·1 ·· ···
|
| Syntax: | + |
@@ -2817,14 +3269,14 @@
x = speed |
|
| Example: |
- C-4 ·1 10 ···
|
| Syntax: | - |
@@ -2846,14 +3298,14 @@
x = speed |
|
| Example: |
- C-4 ·1 ·· ···
|
| Syntax: | D |
@@ -2875,14 +3327,14 @@ |||
x = speed |
||||
| Example: |
- C-4 ·1 ·· ···
|
| Syntax: | L |
@@ -2904,14 +3356,14 @@
x = speed |
|
| Example: |
- C-4 ·1 ·· ···
|
| Syntax: | M |
@@ -2933,14 +3385,14 @@
x = speed |
|
| Example: |
- C-4 ·1 ·· ···
|
| Tips: |
@@ -2962,7 +3414,7 @@ Mx Portamento to note |
| Syntax: | P |
@@ -2970,14 +3422,14 @@
x = speed |
|
| Example: |
- C-4 ·1 P4 ···
|
| Tips: | -
-
- |
-
| Syntax: | R |
@@ -3007,14 +3451,14 @@ x = speed |
| Example: |
- C-4 ·1 ·· ···
|
| Syntax: | S |
@@ -3036,14 +3480,14 @@
x = speed |
|
| Example: |
- C-4 ·1 ·· 48F
|
| Syntax: | U |
@@ -3065,14 +3509,14 @@ x = speed |
| Example: |
- C-4 ·1 10 ···
|
| Syntax: | V |
@@ -3094,14 +3538,14 @@
x = depth |
|
| Example: |
- C-4 ·1 ·· 484
|
| Notes: |
@@ -3123,30 +3567,97 @@ Vx Vibrato |
MilkyTracker supports basic MIDI input, which means you can use your MIDI device to feed notes into MilkyTracker. Enabling MIDI input varies a little from platform to platform - here's how to do it on…
| Windows: | Select Preferences from the system menu (top left corner of the window) |
| OSX: | Select Preferences from the MilkyTracker menu or press Command-, |
| Linux: | -Enabled by default if available on the system. See the Linux readme for details. | -
+ The milkytracker-experience is an OPENSOURCE but selfcontained workstation & fileformat using a PCKeyboard.
+ This does not mean you cannot export wav-files (to upload on a faircamp artistsite e.g.), or do a multitrack import into a DAW:
+
+ The previous section adresses ways to publish to traditional music-channels (streaming services e.g.).
+ However, the module ecosystem has its own selfoperated distribution-channels, which pre-date everything else.
+ This module 'verse' distributes portable source-remixable songs, something the traditional music-industry has never been
+ able to achieve years later.
+ How awesome is that?
+
+ Cross-publish modules to the following channels for future generations/remixes:
+
+
MilkyTracker aims for full Fasttracker II compatibility in its replay but this goal is easier set than achieved. Some of the original effect implementations defy all documentation and logic. Here's a list of current replay differences between FT2 and Milky:
@@ -3162,9 +3673,11 @@Concerning UI-scaling, some users had better results with enabling nearest-pixel mode: run milkytracker with environment-flag SCALE_NEAREST=1
-- Special greetings to everyone at #MilkyTracker for making it a daily active channel. + Special greetings to everyone at #MilkyTracker for making it a daily active channel.
-- You can contact the MilkyTracker team by email (ten.rekcartyklim@troppus), through the forum at http://milkytracker.titandemo.org/community/ or in IRC. To chat with the community live, you can connect to #MilkyTracker on EsperNet with your IRC client or use the java client on our website. + You can contact the MilkyTracker team at GitHub (https://github.com/milkytracker/Milkytracker) or in IRC. To chat with the community live, you can connect to #MilkyTracker on EsperNet with your IRC client or use the java client on our website.
- - - diff --git a/docs/TiTAN.nfo b/docs/TiTAN.nfo index a3628190..ae35b439 100644 --- a/docs/TiTAN.nfo +++ b/docs/TiTAN.nfo @@ -15,11 +15,11 @@ Titan Presents: - MilkyTracker v1.03 + MilkyTracker v1.04 - The multiplatform Fasttracker II clone - - Released on 12/12/2020 + Released on 05/07/2023 See MilkyTracker.html for details. @@ -28,6 +28,7 @@ Code.........: pailes Deltafire d0pefish + coderofsalvation GFX..........: kenet raina Demo songs...: svenzzon @@ -37,7 +38,5 @@ --------------------------------------------------------- - WWW: http://milkytracker.titandemo.org/ - http://titandemo.org/ + WWW: http://milkytracker.org/ IRC: #MilkyTracker on EsperNet - #TitanDemo on EFnet diff --git a/docs/readme_PocketPC.html b/docs/readme_PocketPC.html index a8e76386..f8b639d0 100644 --- a/docs/readme_PocketPC.html +++ b/docs/readme_PocketPC.html @@ -42,9 +42,6 @@Make sure you read the other manual as well.
Contact us for any reason (questions, bug-reports, feature-requests etc.):
-support@milkytracker.net
-or visit our homepage:
-http://www.milkytracker.net
+http://www.milkytracker.org